Files
osr-mono/packages/fs/list.js
T
2025-01-29 17:40:56 +01:00

69 lines
4.7 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateInput = validateInput;
exports._readdirSync = _readdirSync;
exports.sync = sync;
exports.async = async;
const fs_1 = require("fs");
const validate_1 = require("./utils/validate");
const platform_1 = require("./utils/platform");
const strings_1 = require("./utils/strings");
function validateInput(methodName, path) {
const methodSignature = methodName + '(path)';
(0, validate_1.validateArgument)(methodSignature, 'path', path, ['string', 'undefined']);
}
function _readdirSync(path) {
// Mac: uses NFD unicode form on disk, but we want NFC
// See also https://github.com/nodejs/node/issues/2165
if (platform_1.isMacintosh) {
return (0, fs_1.readdirSync)(path).map(c => (0, strings_1.normalizeNFC)(c));
}
return (0, fs_1.readdirSync)(path);
}
// ---------------------------------------------------------
// Sync
// ---------------------------------------------------------
function sync(path) {
try {
return _readdirSync(path);
}
catch (err) {
if (err.code === 'ENOENT') {
// Doesn't exist. Return undefined instead of throwing.
return undefined;
}
throw err;
}
}
// ---------------------------------------------------------
// Async
// ---------------------------------------------------------
function readdirASync(path) {
// export function readdir(path: string | Buffer, callback?: (err: NodeJS.ErrnoException, files: string[]) => void): void;
// Mac: uses NFD unicode form on disk, but we want NFC
// See also https://github.com/nodejs/node/issues/2165
return new Promise((resolve, reject) => {
if (platform_1.isMacintosh) {
(0, fs_1.readdir)(path, (err, files) => {
if (err) {
reject(err);
}
resolve(files);
});
}
(0, fs_1.readdir)(path, (err, files) => {
if (err) {
reject(err);
}
resolve(files);
});
});
}
function async(path) {
return new Promise((resolve, reject) => {
readdirASync(path)
.then((list) => resolve(list))
.catch(err => (err.code === 'ENOENT' ? resolve(undefined) : reject(err)));
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNyYy9saXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0Esc0NBR0M7QUFFRCxvQ0FRQztBQUlELG9CQVVDO0FBMkJELHNCQU1DO0FBakVELDJCQUEwQztBQUMxQywrQ0FBb0Q7QUFDcEQsK0NBQStDO0FBQy9DLDZDQUErQztBQUUvQyxTQUFnQixhQUFhLENBQUMsVUFBa0IsRUFBRSxJQUFZO0lBQzdELE1BQU0sZUFBZSxHQUFHLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDOUMsSUFBQSwyQkFBZ0IsRUFBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFFRCxTQUFnQixZQUFZLENBQUMsSUFBWTtJQUN4QyxzREFBc0Q7SUFDdEQsc0RBQXNEO0lBQ3RELElBQUksc0JBQVcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBQSxnQkFBVyxFQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUEsc0JBQVksRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxPQUFPLElBQUEsZ0JBQVcsRUFBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBQ0QsNERBQTREO0FBQzVELE9BQU87QUFDUCw0REFBNEQ7QUFDNUQsU0FBZ0IsSUFBSSxDQUFDLElBQVk7SUFDaEMsSUFBSSxDQUFDO1FBQ0osT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDZCxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0IsdURBQXVEO1lBQ3ZELE9BQU8sU0FBUyxDQUFDO1FBQ2xCLENBQUM7UUFDRCxNQUFNLEdBQUcsQ0FBQztJQUNYLENBQUM7QUFDRixDQUFDO0FBRUQsNERBQTREO0FBQzVELFFBQVE7QUFDUiw0REFBNEQ7QUFDNUQsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNqQywwSEFBMEg7SUFDMUgsc0RBQXNEO0lBQ3RELHNEQUFzRDtJQUV0RCxPQUFPLElBQUksT0FBTyxDQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ2hELElBQUksc0JBQVcsRUFBRSxDQUFDO1lBQ2pCLElBQUEsWUFBTyxFQUFDLElBQUksRUFBRSxDQUFDLEdBQTBCLEVBQUUsS0FBZSxFQUFFLEVBQUU7Z0JBQzdELElBQUksR0FBRyxFQUFFLENBQUM7b0JBQ1QsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNiLENBQUM7Z0JBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUEsWUFBTyxFQUFDLElBQUksRUFBRSxDQUFDLEdBQTBCLEVBQUUsS0FBZSxFQUFFLEVBQUU7WUFDN0QsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDVCxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDYixDQUFDO1lBQ0QsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBQ0QsU0FBZ0IsS0FBSyxDQUFDLElBQVk7SUFDakMsT0FBTyxJQUFJLE9BQU8sQ0FBVyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNoRCxZQUFZLENBQUMsSUFBSSxDQUFDO2FBQ2hCLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdCLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUMifQ==