UNPKG

@nestia/sdk

Version:

Nestia SDK and Swagger generator

101 lines 5.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.SdkHttpParameterProgrammer = void 0; const factory_1 = require("@ttsc/factory"); const SdkAliasCollection_1 = require("./SdkAliasCollection"); var SdkHttpParameterProgrammer; (function (SdkHttpParameterProgrammer) { SdkHttpParameterProgrammer.getAll = (route) => [ ...route.pathParameters, ...route.queryParameters, ...route.headerParameters, ...(route.queryObject ? [route.queryObject] : []), ...(route.body ? [route.body] : []), ...(route.headerObject ? [route.headerObject] : []), ]; SdkHttpParameterProgrammer.getSignificant = (route, body) => [ ...route.pathParameters, ...route.queryParameters, ...(route.queryObject ? [route.queryObject] : []), ...(body && route.body ? [route.body] : []), ]; SdkHttpParameterProgrammer.getEntries = (props) => { if (props.route.pathParameters.length === 0 && props.route.queryParameters.length === 0 && props.route.queryObject === null && (props.body === false || props.route.body === null)) return []; const prefix = typeof props.prefix === "string" ? props.prefix : props.prefix === true ? `${props.route.name}.` : ""; return [ ...[...props.route.pathParameters, ...props.route.queryParameters].map((p) => ({ key: p.name, required: p.metadata.required, type: props.project.config.clone === true ? SdkAliasCollection_1.SdkAliasCollection.from(props.project)(props.importer)(p.metadata) : SdkAliasCollection_1.SdkAliasCollection.name(p), parameter: p, })), ...(props.route.queryObject ? [ { key: props.route.queryObject.name, required: props.route.queryObject.metadata.required, type: props.e2e === true ? props.project.config.clone === true ? SdkAliasCollection_1.SdkAliasCollection.from(props.project)(props.importer)(props.route.queryObject.metadata) : SdkAliasCollection_1.SdkAliasCollection.name(props.route.queryObject) : factory_1.factory.createTypeReferenceNode(`${prefix}Query`), parameter: props.route.queryObject, }, ] : []), ...(props.body && props.route.body ? [ { key: props.route.body.name, required: props.route.body.metadata.required, type: props.e2e === true ? props.project.config.clone === true ? SdkAliasCollection_1.SdkAliasCollection.from(props.project)(props.importer)(props.route.body.metadata) : SdkAliasCollection_1.SdkAliasCollection.name(props.route.body) : factory_1.factory.createTypeReferenceNode(`${prefix}Body`), parameter: props.route.body, }, ] : []), ]; }; SdkHttpParameterProgrammer.getParameterDeclarations = (props) => { const entries = SdkHttpParameterProgrammer.getEntries(props); if (entries.length === 0) return []; else if (props.project.config.keyword === true) { const typeName = props.prefix ? `${props.route.name}.Props` : "Props"; const node = props.body === false && props.route.body !== null ? factory_1.factory.createTypeReferenceNode("Omit", [ factory_1.factory.createTypeReferenceNode(typeName), factory_1.factory.createLiteralTypeNode(factory_1.factory.createStringLiteral(props.route.body.name)), ]) : factory_1.factory.createTypeReferenceNode(typeName); return [ factory_1.factory.createParameterDeclaration(undefined, undefined, "props", undefined, node, undefined), ]; } return entries.map((e) => factory_1.factory.createParameterDeclaration(undefined, undefined, e.key, e.required ? undefined : factory_1.factory.createToken(factory_1.SyntaxKind.QuestionToken), e.type, undefined)); }; SdkHttpParameterProgrammer.getArguments = (props) => { const parameters = SdkHttpParameterProgrammer.getSignificant(props.route, props.body); if (parameters.length === 0) return []; else if (props.project.config.keyword === true) return [factory_1.factory.createIdentifier("props")]; return parameters.map((p) => factory_1.factory.createIdentifier(p.name)); }; })(SdkHttpParameterProgrammer || (exports.SdkHttpParameterProgrammer = SdkHttpParameterProgrammer = {})); //# sourceMappingURL=SdkHttpParameterProgrammer.js.map