UNPKG

@sprucelabs/spruce-templates

Version:

Templates used for code generation in skills!

38 lines (37 loc) 1.53 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const uniq_1 = __importDefault(require("lodash/uniq")); const uniqWith_1 = __importDefault(require("lodash/uniqWith")); const importExtractorUtil = { extractFieldImports(fields) { const imports = fields.map((item) => ({ package: item.package, importAs: item.importAs, namePascal: item.namePascal, })); const uniqueImports = (0, uniqWith_1.default)(imports, (i1, i2) => i1.package === i2.package && i1.importAs === i2.importAs); const schemaName = uniqueImports.find((i) => i.importAs.toLowerCase() === 'schema'); if (schemaName) { throw new Error(`${schemaName.namePascal} has importAs="Schema", which is a reserved word`); } const aliases = {}; uniqueImports.forEach((item) => { if (item.importAs in aliases) { throw new Error(`${item.namePascal} has a public importAs="${item.importAs}"`); } }); return uniqueImports; }, extractSchemaImports(schemas) { const imports = []; schemas.forEach((schema) => { var _a; imports.push(...((_a = schema.imports) !== null && _a !== void 0 ? _a : [])); }); return (0, uniq_1.default)(imports); }, }; exports.default = importExtractorUtil;