@code-to-json/cli
Version:
44 lines • 3.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const utils_1 = require("@code-to-json/utils");
const utils_ts_1 = require("@code-to-json/utils-ts");
const debug = require("debug");
const glob = require("glob");
const path = require("path");
const util_1 = require("util");
const debugLog = debug('code-to-json:cli');
const pGlob = util_1.promisify(glob);
/**
* Resolve some globs into discrete files, matching a set of extensions
* @param globs Globs to search
* @param extensions Extensions of paths to retain
* @internal
*/
async function globsToPaths(globs, extensions = ['.js', '.ts']) {
const valueSet = new Set();
await Promise.all(globs.map((g) => pGlob(g) // get the collection of files
.then((files) => {
files.forEach((f) => valueSet.add(f)); // add each file to the set
})
.catch((er) => {
throw new utils_1.InvalidArgumentsError(`Invalid glob: ${g}\n${er}`);
})));
const allPaths = [...valueSet]; // Set<string> -> string[]
// If extensions are provided, only return those files that match
return extensions
? allPaths.filter((f) => extensions.indexOf(path.extname(f).toLowerCase()) >= 0)
: allPaths;
}
exports.globsToPaths = globsToPaths;
/**
* Create a typescript program from globs that describe entry files
* @param globs Globs that specify one or more entries
* @internal
*/
async function createProgramFromEntryGlobs(globs) {
const rootNames = await globsToPaths(globs);
debugLog('globs are equivalent to files', rootNames);
return utils_ts_1.createProgramFromEntries(rootNames);
}
exports.createProgramFromEntryGlobs = createProgramFromEntryGlobs;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQTREO0FBQzVELHFEQUFrRTtBQUNsRSwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLDZCQUE2QjtBQUU3QiwrQkFBaUM7QUFFakMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFFM0MsTUFBTSxLQUFLLEdBQUcsZ0JBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUU5Qjs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSxZQUFZLENBQ2hDLEtBQWUsRUFDZixhQUF1QixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUM7SUFFckMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUNuQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2YsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUNSLENBQUMsRUFDRCxFQUFFLENBQ0YsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLDhCQUE4QjtTQUNwQyxJQUFJLENBQUMsQ0FBQyxLQUFlLEVBQUUsRUFBRTtRQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywyQkFBMkI7SUFDcEUsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUU7UUFDWixNQUFNLElBQUksNkJBQXFCLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUMsQ0FBQyxDQUNMLENBQ0YsQ0FBQztJQUNGLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtJQUMxRCxpRUFBaUU7SUFDakUsT0FBTyxVQUFVO1FBQ2YsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoRixDQUFDLENBQUMsUUFBUSxDQUFDO0FBQ2YsQ0FBQztBQXZCRCxvQ0F1QkM7QUFFRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLDJCQUEyQixDQUFDLEtBQWU7SUFDL0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUMsUUFBUSxDQUFDLCtCQUErQixFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JELE9BQU8sbUNBQXdCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUpELGtFQUlDIn0=