/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/swagger-codegen@0.1.1/src/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";const _=require("lodash"),debug=require("debug")("swagger-codegen"),definitionMapper=require("./definition-mapper"),defaults=require("defaults-deep"),failureHandler=require("./failure-handler"),handlebarsEngine=require("./handlebars-engine"),handlebarsHelpers=require("./handlebars-helpers"),path=require("path"),util=require("util"),FileTemplateLoader=require("./file-template-loader"),configDefaults={definitionMapper:definitionMapper,failureHandler:failureHandler,helpers:handlebarsHelpers,templateEngine:handlebarsEngine,templateLoader:e=>new FileTemplateLoader(e),textEncoding:"utf8"};function generateCode(e){try{const t=e.swagger;debug("Processing configuration");const n=defaults(e,configDefaults);debug("  Initializing template engine");const i=e.templateEngine(e);debug("  Mapping definitions from file");const o=e.definitionMapper(t);if(n.perDefinition){debug("  Executing per-definition templates:");for(const r of Object.keys(n.perDefinition)){debug("    Iterating template: %s",r);const a=defaults(n.perDefinition[r],{extension:".js",operations:["get","put","post","delete"]}),s=e.templateLoader(i).loadTemplate(r,e.textEncoding);for(const n of Object.keys(o)){const i=o[n];debug("      Processing definition %s",n);const r={model:t,definition:i,definitionMap:o,options:a};debug("      Rendering template");const p=s(r),d=path.join(a.target,i.definitionName.toLowerCase()+a.extension);e.output(d,p)}}}else debug("    No per-definition templates specified in perDefinition");if(n.perPath){debug("  Executing per-path templates:");for(const r of Object.keys(n.perPath)){debug("    Processing template: %s",r);const a=defaults(n.perPath[r],{extension:".js",operations:["get","put","post","delete"]}),s=e.templateLoader(i).loadTemplate(r,e.textEncoding);debug("    Iterating paths, grouping operations by %s",a.groupBy);const p={};for(const e of Object.keys(t.paths)){debug("      Path: %s",e);const n=t.paths[e];let i=n[a.groupBy];n.pathString=path;for(const o of _.intersection(Object.keys(n),a.operations)){debug("        Operation: %s",o);const r=t.paths[e][o];if(i=r[a.groupBy]||i,r.pathDef=n,r.operationString=o,null==i)throw new Error(util.format("Cannot map path operation. No groupBy match at path/operation level: %s/%s [%s]",e,o,a.groupBy));debug("          Assigned to output group: %s",i),void 0===p[i]&&(p[i]=[]),p[i].push(r)}}debug("    Rendering template for %s group(s)",Object.keys(p).length);for(const n of Object.keys(p)){debug("      Processing group: %s",n);const i={};i.fileName=n.trim().toLowerCase(),i.groupKey=n,i.members=p[n],i.definitionMap=o,i.model=t,i.options=a;const r=s(i),d=path.join(a.target,i.fileName+a.extension);e.output(d,r)}}}}catch(t){e.failureHandler(t)}}module.exports=generateCode;
//# sourceMappingURL=/sm/24e79545addb8d44311ba0e69b5cb425d21cf8b7a0a4a55b44fb1ba53b4426b8.map