@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
46 lines • 2.64 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const path_1 = __importDefault(require("path"));
const schema_1 = require("@sprucelabs/schema");
const spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils");
const schemaGenerator_utility_1 = __importDefault(require("./schemaGenerator.utility"));
const schemaDiskUtil = {
resolvePath(options) {
const { destination, schema, shouldIncludeFileExtension: includeFileExtension, } = options;
if (!schema.namespace) {
throw new schema_1.SchemaError({
code: 'MISSING_PARAMETERS',
parameters: ['namespace'],
});
}
return path_1.default.join(destination, spruce_skill_utils_1.namesUtil.toCamel(schema.namespace), schema.version ?? '', `${schema.id}.schema${includeFileExtension === false ? '' : '.ts'}`);
},
resolveTypeFilePaths(options) {
const { cwd, generateStandaloneTypesFile, schemaTypesDestinationDirOrFile, fieldTypesDestinationDir, } = options;
const resolvedSchemaTypesDestination = spruce_skill_utils_1.diskUtil.resolvePath(cwd, generateStandaloneTypesFile &&
spruce_skill_utils_1.diskUtil.isDirPath(schemaTypesDestinationDirOrFile)
? spruce_skill_utils_1.diskUtil.resolvePath(cwd, schemaTypesDestinationDirOrFile, 'core.schemas.types.ts')
: schemaTypesDestinationDirOrFile);
const resolvedSchemaTypesDestinationDirOrFile = spruce_skill_utils_1.diskUtil.isDirPath(resolvedSchemaTypesDestination)
? resolvedSchemaTypesDestination
: path_1.default.dirname(resolvedSchemaTypesDestination);
const resolvedFieldTypesDestination = spruce_skill_utils_1.diskUtil.resolvePath(cwd, fieldTypesDestinationDir ?? resolvedSchemaTypesDestinationDirOrFile);
return {
resolvedFieldTypesDestination,
resolvedSchemaTypesDestinationDirOrFile,
resolvedSchemaTypesDestination,
};
},
async deleteOrphanedSchemas(resolvedDestination, schemaTemplateItems) {
const definitionsToDelete = await schemaGenerator_utility_1.default.filterSchemaFilesBySchemaIds(resolvedDestination, schemaTemplateItems.map((item) => ({
...item,
version: item.schema.version,
})));
definitionsToDelete.forEach((def) => spruce_skill_utils_1.diskUtil.deleteFile(def));
},
};
exports.default = schemaDiskUtil;
//# sourceMappingURL=schemaDisk.utility.js.map