@devup-api/utils
Advanced tools
| import type { OpenAPIV3_1 } from 'openapi-types'; | ||
| /** | ||
| * Minimal options interface for the generation pipeline. | ||
| * Defined locally to avoid depending on @devup-api/core. | ||
| */ | ||
| interface GenerateDevupOptions { | ||
| openapiFiles?: string | string[]; | ||
| tempDir?: string; | ||
| } | ||
| /** | ||
| * Generator functions injected by the caller. | ||
| * This decouples @devup-api/utils from @devup-api/generator. | ||
| */ | ||
| export interface DevupGenerators<TOptions = unknown> { | ||
| generateInterface: (schemas: Record<string, OpenAPIV3_1.Document>, options?: TOptions) => string; | ||
| generateZodSchemas: (schemas: Record<string, OpenAPIV3_1.Document>, options?: TOptions) => string; | ||
| generateZodTypeDeclarations: (schemas: Record<string, OpenAPIV3_1.Document>, options?: TOptions) => string; | ||
| generateCrudConfigCode: (schemas: Record<string, OpenAPIV3_1.Document>) => string; | ||
| generateCrudConfigTypes: (schemas: Record<string, OpenAPIV3_1.Document>) => string; | ||
| createUrlMap: (schemas: Record<string, OpenAPIV3_1.Document>, options?: TOptions) => Record<string, unknown>; | ||
| } | ||
| /** | ||
| * IO functions for the async pipeline. | ||
| */ | ||
| export interface DevupIOAsync { | ||
| createTmpDirAsync: (tempDir?: string) => Promise<string>; | ||
| normalizeOpenapiFiles: (openapiFiles?: string[] | string) => string[]; | ||
| readOpenapiAsync: (openapiFiles: string[]) => Promise<Record<string, OpenAPIV3_1.Document>>; | ||
| writeInterfaceAsync: (filePath: string, content: string) => Promise<void>; | ||
| } | ||
| /** | ||
| * IO functions for the sync pipeline. | ||
| */ | ||
| export interface DevupIOSync { | ||
| createTmpDir: (tempDir?: string) => string; | ||
| normalizeOpenapiFiles: (openapiFiles?: string[] | string) => string[]; | ||
| readOpenapis: (openapiFiles: string[]) => Record<string, OpenAPIV3_1.Document>; | ||
| writeInterface: (filePath: string, content: string) => void; | ||
| } | ||
| /** | ||
| * Generated file contents from the pipeline. | ||
| */ | ||
| export interface DevupGeneratedFiles { | ||
| interface: string; | ||
| zodSchemas: string; | ||
| zodTypes: string; | ||
| crudConfig: string; | ||
| crudTypes: string; | ||
| } | ||
| /** | ||
| * Result of the generation pipeline. | ||
| */ | ||
| export interface DevupArtifacts { | ||
| tempDir: string; | ||
| schemas: Record<string, OpenAPIV3_1.Document>; | ||
| files: DevupGeneratedFiles; | ||
| urlMap: Record<string, unknown>; | ||
| } | ||
| /** | ||
| * Async generation pipeline: read schemas → generate all outputs → write files → create URL map. | ||
| * Used by Vite, Webpack, and Rsbuild plugins. | ||
| */ | ||
| export declare function generateDevupArtifactsAsync<TOptions extends GenerateDevupOptions>(io: DevupIOAsync, generators: DevupGenerators<TOptions>, options?: TOptions): Promise<DevupArtifacts>; | ||
| /** | ||
| * Sync generation pipeline: read schemas → generate all outputs → write files → create URL map. | ||
| * Used by Next.js Turbopack plugin. | ||
| */ | ||
| export declare function generateDevupArtifacts<TOptions extends GenerateDevupOptions>(io: DevupIOSync, generators: DevupGenerators<TOptions>, options?: TOptions): DevupArtifacts; | ||
| export {}; | ||
| //# sourceMappingURL=generate-devup.d.ts.map |
| {"version":3,"file":"generate-devup.d.ts","sourceRoot":"","sources":["../src/generate-devup.ts"],"names":[],"mappings":"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"} |
+1
-1
@@ -1,1 +0,1 @@ | ||
| var{defineProperty:E,getOwnPropertyNames:T,getOwnPropertyDescriptor:U}=Object,V=Object.prototype.hasOwnProperty;var G=new WeakMap,W=(x)=>{var j=G.get(x),q;if(j)return j;if(j=E({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function")T(x).map((B)=>!V.call(j,B)&&E(j,B,{get:()=>x[B],enumerable:!(q=U(x,B))||q.enumerable}));return G.set(x,j),j};var X=(x,j)=>{for(var q in j)E(x,q,{get:j[q],enumerable:!0,configurable:!0,set:(B)=>j[q]=()=>B})};var N={};X(N,{writeInterfaceAsync:()=>O,writeInterface:()=>k,toSnake:()=>g,toPascal:()=>b,toCamel:()=>R,readOpenapis:()=>$,readOpenapiAsync:()=>z,normalizeOpenapiFiles:()=>_,createTmpDirAsync:()=>Z,createTmpDir:()=>Y});module.exports=W(N);var C=require("node:fs"),H=require("node:fs/promises");function Y(x="df"){if(!C.existsSync(x))C.mkdirSync(x,{recursive:!0});return x}async function Z(x="df"){try{await H.mkdir(x,{recursive:!0})}catch(j){if(j.code!=="EEXIST")throw j}return x}var J=require("node:fs"),K=require("node:fs/promises");function _(x){if(!x)return["openapi.json"];if(Array.isArray(x))return x.length>0?x:["openapi.json"];return[x]}function L(x){return x.replace(/^\.\//,"")}function $(x){return x.reduce((j,q)=>{return j[L(q)]=JSON.parse(J.readFileSync(q,"utf8")),j},{})}async function z(x){let j=await Promise.all(x.map(async(q)=>{return[L(q),JSON.parse(await K.readFile(q,"utf8"))]}));return Object.fromEntries(j)}function R(x){if(/^[a-z][a-zA-Z0-9]*$/.test(x))return x;let j=x.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[^a-zA-Z0-9]+/).filter((q)=>q.length>0);if(j.length===0)return x.toLowerCase();return j[0]?.toLowerCase()+j.slice(1).map((q)=>q.charAt(0).toUpperCase()+q.slice(1).toLowerCase()).join("")}function b(x){if(/^[A-Z][a-zA-Z0-9]*$/.test(x))return x;let j=x.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[^a-zA-Z0-9]+/).filter((q)=>q.length>0);if(j.length===0)return x.charAt(0).toUpperCase()+x.slice(1).toLowerCase();return j.map((q)=>q.charAt(0).toUpperCase()+q.slice(1).toLowerCase()).join("")}function g(x){if(!x)return x;return x.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/([0-9])([A-Z])/g,"$1_$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/[^a-zA-Z0-9]/g,"_").toLowerCase().replace(/_+/g,"_").replace(/^_|_$/g,"")}var M=require("node:fs"),Q=require("node:fs/promises");function k(x,j){M.writeFileSync(x,j,"utf8")}async function O(x,j){await Q.writeFile(x,j,"utf8")} | ||
| var{defineProperty:V,getOwnPropertyNames:T,getOwnPropertyDescriptor:z}=Object,M=Object.prototype.hasOwnProperty;var W=new WeakMap,U=(x)=>{var q=W.get(x),B;if(q)return q;if(q=V({},"__esModule",{value:!0}),x&&typeof x==="object"||typeof x==="function")T(x).map((C)=>!M.call(q,C)&&V(q,C,{get:()=>x[C],enumerable:!(B=z(x,C))||B.enumerable}));return W.set(x,q),q};var O=(x,q)=>{for(var B in q)V(x,B,{get:q[B],enumerable:!0,configurable:!0,set:(C)=>q[B]=()=>C})};var w={};O(w,{writeInterfaceAsync:()=>u,writeInterface:()=>y,toSnake:()=>j,toPascal:()=>P,toCamel:()=>S,readOpenapis:()=>I,readOpenapiAsync:()=>A,normalizeOpenapiFiles:()=>v,generateDevupArtifactsAsync:()=>b,generateDevupArtifacts:()=>N,createTmpDirAsync:()=>k,createTmpDir:()=>R});module.exports=U(w);var J=require("node:fs"),X=require("node:fs/promises");function R(x="df"){if(!J.existsSync(x))J.mkdirSync(x,{recursive:!0});return x}async function k(x="df"){try{await X.mkdir(x,{recursive:!0})}catch(q){if(q.code!=="EEXIST")throw q}return x}var H=require("node:path");async function b(x,q,B){let C=await x.createTmpDirAsync(B?.tempDir),K=x.normalizeOpenapiFiles(B?.openapiFiles),E=await x.readOpenapiAsync(K),G={interface:q.generateInterface(E,B),zodSchemas:q.generateZodSchemas(E,B),zodTypes:q.generateZodTypeDeclarations(E,B),crudConfig:q.generateCrudConfigCode(E),crudTypes:q.generateCrudConfigTypes(E)};await Promise.all([x.writeInterfaceAsync(H.join(C,"api.d.ts"),G.interface),x.writeInterfaceAsync(H.join(C,"zod-schemas.js"),G.zodSchemas),x.writeInterfaceAsync(H.join(C,"zod.d.ts"),G.zodTypes),x.writeInterfaceAsync(H.join(C,"crud-configs.jsx"),G.crudConfig),x.writeInterfaceAsync(H.join(C,"ui.d.ts"),G.crudTypes)]);let Q=q.createUrlMap(E,B);return{tempDir:C,schemas:E,files:G,urlMap:Q}}function N(x,q,B){let C=x.createTmpDir(B?.tempDir),K=x.normalizeOpenapiFiles(B?.openapiFiles),E=x.readOpenapis(K),G={interface:q.generateInterface(E,B),zodSchemas:q.generateZodSchemas(E,B),zodTypes:q.generateZodTypeDeclarations(E,B),crudConfig:q.generateCrudConfigCode(E),crudTypes:q.generateCrudConfigTypes(E)};x.writeInterface(H.join(C,"api.d.ts"),G.interface),x.writeInterface(H.join(C,"zod-schemas.js"),G.zodSchemas),x.writeInterface(H.join(C,"zod.d.ts"),G.zodTypes),x.writeInterface(H.join(C,"crud-configs.jsx"),G.crudConfig),x.writeInterface(H.join(C,"ui.d.ts"),G.crudTypes);let Q=q.createUrlMap(E,B);return{tempDir:C,schemas:E,files:G,urlMap:Q}}var Y=require("node:fs"),Z=require("node:fs/promises");function v(x){if(!x)return["openapi.json"];if(Array.isArray(x))return x.length>0?x:["openapi.json"];return[x]}function _(x){return x.replace(/^\.\//,"")}function I(x){return x.reduce((q,B)=>{return q[_(B)]=JSON.parse(Y.readFileSync(B,"utf8")),q},{})}async function A(x){let q=await Promise.all(x.map(async(B)=>{return[_(B),JSON.parse(await Z.readFile(B,"utf8"))]}));return Object.fromEntries(q)}function S(x){if(/^[a-z][a-zA-Z0-9]*$/.test(x))return x;let q=x.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[^a-zA-Z0-9]+/).filter((B)=>B.length>0);if(q.length===0)return x.toLowerCase();return q[0]?.toLowerCase()+q.slice(1).map((B)=>B.charAt(0).toUpperCase()+B.slice(1).toLowerCase()).join("")}function P(x){if(/^[A-Z][a-zA-Z0-9]*$/.test(x))return x;let q=x.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[^a-zA-Z0-9]+/).filter((B)=>B.length>0);if(q.length===0)return x.charAt(0).toUpperCase()+x.slice(1).toLowerCase();return q.map((B)=>B.charAt(0).toUpperCase()+B.slice(1).toLowerCase()).join("")}function j(x){if(!x)return x;return x.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/([0-9])([A-Z])/g,"$1_$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/[^a-zA-Z0-9]/g,"_").toLowerCase().replace(/_+/g,"_").replace(/^_|_$/g,"")}var $=require("node:fs"),L=require("node:fs/promises");function y(x,q){$.writeFileSync(x,q,"utf8")}async function u(x,q){await L.writeFile(x,q,"utf8")} |
+1
-0
| export * from './create-tmp-dir'; | ||
| export * from './generate-devup'; | ||
| export * from './read-openapi'; | ||
@@ -3,0 +4,0 @@ export * from './to-camel'; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,mBAAmB,CAAA"} |
+1
-1
@@ -1,1 +0,1 @@ | ||
| import{existsSync as C,mkdirSync as E}from"node:fs";import{mkdir as G}from"node:fs/promises";function T(x="df"){if(!C(x))E(x,{recursive:!0});return x}async function U(x="df"){try{await G(x,{recursive:!0})}catch(j){if(j.code!=="EEXIST")throw j}return x}import{readFileSync as H}from"node:fs";import{readFile as J}from"node:fs/promises";function Y(x){if(!x)return["openapi.json"];if(Array.isArray(x))return x.length>0?x:["openapi.json"];return[x]}function B(x){return x.replace(/^\.\//,"")}function Z(x){return x.reduce((j,q)=>{return j[B(q)]=JSON.parse(H(q,"utf8")),j},{})}async function _(x){let j=await Promise.all(x.map(async(q)=>{return[B(q),JSON.parse(await J(q,"utf8"))]}));return Object.fromEntries(j)}function z(x){if(/^[a-z][a-zA-Z0-9]*$/.test(x))return x;let j=x.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[^a-zA-Z0-9]+/).filter((q)=>q.length>0);if(j.length===0)return x.toLowerCase();return j[0]?.toLowerCase()+j.slice(1).map((q)=>q.charAt(0).toUpperCase()+q.slice(1).toLowerCase()).join("")}function b(x){if(/^[A-Z][a-zA-Z0-9]*$/.test(x))return x;let j=x.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[^a-zA-Z0-9]+/).filter((q)=>q.length>0);if(j.length===0)return x.charAt(0).toUpperCase()+x.slice(1).toLowerCase();return j.map((q)=>q.charAt(0).toUpperCase()+q.slice(1).toLowerCase()).join("")}function k(x){if(!x)return x;return x.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/([0-9])([A-Z])/g,"$1_$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/[^a-zA-Z0-9]/g,"_").toLowerCase().replace(/_+/g,"_").replace(/^_|_$/g,"")}import{writeFileSync as K}from"node:fs";import{writeFile as L}from"node:fs/promises";function v(x,j){K(x,j,"utf8")}async function I(x,j){await L(x,j,"utf8")}export{I as writeInterfaceAsync,v as writeInterface,k as toSnake,b as toPascal,z as toCamel,Z as readOpenapis,_ as readOpenapiAsync,Y as normalizeOpenapiFiles,U as createTmpDirAsync,T as createTmpDir}; | ||
| import{existsSync as V,mkdirSync as W}from"node:fs";import{mkdir as X}from"node:fs/promises";function z(x="df"){if(!V(x))W(x,{recursive:!0});return x}async function M(x="df"){try{await X(x,{recursive:!0})}catch(q){if(q.code!=="EEXIST")throw q}return x}import{join as H}from"node:path";async function R(x,q,B){let E=await x.createTmpDirAsync(B?.tempDir),J=x.normalizeOpenapiFiles(B?.openapiFiles),C=await x.readOpenapiAsync(J),G={interface:q.generateInterface(C,B),zodSchemas:q.generateZodSchemas(C,B),zodTypes:q.generateZodTypeDeclarations(C,B),crudConfig:q.generateCrudConfigCode(C),crudTypes:q.generateCrudConfigTypes(C)};await Promise.all([x.writeInterfaceAsync(H(E,"api.d.ts"),G.interface),x.writeInterfaceAsync(H(E,"zod-schemas.js"),G.zodSchemas),x.writeInterfaceAsync(H(E,"zod.d.ts"),G.zodTypes),x.writeInterfaceAsync(H(E,"crud-configs.jsx"),G.crudConfig),x.writeInterfaceAsync(H(E,"ui.d.ts"),G.crudTypes)]);let K=q.createUrlMap(C,B);return{tempDir:E,schemas:C,files:G,urlMap:K}}function k(x,q,B){let E=x.createTmpDir(B?.tempDir),J=x.normalizeOpenapiFiles(B?.openapiFiles),C=x.readOpenapis(J),G={interface:q.generateInterface(C,B),zodSchemas:q.generateZodSchemas(C,B),zodTypes:q.generateZodTypeDeclarations(C,B),crudConfig:q.generateCrudConfigCode(C),crudTypes:q.generateCrudConfigTypes(C)};x.writeInterface(H(E,"api.d.ts"),G.interface),x.writeInterface(H(E,"zod-schemas.js"),G.zodSchemas),x.writeInterface(H(E,"zod.d.ts"),G.zodTypes),x.writeInterface(H(E,"crud-configs.jsx"),G.crudConfig),x.writeInterface(H(E,"ui.d.ts"),G.crudTypes);let K=q.createUrlMap(C,B);return{tempDir:E,schemas:C,files:G,urlMap:K}}import{readFileSync as Y}from"node:fs";import{readFile as Z}from"node:fs/promises";function I(x){if(!x)return["openapi.json"];if(Array.isArray(x))return x.length>0?x:["openapi.json"];return[x]}function Q(x){return x.replace(/^\.\//,"")}function A(x){return x.reduce((q,B)=>{return q[Q(B)]=JSON.parse(Y(B,"utf8")),q},{})}async function S(x){let q=await Promise.all(x.map(async(B)=>{return[Q(B),JSON.parse(await Z(B,"utf8"))]}));return Object.fromEntries(q)}function j(x){if(/^[a-z][a-zA-Z0-9]*$/.test(x))return x;let q=x.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[^a-zA-Z0-9]+/).filter((B)=>B.length>0);if(q.length===0)return x.toLowerCase();return q[0]?.toLowerCase()+q.slice(1).map((B)=>B.charAt(0).toUpperCase()+B.slice(1).toLowerCase()).join("")}function u(x){if(/^[A-Z][a-zA-Z0-9]*$/.test(x))return x;let q=x.replace(/([a-z])([A-Z])/g,"$1 $2").split(/[^a-zA-Z0-9]+/).filter((B)=>B.length>0);if(q.length===0)return x.charAt(0).toUpperCase()+x.slice(1).toLowerCase();return q.map((B)=>B.charAt(0).toUpperCase()+B.slice(1).toLowerCase()).join("")}function D(x){if(!x)return x;return x.replace(/([a-z])([A-Z])/g,"$1_$2").replace(/([0-9])([A-Z])/g,"$1_$2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/[^a-zA-Z0-9]/g,"_").toLowerCase().replace(/_+/g,"_").replace(/^_|_$/g,"")}import{writeFileSync as _}from"node:fs";import{writeFile as $}from"node:fs/promises";function f(x,q){_(x,q,"utf8")}async function d(x,q){await $(x,q,"utf8")}export{d as writeInterfaceAsync,f as writeInterface,D as toSnake,u as toPascal,j as toCamel,A as readOpenapis,S as readOpenapiAsync,I as normalizeOpenapiFiles,R as generateDevupArtifactsAsync,k as generateDevupArtifacts,M as createTmpDirAsync,z as createTmpDir}; |
+2
-2
| { | ||
| "name": "@devup-api/utils", | ||
| "version": "0.1.7", | ||
| "version": "0.1.8", | ||
| "license": "Apache-2.0", | ||
@@ -23,3 +23,3 @@ "type": "module", | ||
| "devDependencies": { | ||
| "@types/node": "^25.0", | ||
| "@types/node": "^25.2", | ||
| "typescript": "^5.9", | ||
@@ -26,0 +26,0 @@ "openapi-types": "^12.1" |
19450
74.71%20
11.11%159
101.27%