UNPKG

@coat/cli

Version:

TODO: See #3

52 lines (48 loc) 1.76 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getStrictCoatManifest = getStrictCoatManifest; /** * Adds empty objects for all dependency groups if necessary * * @param dependencies Dependencies from the coat manifest or template */ function getStrictDependencies(dependencies) { return { dependencies: (dependencies === null || dependencies === void 0 ? void 0 : dependencies.dependencies) ?? {}, devDependencies: (dependencies === null || dependencies === void 0 ? void 0 : dependencies.devDependencies) ?? {}, optionalDependencies: (dependencies === null || dependencies === void 0 ? void 0 : dependencies.optionalDependencies) ?? {}, peerDependencies: (dependencies === null || dependencies === void 0 ? void 0 : dependencies.peerDependencies) ?? {} }; } /** * Adds all missing properties to a coat manifest or template file * to access these properties safely in following code. * * @param coatManifest The manifest file that has been read from the disk */ function getStrictCoatManifest(coatManifest) { let extendsEntries = []; if (coatManifest.extends) { if (typeof coatManifest.extends === "string") { extendsEntries.push(coatManifest.extends); } else { extendsEntries = coatManifest.extends; } } // TODO: See #18 // Validate all properties // e.g. file type // also check that it is not a promise // (e.g. from importing and calling an async function) const strictManifest = { ...coatManifest, extends: extendsEntries, files: coatManifest.files ?? [], dependencies: getStrictDependencies(coatManifest.dependencies), scripts: coatManifest.scripts ?? [], setup: coatManifest.setup ?? [] }; return strictManifest; }