@mometa/materials-resolver
Version:
Resolve materials config
32 lines • 1.54 kB
JavaScript
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
import globby from 'globby';
import * as fs from 'fs';
import * as nps from 'path';
import { toArray } from './to-array';
export function sortedGlobby(patterns, cwd) {
return __awaiter(this, void 0, void 0, function* () {
patterns = toArray(patterns);
const ps = [];
const dirs = [];
patterns.forEach((dir) => {
const dirPath = nps.resolve(cwd || '', dir);
if (fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory()) {
dirs.push(dirPath);
return;
}
ps.push(dir);
});
const files = yield globby(ps, { cwd, onlyDirectories: true });
const sortedDirs = files.sort((a, b) => a.localeCompare(b));
return Array.from(new Set(dirs.concat(sortedDirs)).values());
});
}
//# sourceMappingURL=sorted-globby.js.map