@devup-api/generator 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
package/dist/index.cjs
CHANGED
|
@@ -6,7 +6,7 @@ ${H}`}else if(typeof L.default<"u")W+=`${H}/** @default {${L.default}} */
|
|
|
6
6
|
${H}`;else W=H;return`${W}${Q}: ${B}`}if(u(L)){let B=T(L.type,J);return`${H}${_}: ${B}`}let I=typeof L==="object"&&L!==null&&!Array.isArray(L)&&m(L)?"?":"",F=T(L,J);return`${H}${_}${I}: ${F}`}).join(`;
|
|
7
7
|
`);if(X.length===0)return"{}";return`{
|
|
8
8
|
${X};
|
|
9
|
-
${Y}}`}function u($){return typeof $==="object"&&$!==null&&"type"in $&&Object.keys($).length<=2&&(!("default"in $)||Object.keys($).length===2)}function T($,U=0){if(typeof $==="string")return $;if(u($))return T($.type,U);if(typeof $==="object"&&$!==null&&!Array.isArray($))return H$($,U);return String($)}function n($,U,Y){let J={},H={},X={},_=[...$?.parameters||[],...U?.parameters||[]];for(let L of _){if("$ref"in L){let w=v(L.$ref,Y);if(w&&"in"in w&&"name"in w&&typeof w.in==="string"&&typeof w.name==="string"){let Q="schema"in w&&w.schema?w.schema:{},{type:W,default:K}=x(Q,Y,{defaultNonNullable:!1}),G={...w,type:W,default:K};if(w.in==="path")J[w.name]=G;else if(w.in==="query")H[w.name]=G;else if(w.in==="header")X[w.name]=G}continue}let E=L.schema||{},{type:I,default:F}=x(E,Y,{defaultNonNullable:!1}),B={...L,type:I,default:F};if(L.in==="path")J[L.name]=B;else if(L.in==="query")H[L.name]=B;else if(L.in==="header")X[L.name]=B}return{pathParams:J,queryParams:H,headerParams:X}}function d($,U){if(!$)return;if("$ref"in $){let J=v($.$ref,U);if(J&&"content"in J&&J.content){let X=J.content["application/json"];if(X&&"schema"in X&&X.schema)return x(X.schema,U,{defaultNonNullable:!1}).type}return"unknown"}let Y=$.content;if(Y){let J=Y["application/json"];if(J&&"schema"in J&&J.schema)return x(J.schema,U,{defaultNonNullable:!1}).type}return}function N($){if($.includes("/")||$.includes("."))return`[\`${$}\`]`;return $}function y($){if($.startsWith("#/components/schemas/"))return $.replace("#/components/schemas/","");return null}function J$($){return $.replace(/^\.\//,"")}function L$($,U,Y){let J={get:{},post:{},put:{},delete:{},patch:{}},H=Y?.convertCase??"camel",X=(Q,W)=>{if("$ref"in Q){let G=y(Q.$ref);if(G)W.add(G);return}let K=Q;if(K.allOf)K.allOf.forEach((G)=>{X(G,W)});if(K.anyOf)K.anyOf.forEach((G)=>{X(G,W)});if(K.oneOf)K.oneOf.forEach((G)=>{X(G,W)});if(K.properties)Object.values(K.properties).forEach((G)=>{X(G,W)});if(K.type==="array"&&"items"in K&&K.items)X(K.items,W)},_=new Set,L=new Set,E=new Set,I=(Q)=>{if(Q==="default")return!0;let W=parseInt(Q,10);return W>=400&&W<600};if($.paths)for(let Q of Object.values($.paths)){if(!Q)continue;let W=["get","post","put","delete","patch"];for(let K of W){let G=Q[K];if(!G)continue;if(G.requestBody)if("$ref"in G.requestBody){let Z=y(G.requestBody.$ref);if(Z)_.add(Z)}else{let D=G.requestBody.content?.["application/json"];if(D&&"schema"in D&&D.schema)X(D.schema,_)}if(G.responses)for(let[Z,D]of Object.entries(G.responses)){let R=I(Z);if("$ref"in D){let q=y(D.$ref);if(q)if(R)E.add(q);else L.add(q)}else if("content"in D){let z=D.content?.["application/json"];if(z&&"schema"in z&&z.schema)if(R)X(z.schema,E);else X(z.schema,L)}}}}if($.paths)for(let[Q,W]of Object.entries($.paths)){if(!W)continue;let K=["get","post","put","delete","patch"];for(let G of K){let Z=W[G];if(!Z)continue;let D={},{pathParams:R,queryParams:q}=n(W,Z,$),z={};for(let[M,O]of Object.entries(R)){let A=C(M,H);z[A]=O}let b={};for(let[M,O]of Object.entries(q)){let A=C(M,H);b[A]=O}if(Object.keys(z).length>0)D.params=z;if(Object.keys(b).length>0)D.query=b;let f;if(Z.requestBody)if("$ref"in Z.requestBody){let M=d(Z.requestBody,$);if(M!==void 0)f=M}else{let O=Z.requestBody.content?.["application/json"];if(O&&"schema"in O&&O.schema)if("$ref"in O.schema){let A=y(O.schema.$ref);if(A&&$.components?.schemas?.[A]&&_.has(A))f=`DevupRequestComponentStruct['${A}']`;else{let V=d(Z.requestBody,$);if(V!==void 0)f=V}}else{let A=d(Z.requestBody,$);if(A!==void 0)f=A}}if(f!==void 0)D.body=f;let g;if(Z.responses){let M=Z.responses["200"]||Z.responses["201"]||Object.values(Z.responses)[0];if(M){if("$ref"in M);else if("content"in M){let A=M.content?.["application/json"];if(A&&"schema"in A&&A.schema)if("$ref"in A.schema){let V=y(A.schema.$ref);if(V&&$.components?.schemas?.[V]&&L.has(V))g=`DevupResponseComponentStruct['${U}']['${V}']`;else{let k=Y?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});g=S}}else{let V=A.schema;if(V.type==="array"&&V.items&&"$ref"in V.items){let k=y(V.items.$ref);if(k&&$.components?.schemas?.[k]&&L.has(k))g=`Array<DevupResponseComponentStruct['${U}']['${k}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:l}=x(A.schema,$,{defaultNonNullable:S});g=l}}else{let k=Y?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});g=S}}}}}if(g!==void 0)D.response=g;let P;if(Z.responses){let M=Z.responses["400"]||Z.responses["401"]||Z.responses["403"]||Z.responses["404"]||Z.responses["422"]||Z.responses["500"]||Z.responses.default||Object.entries(Z.responses).find(([O])=>I(O))?.[1];if(M){if("$ref"in M);else if("content"in M){let A=M.content?.["application/json"];if(A&&"schema"in A&&A.schema)if("$ref"in A.schema){let V=y(A.schema.$ref);if(V&&$.components?.schemas?.[V]&&E.has(V))P=`DevupErrorComponentStruct['${V}']`;else{let k=Y?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});P=S}}else{let V=A.schema;if(V.type==="array"&&V.items&&"$ref"in V.items){let k=y(V.items.$ref);if(k&&$.components?.schemas?.[k]&&E.has(k))P=`Array<DevupErrorComponentStruct['${k}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:l}=x(A.schema,$,{defaultNonNullable:S});P=l}}else{let k=Y?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});P=S}}}}}if(P!==void 0)D.error=P;let j=Q.replace(/\{([^}]+)\}/g,(M,O)=>{return`{${C(O,H)}}`});if(J[G][j]=D,Z.operationId){let M=C(Z.operationId,H);J[G][M]=D}}}let F={},B={},w={};if($.components?.schemas){for(let[Q,W]of Object.entries($.components.schemas))if(W){let K=Y?.requestDefaultNonNullable??!1,Z=Y?.responseDefaultNonNullable??!0;if(_.has(Q))Z=K;let{type:D}=x(W,$,{defaultNonNullable:Z});if(_.has(Q))F[Q]=D;if(L.has(Q))B[Q]=D;if(E.has(Q))w[Q]=D}}return{endpoints:J,requestComponents:F,responseComponents:B,errorComponents:w}}function U$($,U){let Y=[],J=new Map,H={},X={},_={},L={};for(let[R,q]of Object.entries($)){let z=J$(R);Y.push(z),J.set(z,R);let{endpoints:b,requestComponents:f,responseComponents:g,errorComponents:P}=L$(q,z,U);H[z]=b,X[z]=f,_[z]=g,L[z]=P}let I=` interface DevupApiServers {
|
|
9
|
+
${Y}}`}function u($){return typeof $==="object"&&$!==null&&"type"in $&&Object.keys($).length<=2&&(!("default"in $)||Object.keys($).length===2)}function T($,U=0){if(typeof $==="string")return $;if(u($))return T($.type,U);if(typeof $==="object"&&$!==null&&!Array.isArray($))return H$($,U);return String($)}function n($,U,Y){let J={},H={},X={},_=[...$?.parameters||[],...U?.parameters||[]];for(let L of _){if("$ref"in L){let w=v(L.$ref,Y);if(w&&"in"in w&&"name"in w&&typeof w.in==="string"&&typeof w.name==="string"){let Q="schema"in w&&w.schema?w.schema:{},{type:W,default:K}=x(Q,Y,{defaultNonNullable:!1}),G={...w,type:W,default:K};if(w.in==="path")J[w.name]=G;else if(w.in==="query")H[w.name]=G;else if(w.in==="header")X[w.name]=G}continue}let E=L.schema||{},{type:I,default:F}=x(E,Y,{defaultNonNullable:!1}),B={...L,type:I,default:F};if(L.in==="path")J[L.name]=B;else if(L.in==="query")H[L.name]=B;else if(L.in==="header")X[L.name]=B}return{pathParams:J,queryParams:H,headerParams:X}}function d($,U){if(!$)return;if("$ref"in $){let J=v($.$ref,U);if(J&&"content"in J&&J.content){let X=J.content["application/json"];if(X&&"schema"in X&&X.schema)return x(X.schema,U,{defaultNonNullable:!1}).type}return"unknown"}let Y=$.content;if(Y){let J=Y["application/json"];if(J&&"schema"in J&&J.schema)return x(J.schema,U,{defaultNonNullable:!1}).type}return}function N($){if($.includes("/")||$.includes("."))return`[\`${$}\`]`;return $}function y($){if($.startsWith("#/components/schemas/"))return $.replace("#/components/schemas/","");return null}function J$($){return $.replace(/^\.\//,"")}function L$($,U,Y){let J={get:{},post:{},put:{},delete:{},patch:{}},H=Y?.convertCase??"camel",X=(Q,W)=>{if("$ref"in Q){let G=y(Q.$ref);if(G)W.add(G);return}let K=Q;if(K.allOf)K.allOf.forEach((G)=>{X(G,W)});if(K.anyOf)K.anyOf.forEach((G)=>{X(G,W)});if(K.oneOf)K.oneOf.forEach((G)=>{X(G,W)});if(K.properties)Object.values(K.properties).forEach((G)=>{X(G,W)});if(K.type==="array"&&"items"in K&&K.items)X(K.items,W)},_=new Set,L=new Set,E=new Set,I=(Q)=>{if(Q==="default")return!0;let W=parseInt(Q,10);return W>=400&&W<600};if($.paths)for(let Q of Object.values($.paths)){if(!Q)continue;let W=["get","post","put","delete","patch"];for(let K of W){let G=Q[K];if(!G)continue;if(G.requestBody)if("$ref"in G.requestBody){let Z=y(G.requestBody.$ref);if(Z)_.add(Z)}else{let D=G.requestBody.content?.["application/json"];if(D&&"schema"in D&&D.schema)X(D.schema,_)}if(G.responses)for(let[Z,D]of Object.entries(G.responses)){let R=I(Z);if("$ref"in D){let q=y(D.$ref);if(q)if(R)E.add(q);else L.add(q)}else if("content"in D){let z=D.content?.["application/json"];if(z&&"schema"in z&&z.schema)if(R)X(z.schema,E);else X(z.schema,L)}}}}if($.paths)for(let[Q,W]of Object.entries($.paths)){if(!W)continue;let K=["get","post","put","delete","patch"];for(let G of K){let Z=W[G];if(!Z)continue;let D={},{pathParams:R,queryParams:q}=n(W,Z,$),z={};for(let[M,O]of Object.entries(R)){let A=C(M,H);z[A]=O}let b={};for(let[M,O]of Object.entries(q)){let A=C(M,H);b[A]=O}if(Object.keys(z).length>0)D.params=z;if(Object.keys(b).length>0)D.query=b;let f;if(Z.requestBody)if("$ref"in Z.requestBody){let M=d(Z.requestBody,$);if(M!==void 0)f=M}else{let O=Z.requestBody.content?.["application/json"];if(O&&"schema"in O&&O.schema)if("$ref"in O.schema){let A=y(O.schema.$ref);if(A&&$.components?.schemas?.[A]&&_.has(A))f=`DevupRequestComponentStruct['${U}']['${A}']`;else{let V=d(Z.requestBody,$);if(V!==void 0)f=V}}else{let A=d(Z.requestBody,$);if(A!==void 0)f=A}}if(f!==void 0)D.body=f;let g;if(Z.responses){let M=Z.responses["200"]||Z.responses["201"]||Object.values(Z.responses)[0];if(M){if("$ref"in M);else if("content"in M){let A=M.content?.["application/json"];if(A&&"schema"in A&&A.schema)if("$ref"in A.schema){let V=y(A.schema.$ref);if(V&&$.components?.schemas?.[V]&&L.has(V))g=`DevupResponseComponentStruct['${U}']['${V}']`;else{let k=Y?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});g=S}}else{let V=A.schema;if(V.type==="array"&&V.items&&"$ref"in V.items){let k=y(V.items.$ref);if(k&&$.components?.schemas?.[k]&&L.has(k))g=`Array<DevupResponseComponentStruct['${U}']['${k}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:l}=x(A.schema,$,{defaultNonNullable:S});g=l}}else{let k=Y?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});g=S}}}}}if(g!==void 0)D.response=g;let P;if(Z.responses){let M=Z.responses["400"]||Z.responses["401"]||Z.responses["403"]||Z.responses["404"]||Z.responses["422"]||Z.responses["500"]||Z.responses.default||Object.entries(Z.responses).find(([O])=>I(O))?.[1];if(M){if("$ref"in M);else if("content"in M){let A=M.content?.["application/json"];if(A&&"schema"in A&&A.schema)if("$ref"in A.schema){let V=y(A.schema.$ref);if(V&&$.components?.schemas?.[V]&&E.has(V))P=`DevupErrorComponentStruct['${V}']`;else{let k=Y?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});P=S}}else{let V=A.schema;if(V.type==="array"&&V.items&&"$ref"in V.items){let k=y(V.items.$ref);if(k&&$.components?.schemas?.[k]&&E.has(k))P=`Array<DevupErrorComponentStruct['${k}']>`;else{let S=Y?.responseDefaultNonNullable??!0,{type:l}=x(A.schema,$,{defaultNonNullable:S});P=l}}else{let k=Y?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});P=S}}}}}if(P!==void 0)D.error=P;let j=Q.replace(/\{([^}]+)\}/g,(M,O)=>{return`{${C(O,H)}}`});if(J[G][j]=D,Z.operationId){let M=C(Z.operationId,H);J[G][M]=D}}}let F={},B={},w={};if($.components?.schemas){for(let[Q,W]of Object.entries($.components.schemas))if(W){let K=Y?.requestDefaultNonNullable??!1,Z=Y?.responseDefaultNonNullable??!0;if(_.has(Q))Z=K;let{type:D}=x(W,$,{defaultNonNullable:Z});if(_.has(Q))F[Q]=D;if(L.has(Q))B[Q]=D;if(E.has(Q))w[Q]=D}}return{endpoints:J,requestComponents:F,responseComponents:B,errorComponents:w}}function U$($,U){let Y=[],J=new Map,H={},X={},_={},L={};for(let[R,q]of Object.entries($)){let z=J$(R);Y.push(z),J.set(z,R);let{endpoints:b,requestComponents:f,responseComponents:g,errorComponents:P}=L$(q,z,U);H[z]=b,X[z]=f,_[z]=g,L[z]=P}let I=` interface DevupApiServers {
|
|
10
10
|
${Y.map((R)=>` ${N(R)}: never`).join(`;
|
|
11
11
|
`)}
|
|
12
12
|
}`,F=[],B=["get","post","put","delete","patch"];for(let R of B){let q=[];for(let z of Y){let b=H[z]?.[R];if(b&&Object.keys(b).length>0){let f=Object.entries(b).map(([P,j])=>{let M=T(j,3);return` ${N(P)}: ${M}`}).join(`;
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ ${H}`}else if(typeof J.default<"u")W+=`${H}/** @default {${J.default}} */
|
|
|
6
6
|
${H}`;else W=H;return`${W}${Q}: ${B}`}if(l(J)){let B=T(J.type,L);return`${H}${_}: ${B}`}let I=typeof J==="object"&&J!==null&&!Array.isArray(J)&&u(J)?"?":"",F=T(J,L);return`${H}${_}${I}: ${F}`}).join(`;
|
|
7
7
|
`);if(U.length===0)return"{}";return`{
|
|
8
8
|
${U};
|
|
9
|
-
${X}}`}function l($){return typeof $==="object"&&$!==null&&"type"in $&&Object.keys($).length<=2&&(!("default"in $)||Object.keys($).length===2)}function T($,Y=0){if(typeof $==="string")return $;if(l($))return T($.type,Y);if(typeof $==="object"&&$!==null&&!Array.isArray($))return r($,Y);return String($)}function p($,Y,X){let L={},H={},U={},_=[...$?.parameters||[],...Y?.parameters||[]];for(let J of _){if("$ref"in J){let w=i(J.$ref,X);if(w&&"in"in w&&"name"in w&&typeof w.in==="string"&&typeof w.name==="string"){let Q="schema"in w&&w.schema?w.schema:{},{type:W,default:K}=x(Q,X,{defaultNonNullable:!1}),G={...w,type:W,default:K};if(w.in==="path")L[w.name]=G;else if(w.in==="query")H[w.name]=G;else if(w.in==="header")U[w.name]=G}continue}let E=J.schema||{},{type:I,default:F}=x(E,X,{defaultNonNullable:!1}),B={...J,type:I,default:F};if(J.in==="path")L[J.name]=B;else if(J.in==="query")H[J.name]=B;else if(J.in==="header")U[J.name]=B}return{pathParams:L,queryParams:H,headerParams:U}}function v($,Y){if(!$)return;if("$ref"in $){let L=i($.$ref,Y);if(L&&"content"in L&&L.content){let U=L.content["application/json"];if(U&&"schema"in U&&U.schema)return x(U.schema,Y,{defaultNonNullable:!1}).type}return"unknown"}let X=$.content;if(X){let L=X["application/json"];if(L&&"schema"in L&&L.schema)return x(L.schema,Y,{defaultNonNullable:!1}).type}return}function N($){if($.includes("/")||$.includes("."))return`[\`${$}\`]`;return $}function y($){if($.startsWith("#/components/schemas/"))return $.replace("#/components/schemas/","");return null}function s($){return $.replace(/^\.\//,"")}function t($,Y,X){let L={get:{},post:{},put:{},delete:{},patch:{}},H=X?.convertCase??"camel",U=(Q,W)=>{if("$ref"in Q){let G=y(Q.$ref);if(G)W.add(G);return}let K=Q;if(K.allOf)K.allOf.forEach((G)=>{U(G,W)});if(K.anyOf)K.anyOf.forEach((G)=>{U(G,W)});if(K.oneOf)K.oneOf.forEach((G)=>{U(G,W)});if(K.properties)Object.values(K.properties).forEach((G)=>{U(G,W)});if(K.type==="array"&&"items"in K&&K.items)U(K.items,W)},_=new Set,J=new Set,E=new Set,I=(Q)=>{if(Q==="default")return!0;let W=parseInt(Q,10);return W>=400&&W<600};if($.paths)for(let Q of Object.values($.paths)){if(!Q)continue;let W=["get","post","put","delete","patch"];for(let K of W){let G=Q[K];if(!G)continue;if(G.requestBody)if("$ref"in G.requestBody){let Z=y(G.requestBody.$ref);if(Z)_.add(Z)}else{let D=G.requestBody.content?.["application/json"];if(D&&"schema"in D&&D.schema)U(D.schema,_)}if(G.responses)for(let[Z,D]of Object.entries(G.responses)){let R=I(Z);if("$ref"in D){let q=y(D.$ref);if(q)if(R)E.add(q);else J.add(q)}else if("content"in D){let z=D.content?.["application/json"];if(z&&"schema"in z&&z.schema)if(R)U(z.schema,E);else U(z.schema,J)}}}}if($.paths)for(let[Q,W]of Object.entries($.paths)){if(!W)continue;let K=["get","post","put","delete","patch"];for(let G of K){let Z=W[G];if(!Z)continue;let D={},{pathParams:R,queryParams:q}=p(W,Z,$),z={};for(let[M,O]of Object.entries(R)){let A=C(M,H);z[A]=O}let b={};for(let[M,O]of Object.entries(q)){let A=C(M,H);b[A]=O}if(Object.keys(z).length>0)D.params=z;if(Object.keys(b).length>0)D.query=b;let f;if(Z.requestBody)if("$ref"in Z.requestBody){let M=v(Z.requestBody,$);if(M!==void 0)f=M}else{let O=Z.requestBody.content?.["application/json"];if(O&&"schema"in O&&O.schema)if("$ref"in O.schema){let A=y(O.schema.$ref);if(A&&$.components?.schemas?.[A]&&_.has(A))f=`DevupRequestComponentStruct['${A}']`;else{let V=v(Z.requestBody,$);if(V!==void 0)f=V}}else{let A=v(Z.requestBody,$);if(A!==void 0)f=A}}if(f!==void 0)D.body=f;let g;if(Z.responses){let M=Z.responses["200"]||Z.responses["201"]||Object.values(Z.responses)[0];if(M){if("$ref"in M);else if("content"in M){let A=M.content?.["application/json"];if(A&&"schema"in A&&A.schema)if("$ref"in A.schema){let V=y(A.schema.$ref);if(V&&$.components?.schemas?.[V]&&J.has(V))g=`DevupResponseComponentStruct['${Y}']['${V}']`;else{let k=X?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});g=S}}else{let V=A.schema;if(V.type==="array"&&V.items&&"$ref"in V.items){let k=y(V.items.$ref);if(k&&$.components?.schemas?.[k]&&J.has(k))g=`Array<DevupResponseComponentStruct['${Y}']['${k}']>`;else{let S=X?.responseDefaultNonNullable??!0,{type:d}=x(A.schema,$,{defaultNonNullable:S});g=d}}else{let k=X?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});g=S}}}}}if(g!==void 0)D.response=g;let P;if(Z.responses){let M=Z.responses["400"]||Z.responses["401"]||Z.responses["403"]||Z.responses["404"]||Z.responses["422"]||Z.responses["500"]||Z.responses.default||Object.entries(Z.responses).find(([O])=>I(O))?.[1];if(M){if("$ref"in M);else if("content"in M){let A=M.content?.["application/json"];if(A&&"schema"in A&&A.schema)if("$ref"in A.schema){let V=y(A.schema.$ref);if(V&&$.components?.schemas?.[V]&&E.has(V))P=`DevupErrorComponentStruct['${V}']`;else{let k=X?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});P=S}}else{let V=A.schema;if(V.type==="array"&&V.items&&"$ref"in V.items){let k=y(V.items.$ref);if(k&&$.components?.schemas?.[k]&&E.has(k))P=`Array<DevupErrorComponentStruct['${k}']>`;else{let S=X?.responseDefaultNonNullable??!0,{type:d}=x(A.schema,$,{defaultNonNullable:S});P=d}}else{let k=X?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});P=S}}}}}if(P!==void 0)D.error=P;let j=Q.replace(/\{([^}]+)\}/g,(M,O)=>{return`{${C(O,H)}}`});if(L[G][j]=D,Z.operationId){let M=C(Z.operationId,H);L[G][M]=D}}}let F={},B={},w={};if($.components?.schemas){for(let[Q,W]of Object.entries($.components.schemas))if(W){let K=X?.requestDefaultNonNullable??!1,Z=X?.responseDefaultNonNullable??!0;if(_.has(Q))Z=K;let{type:D}=x(W,$,{defaultNonNullable:Z});if(_.has(Q))F[Q]=D;if(J.has(Q))B[Q]=D;if(E.has(Q))w[Q]=D}}return{endpoints:L,requestComponents:F,responseComponents:B,errorComponents:w}}function W$($,Y){let X=[],L=new Map,H={},U={},_={},J={};for(let[R,q]of Object.entries($)){let z=s(R);X.push(z),L.set(z,R);let{endpoints:b,requestComponents:f,responseComponents:g,errorComponents:P}=t(q,z,Y);H[z]=b,U[z]=f,_[z]=g,J[z]=P}let I=` interface DevupApiServers {
|
|
9
|
+
${X}}`}function l($){return typeof $==="object"&&$!==null&&"type"in $&&Object.keys($).length<=2&&(!("default"in $)||Object.keys($).length===2)}function T($,Y=0){if(typeof $==="string")return $;if(l($))return T($.type,Y);if(typeof $==="object"&&$!==null&&!Array.isArray($))return r($,Y);return String($)}function p($,Y,X){let L={},H={},U={},_=[...$?.parameters||[],...Y?.parameters||[]];for(let J of _){if("$ref"in J){let w=i(J.$ref,X);if(w&&"in"in w&&"name"in w&&typeof w.in==="string"&&typeof w.name==="string"){let Q="schema"in w&&w.schema?w.schema:{},{type:W,default:K}=x(Q,X,{defaultNonNullable:!1}),G={...w,type:W,default:K};if(w.in==="path")L[w.name]=G;else if(w.in==="query")H[w.name]=G;else if(w.in==="header")U[w.name]=G}continue}let E=J.schema||{},{type:I,default:F}=x(E,X,{defaultNonNullable:!1}),B={...J,type:I,default:F};if(J.in==="path")L[J.name]=B;else if(J.in==="query")H[J.name]=B;else if(J.in==="header")U[J.name]=B}return{pathParams:L,queryParams:H,headerParams:U}}function v($,Y){if(!$)return;if("$ref"in $){let L=i($.$ref,Y);if(L&&"content"in L&&L.content){let U=L.content["application/json"];if(U&&"schema"in U&&U.schema)return x(U.schema,Y,{defaultNonNullable:!1}).type}return"unknown"}let X=$.content;if(X){let L=X["application/json"];if(L&&"schema"in L&&L.schema)return x(L.schema,Y,{defaultNonNullable:!1}).type}return}function N($){if($.includes("/")||$.includes("."))return`[\`${$}\`]`;return $}function y($){if($.startsWith("#/components/schemas/"))return $.replace("#/components/schemas/","");return null}function s($){return $.replace(/^\.\//,"")}function t($,Y,X){let L={get:{},post:{},put:{},delete:{},patch:{}},H=X?.convertCase??"camel",U=(Q,W)=>{if("$ref"in Q){let G=y(Q.$ref);if(G)W.add(G);return}let K=Q;if(K.allOf)K.allOf.forEach((G)=>{U(G,W)});if(K.anyOf)K.anyOf.forEach((G)=>{U(G,W)});if(K.oneOf)K.oneOf.forEach((G)=>{U(G,W)});if(K.properties)Object.values(K.properties).forEach((G)=>{U(G,W)});if(K.type==="array"&&"items"in K&&K.items)U(K.items,W)},_=new Set,J=new Set,E=new Set,I=(Q)=>{if(Q==="default")return!0;let W=parseInt(Q,10);return W>=400&&W<600};if($.paths)for(let Q of Object.values($.paths)){if(!Q)continue;let W=["get","post","put","delete","patch"];for(let K of W){let G=Q[K];if(!G)continue;if(G.requestBody)if("$ref"in G.requestBody){let Z=y(G.requestBody.$ref);if(Z)_.add(Z)}else{let D=G.requestBody.content?.["application/json"];if(D&&"schema"in D&&D.schema)U(D.schema,_)}if(G.responses)for(let[Z,D]of Object.entries(G.responses)){let R=I(Z);if("$ref"in D){let q=y(D.$ref);if(q)if(R)E.add(q);else J.add(q)}else if("content"in D){let z=D.content?.["application/json"];if(z&&"schema"in z&&z.schema)if(R)U(z.schema,E);else U(z.schema,J)}}}}if($.paths)for(let[Q,W]of Object.entries($.paths)){if(!W)continue;let K=["get","post","put","delete","patch"];for(let G of K){let Z=W[G];if(!Z)continue;let D={},{pathParams:R,queryParams:q}=p(W,Z,$),z={};for(let[M,O]of Object.entries(R)){let A=C(M,H);z[A]=O}let b={};for(let[M,O]of Object.entries(q)){let A=C(M,H);b[A]=O}if(Object.keys(z).length>0)D.params=z;if(Object.keys(b).length>0)D.query=b;let f;if(Z.requestBody)if("$ref"in Z.requestBody){let M=v(Z.requestBody,$);if(M!==void 0)f=M}else{let O=Z.requestBody.content?.["application/json"];if(O&&"schema"in O&&O.schema)if("$ref"in O.schema){let A=y(O.schema.$ref);if(A&&$.components?.schemas?.[A]&&_.has(A))f=`DevupRequestComponentStruct['${Y}']['${A}']`;else{let V=v(Z.requestBody,$);if(V!==void 0)f=V}}else{let A=v(Z.requestBody,$);if(A!==void 0)f=A}}if(f!==void 0)D.body=f;let g;if(Z.responses){let M=Z.responses["200"]||Z.responses["201"]||Object.values(Z.responses)[0];if(M){if("$ref"in M);else if("content"in M){let A=M.content?.["application/json"];if(A&&"schema"in A&&A.schema)if("$ref"in A.schema){let V=y(A.schema.$ref);if(V&&$.components?.schemas?.[V]&&J.has(V))g=`DevupResponseComponentStruct['${Y}']['${V}']`;else{let k=X?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});g=S}}else{let V=A.schema;if(V.type==="array"&&V.items&&"$ref"in V.items){let k=y(V.items.$ref);if(k&&$.components?.schemas?.[k]&&J.has(k))g=`Array<DevupResponseComponentStruct['${Y}']['${k}']>`;else{let S=X?.responseDefaultNonNullable??!0,{type:d}=x(A.schema,$,{defaultNonNullable:S});g=d}}else{let k=X?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});g=S}}}}}if(g!==void 0)D.response=g;let P;if(Z.responses){let M=Z.responses["400"]||Z.responses["401"]||Z.responses["403"]||Z.responses["404"]||Z.responses["422"]||Z.responses["500"]||Z.responses.default||Object.entries(Z.responses).find(([O])=>I(O))?.[1];if(M){if("$ref"in M);else if("content"in M){let A=M.content?.["application/json"];if(A&&"schema"in A&&A.schema)if("$ref"in A.schema){let V=y(A.schema.$ref);if(V&&$.components?.schemas?.[V]&&E.has(V))P=`DevupErrorComponentStruct['${V}']`;else{let k=X?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});P=S}}else{let V=A.schema;if(V.type==="array"&&V.items&&"$ref"in V.items){let k=y(V.items.$ref);if(k&&$.components?.schemas?.[k]&&E.has(k))P=`Array<DevupErrorComponentStruct['${k}']>`;else{let S=X?.responseDefaultNonNullable??!0,{type:d}=x(A.schema,$,{defaultNonNullable:S});P=d}}else{let k=X?.responseDefaultNonNullable??!0,{type:S}=x(A.schema,$,{defaultNonNullable:k});P=S}}}}}if(P!==void 0)D.error=P;let j=Q.replace(/\{([^}]+)\}/g,(M,O)=>{return`{${C(O,H)}}`});if(L[G][j]=D,Z.operationId){let M=C(Z.operationId,H);L[G][M]=D}}}let F={},B={},w={};if($.components?.schemas){for(let[Q,W]of Object.entries($.components.schemas))if(W){let K=X?.requestDefaultNonNullable??!1,Z=X?.responseDefaultNonNullable??!0;if(_.has(Q))Z=K;let{type:D}=x(W,$,{defaultNonNullable:Z});if(_.has(Q))F[Q]=D;if(J.has(Q))B[Q]=D;if(E.has(Q))w[Q]=D}}return{endpoints:L,requestComponents:F,responseComponents:B,errorComponents:w}}function W$($,Y){let X=[],L=new Map,H={},U={},_={},J={};for(let[R,q]of Object.entries($)){let z=s(R);X.push(z),L.set(z,R);let{endpoints:b,requestComponents:f,responseComponents:g,errorComponents:P}=t(q,z,Y);H[z]=b,U[z]=f,_[z]=g,J[z]=P}let I=` interface DevupApiServers {
|
|
10
10
|
${X.map((R)=>` ${N(R)}: never`).join(`;
|
|
11
11
|
`)}
|
|
12
12
|
}`,F=[],B=["get","post","put","delete","patch"];for(let R of B){let q=[];for(let z of X){let b=H[z]?.[R];if(b&&Object.keys(b).length>0){let f=Object.entries(b).map(([P,j])=>{let M=T(j,3);return` ${N(P)}: ${M}`}).join(`;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devup-api/generator",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"access": "public"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@devup-api/core": "0.1.
|
|
24
|
-
"@devup-api/utils": "0.1.
|
|
23
|
+
"@devup-api/core": "0.1.8",
|
|
24
|
+
"@devup-api/utils": "0.1.5"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
27
|
"@types/node": "^24.10",
|