UNPKG

@mometa/materials-resolver

Version:
32 lines 1.54 kB
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