UNPKG

@cuba-platform/front-generator

Version:
36 lines 1.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createEnums = void 0; const ts = require("typescript"); const utils_1 = require("../../../common/utils"); function createEnums(enums) { const enDeclarations = []; const duplicates = []; enums .sort((a, b) => a.fqn.localeCompare(b.fqn)) .forEach(e => { const className = e.className; const ed = ts.createEnumDeclaration(undefined, [ts.createToken(ts.SyntaxKind.ExportKeyword)], className, getEnumMembers(e.values)); if (enDeclarations.some(ed => ed.node.name.text === className)) { duplicates.push(className); } enDeclarations.push({ fqn: e.fqn, node: ed }); }); duplicates.forEach(duplicateName => { enDeclarations .filter(ed => ed.node.name.text === duplicateName) .forEach(ed => { ed.node = ts.createEnumDeclaration(undefined, [ts.createToken(ts.SyntaxKind.ExportKeyword)], (0, utils_1.fqnToName)(ed.fqn), ed.node.members); }); }); return enDeclarations; } exports.createEnums = createEnums; function getEnumMembers(values) { const members = []; values.forEach(v => { members.push(ts.createEnumMember(v.name, ts.createStringLiteral(v.name))); }); return members; } //# sourceMappingURL=enums-generation.js.map