/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/node-swagger-generator@0.5.0-alpha.33/dist/lib/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __awaiter=this&&this.__awaiter||function(e,t,r,i){return new(r||(r=Promise))((function(n,s){function o(e){try{l(i.next(e))}catch(e){s(e)}}function a(e){try{l(i.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof r?t:new r((function(e){e(t)}))).then(o,a)}l((i=i.apply(e,t||[])).next())}))};Object.defineProperty(exports,"__esModule",{value:!0});const generation_1=require("./generation"),templates_1=require("./templates"),parser=require("swagger-parser"),path=require("path"),_=require("lodash"),visitor=require("./swaggerVisitor"),classSuffixFilters=require("./filters/classSuffix"),camlCaseFilters=require("./filters/camlCaseFilters"),pascalCaseFilters=require("./filters/pascalCaseFilters"),arrayNameFilters=require("./filters/arrayNameFilter"),optionalArgsOrderFilters=require("./filters/optionalArgsOrderFilter"),genericHelper_1=require("./genericHelper"),filtersLoader_1=require("./filtersLoader");classSuffixFilters.register(),camlCaseFilters.register(),pascalCaseFilters.register(),arrayNameFilters.register(),optionalArgsOrderFilters.register();var bluebird=require("bluebird");function generateFromJsonOrYaml(e,t,r,i){return __awaiter(this,void 0,void 0,(function*(){try{var n=new Generator(i);yield n.generate(yield parse(e),t,r)}catch(e){throw console.error("an unknown error has occured: ",e),e}}))}function parse(e){var t=bluebird.defer();return parser.bundle(e,{},((e,r)=>{e?t.reject(e):t.resolve({api:r})})),t.promise}exports.generateFromJsonOrYaml=generateFromJsonOrYaml;class LoggerVisitor extends visitor.ScopedSwaggerVisitorBase{visitDefinition(e,t){console.log("Definition : "+e+", "+this.stack.map((e=>e.name)).join("/"))}visitAnonymousDefinition(e){console.log("Anonymous : "+this.stack.map((e=>e.name)).join("/"))}visitOperation(e,t){console.log(e.toUpperCase()+" : "+this.stack.map((e=>e.name)).join("/"))}}class Generator{constructor(e){this.templatePaths=e,e||(this.templatePaths=[]),this.templatePaths.push(path.join(__dirname,"../../templates")),this.templateStore=new templates_1.TemplateStore(this.templatePaths)}mergeFilters(e){var t={definitionFilters:[],operationFilters:[]};return _.forEach(e,(e=>{e.definitionFilters&&(t.definitionFilters=t.definitionFilters.concat(e.definitionFilters)),e.operationFilters&&(t.operationFilters=t.operationFilters.concat(e.operationFilters))})),t}generate(swaggerJson,options,sink){return __awaiter(this,void 0,void 0,(function*(){var template=yield this.templateStore.FindTemplate(options.language,options.framework,options.version),mode=template.modes[options.mode];if(!mode)throw new Error("This template does not have a mode: "+options.mode);var language=template.language.filter,mergedFilters=this.mergeFilters([template,mode,options]),mergedOptions={};template.templateOptions&&(mergedOptions=_.merge(mergedOptions,template.templateOptions)),mergedOptions=_.merge(mergedOptions,options.templateOptions);var mergedDependencies=_.transform(_.merge(options.dependencies,template.dependencies),((e,t,r)=>{var i=_.clone(t);i.name=r,e.push(i)}),[]),mergedDevDependencies=_.transform(_.merge(options.devDependencies,template.devDependencies),((e,t,r)=>{var i=_.clone(t);i.name=r,e.push(i)}),[]),visitable=visitor.get(swaggerJson.api);options.customSchemaVisitors&&_.forEach(options.customSchemaVisitors,(customVisitor=>{var visitor=_.isString(customVisitor)?eval(customVisitor)():customVisitor;visitable.visit(visitor)})),visitable.visit(new genericHelper_1.AppenGenericMetadataVisitor),console.log("Preparing Generation Context");var contextBuilder=new generation_1.ContextBuilder(swaggerJson.api,language,filtersLoader_1.filtersLoader.resolveOperationFilters(mergedFilters.operationFilters),filtersLoader_1.filtersLoader.resolveDefinitionFilters(mergedFilters.definitionFilters),mergedDependencies,mergedDevDependencies,options.ambientTypes,options.mediaTypesPriorities),context=contextBuilder.Build();console.log("Finished Generetion Context preparation");for(var i=0;i<mode.entries.length;i++)for(var entry=mode.entries[i],matches=this.selectObjects(context,entry.selector),m=0;m<matches.length;m++){var match=matches[m],handlebarsContext={options:mergedOptions,api:context,data:match},name=entry.naming(handlebarsContext);console.log("Starting Generation ("+entry.selector+"): "+name);var content=entry.template(handlebarsContext);language.prettyfy&&name.endsWith(language.extension)&&(content=language.prettyfy(content,name,mergedOptions)),sink.push(name,content)}sink.complete()}))}selectObjects(e,t){for(var r=t?t.split("."):[],i=e,n=0;n<r.length;n++){var s=r[n];if(!(s in i)){i=[];break}i=i[s]}return Array.isArray(i)?i.filter((e=>!e.shouldIgnore)):i.shouldIgnore?[]:[i]}}exports.Generator=Generator;
//# sourceMappingURL=/sm/7f737a0f1ea4a80c61809508a4f44d20d6ba67c959164b408845e3e7131c6d13.map