UNPKG

@nestia/sdk

Version:

Nestia SDK and Swagger generator

62 lines 2.37 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SdkHttpCloneReferencer = void 0; const StringUtil_1 = require("../../utils/StringUtil"); var SdkHttpCloneReferencer; (function (SdkHttpCloneReferencer) { SdkHttpCloneReferencer.replace = (app) => { const directory = `${app.project.config.output}/structures`; for (const route of app.routes) if (route.protocol === "http") visitRoute({ directory, route, }); }; const visitRoute = (props) => { const unique = new Set(); for (const p of props.route.parameters) visitType({ unique, metadata: p.metadata, type: p.type, name: (name) => (p.type = { name }), }); for (const v of Object.values(props.route.exceptions)) visitType({ unique, metadata: v.metadata, type: v.type, name: (name) => (v.type = { name }), }); visitType({ unique, metadata: props.route.success.metadata, type: props.route.success.type, name: (name) => (props.route.success.type = { name }), }); props.route.imports = Array.from(unique).map((str) => ({ file: `${props.directory}/${str}`, instances: [str], })); }; const visitType = (p) => { const enroll = (key) => { if (key.length && StringUtil_1.StringUtil.isImplicit(key) === false) p.unique.add(key.split(".")[0]); }; for (const alias of p.metadata.aliases) enroll(alias.type.name); for (const array of p.metadata.arrays) enroll(array.type.name); for (const tuple of p.metadata.tuples) enroll(tuple.type.name); for (const object of p.metadata.objects) enroll(object.type.name); p.name(p.metadata.getName()); }; })(SdkHttpCloneReferencer || (exports.SdkHttpCloneReferencer = SdkHttpCloneReferencer = {})); const getFullText = (type) => type.typeArguments === undefined ? type.name : `${type.name}<${type.typeArguments.map(getFullText).join(", ")}>`; //# sourceMappingURL=SdkHttpCloneReferencer.js.map