@sohcah/openapi-generator 0.0.1 → 0.0.3
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/cli.d.ts +0 -0
- package/dist/cli.js +2 -2
- package/dist/config.d.ts +2 -2
- package/dist/generators/index.d.ts +3 -3
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +3 -3
- package/dist/generators/index.js.map +1 -1
- package/dist/{helpers-ChEkrLHV.js → helpers-0HehGkaU.js} +20 -5
- package/dist/helpers-0HehGkaU.js.map +1 -0
- package/dist/{index-COF3JXv1.d.ts → index-IbWqUJNI.d.ts} +2 -2
- package/dist/{index-COF3JXv1.d.ts.map → index-IbWqUJNI.d.ts.map} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/{src-UQLWBWmZ.js → src-BlhnnMdZ.js} +6 -11
- package/dist/src-BlhnnMdZ.js.map +1 -0
- package/dist/{types-7ABKlnLu.d.ts → types-Ced1bVkh.d.ts} +7 -5
- package/dist/types-Ced1bVkh.d.ts.map +1 -0
- package/package.json +5 -5
- package/dist/helpers-ChEkrLHV.js.map +0 -1
- package/dist/src-UQLWBWmZ.js.map +0 -1
- package/dist/types-7ABKlnLu.d.ts.map +0 -1
package/dist/src-UQLWBWmZ.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"src-UQLWBWmZ.js","names":["options: GeneratorOptions","t","packageJson","generate","document: APIDocument<object>","context: DocumentContextData","generate","generateEffect","babelGenerate","event: WatchEvent"],"sources":["../package.json","../src/generator.ts","../src/index.ts"],"sourcesContent":["{\n \"name\": \"@sohcah/openapi-generator\",\n \"version\": \"0.0.1\",\n \"type\": \"module\",\n \"license\": \"MIT\",\n \"author\": \"Sam Hindess <mail@sohcah.dev>\",\n \"publishConfig\": {\n \"access\": \"public\"\n },\n \"files\": [\n \"dist\"\n ],\n \"main\": \"./dist/index.js\",\n \"module\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\",\n \"bin\": {\n \"openapi-generator\": \"./dist/cli.js\"\n },\n \"exports\": {\n \".\": {\n \"default\": \"./dist/index.js\",\n \"types\": \"./dist/index.d.ts\"\n },\n \"./config\": {\n \"default\": \"./dist/config.js\",\n \"types\": \"./dist/config.d.ts\"\n },\n \"./generators\": {\n \"default\": \"./dist/generators/index.js\",\n \"types\": \"./dist/generators/index.d.ts\"\n },\n \"./package.json\": \"./package.json\"\n },\n \"engines\": {\n \"node\": \">=22.16.0\"\n },\n \"scripts\": {\n \"build\": \"tsdown\",\n \"dev\": \"tsdown --watch\",\n \"test\": \"vitest --run\",\n \"cli\": \"./dist/cli.js\",\n \"sample\": \"yarn build && yarn cli generate -c ./sample/openapi.config.ts && SCHEMA_FORMAT=effect yarn cli generate -c ./sample/openapi.config.ts && SCHEMA_FORMAT=zod-mini yarn cli generate -c ./sample/openapi.config.ts\"\n },\n \"devDependencies\": {\n \"@tanstack/react-query\": \"^5.85.3\",\n \"@types/babel__generator\": \"^7.27.0\",\n \"@types/node\": \"^24.3.0\",\n \"openapi-types\": \"^12.1.3\",\n \"tsdown\": \"^0.14.1\",\n \"typescript\": \"^5.9.2\",\n \"vitest\": \"^3.2.4\"\n },\n \"dependencies\": {\n \"@babel/generator\": \"^7.28.3\",\n \"@effect/cli\": \"^0.69.0\",\n \"@effect/cluster\": \"^0.48.0\",\n \"@effect/experimental\": \"^0.54.6\",\n \"@effect/platform\": \"^0.90.3\",\n \"@effect/platform-node\": \"^0.96.0\",\n \"@effect/printer-ansi\": \"^0.45.0\",\n \"@effect/rpc\": \"^0.69.0\",\n \"@effect/sql\": \"^0.44.1\",\n \"@effect/typeclass\": \"^0.36.0\",\n \"@readme/openapi-parser\": \"^5.0.1\",\n \"effect\": \"^3.17.7\",\n \"zod\": \"^4.1.11\"\n },\n \"volta\": {\n \"extends\": \"../../package.json\"\n }\n}\n","import * as t from \"@babel/types\";\nimport { Effect } from \"effect\";\nimport type { APIDocument } from \"./types.js\";\nimport { DocumentContext, type DocumentContextData } from \"./context.js\";\nimport { NotImplementedError } from \"./errors.js\";\nimport type { OpenApiGenerator } from \"./generators/types.js\";\nimport * as generationHelpers from \"./generators/helpers.js\";\nimport packageJson from \"../package.json\" with { type: \"json\" };\n\nexport type GeneratorOptions = {\n generators: OpenApiGenerator[];\n};\n\nconst build = Effect.fn(function* (options: GeneratorOptions) {\n const ctx = yield* DocumentContext;\n\n for (const generator of options.generators) {\n if (!generator.initialize) continue;\n yield* generator.initialize();\n }\n\n for (const [pathKey, path] of Object.entries(ctx.document.paths ?? {})) {\n if (!path) continue;\n if (path.$ref) {\n return yield* new NotImplementedError({\n message: \"$ref in path\",\n });\n }\n for (const methodKey of [\"get\", \"post\", \"put\", \"delete\"] as const) {\n const method = path[methodKey];\n if (!method) continue;\n\n const operationKey = yield* generationHelpers.getKey(\n method.operationId ??\n `${methodKey}${pathKey.replace(/\\/(.?)/g, (_, g) => g.toUpperCase())}`\n );\n\n for (const generator of options.generators) {\n if (!generator.processOperation) continue;\n yield* generator.processOperation(\n operationKey,\n pathKey,\n methodKey,\n method\n );\n }\n }\n }\n\n for (const schema of Object.values(ctx.document.components?.schemas ?? {})) {\n for (const generator of options.generators) {\n if (!generator.processSchema) continue;\n yield* generator.processSchema(schema);\n }\n }\n\n const program = t.program([\n ...ctx.imports,\n ...[...ctx.schemas.values()].flat(),\n ]);\n t.addComment(program, \"leading\", \"eslint-disable\", false);\n t.addComment(program, \"leading\", \"prettier-ignore\", false);\n t.addComment(program, \"leading\", ` Version: ${packageJson.version}`, true);\n t.addComment(\n program,\n \"leading\",\n ` Generated by @sohcah/openapi-generator`,\n true\n );\n return program;\n});\n\nexport const generate = Effect.fn(function* (\n document: APIDocument<object>,\n options: GeneratorOptions\n) {\n const context: DocumentContextData = {\n document,\n imports: [],\n schemas: new Map(),\n processingSchemas: new Set(),\n processingSchemaTypes: new Set(),\n };\n\n return yield* build(options).pipe(\n Effect.provideService(DocumentContext, context)\n );\n});\n","import fs from \"node:fs/promises\";\nimport { bundle } from \"@readme/openapi-parser\";\nimport type { OpenAPIV2, OpenAPIV3, OpenAPIV3_1 } from \"openapi-types\";\nimport { generate as babelGenerate } from \"@babel/generator\";\nimport {\n generate as generateEffect,\n type GeneratorOptions,\n} from \"./generator.js\";\nimport { Effect, Stream } from \"effect\";\nimport { FileSystem, type WatchEvent } from \"@effect/platform/FileSystem\";\n\ntype APIDocument<T extends object> =\n | OpenAPIV2.Document<T>\n | OpenAPIV3_1.Document<T>\n | OpenAPIV3.Document<T>;\n\nexport type OpenapiGenerateOptions = GeneratorOptions & {\n schema: APIDocument<object> | string;\n};\n\nexport type OpenapiGenerateToFileOptions = OpenapiGenerateOptions & {\n output: string;\n watch?: boolean;\n onGenerated?: () => void;\n};\n\nexport const generate = Effect.fn(function* ({\n schema,\n ...options\n}: OpenapiGenerateOptions) {\n const result = yield* Effect.tryPromise(() => bundle(schema));\n if (!(\"components\" in result)) {\n return yield* Effect.die(\n new Error(\"Not a valid OpenAPI 3.x document\")\n );\n }\n\n const program = yield* generateEffect(result, options);\n\n return babelGenerate(program).code;\n});\n\nexport const generateToFile = Effect.fn(function* ({\n onGenerated,\n output,\n watch,\n ...options\n}: OpenapiGenerateToFileOptions) {\n const fs = yield* FileSystem;\n let lastCode = yield* generate(options);\n yield* fs.writeFileString(output, lastCode);\n onGenerated?.();\n\n if (watch) {\n if (typeof options.schema !== \"string\") {\n throw new Error(\"Schema must a file path to use watch mode\");\n }\n yield* Stream.runForEach(\n fs.watch(options.schema),\n Effect.fn(function* (event: WatchEvent) {\n if (event._tag === \"Update\") {\n const outputCode = yield* generate(options);\n if (outputCode !== lastCode) {\n yield* fs.writeFileString(output, outputCode);\n onGenerated?.();\n lastCode = outputCode;\n }\n }\n })\n );\n }\n});\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types-7ABKlnLu.d.ts","names":[],"sources":["../../src/errors.ts","../../src/types.ts","../../src/context.ts","../../src/generators/helpers.ts","../../src/generators/types.ts"],"sourcesContent":[],"mappings":";;;;;cAEa,mBAAA,SAA4B,IAAA,CAAK;;;;;KCAlC,gCACR,WAAA,CAAY,SAAS,KACrB,SAAA,CAAU,SAAS;KAIX,YAAA,GAAe,SAAA,CAAU,eAAe,WAAA,CAAY;KAEpD,eAAA,GAAkB,WAAA,CAAY,kBAAkB,SAAA,CAAU;;;UCNrD,mBAAA;YACL;WACD,CAAA,CAAE;EFJA,OAAA,EEKF,GFLE,CAAA,MAAA,EEKU,CAAA,CAAE,SFLQ,EAAQ,CAAA;qBEMpB;yBACI;;ADPzB,cCQC,oBDRsB,kBAAA,gBAAA,EAAA,iBAAA,qBAAA,CAAA;AAAA,cCUV,eAAA,SAAwB,oBAGlC,CDboB;AAAA;;;cEGV,8CAAY,MAAA,CAAA,OAAA,CAAA,CAAA,mBAAA;cA0BZ,uDAAqB,MAAA,CAAA,OAAA,CAAA,CAAA,mBAAA;AH7BrB,cGuDA,MHvDoB,EAAA,CAAA,IAAA,EAAA,MAAa,EAAA,GGuD3B,MAAA,CAAA,MHvDgC,CAAA;;;GGkEjD;AFlEU,KEoEA,YAAA,GFpEW;EAAA,KAAA,EAAA,MAAA;EAAA,KACE,EAAA,MAAA;CAAC;;;ADDb,UIKI,eAAA,CJLgB;;;;ACAjC;AAAuB,UGWN,gBAAA,CHXM;EAAA,UACE,CAAA,EAAA,GAAA,GGWJ,MAAA,CAAO,MHXH,CAAA,IAAA,EGWgB,mBHXhB,EGWqC,eHXrC,CAAA;EAAC,aAAtB,CAAA,EAAY,CAAA,MAAA,EGaJ,YHbI,EAAA,GGcT,MAAA,CAAO,MHdE,CAAA,IAAA,EGcW,mBHdX,EGcgC,eHdhC,CAAA;EAAQ,gBACD,CAAA,EAAA,CAAA,YAAA,EGaH,YHbG,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,GAAA,MAAA,GAAA,KAAA,GAAA,QAAA,EAAA,SAAA,EGkBR,eHlBQ,EAAA,GGmBhB,MAAA,CAAO,MHnBS,CAAA,IAAA,EGmBI,mBHnBJ,EGmByB,eHnBzB,CAAA;;AAAD,UGsBL,uBAAA,CHtBK;EAIV,UAAA,EGmBE,CAAA,CAAE,UHnBQ;EAAA,aAAA,EGoBP,CAAA,CAAE,eHpBK;;AAA4B,UGuBnC,qBAAA,CHvB+C;EAAY,UAAA,EGwB9D,CAAA,CAAE,UHxB4D;EAEhE,aAAA,EGuBK,CAAA,CAAE,eHvBQ;;AAAG,UG0Bb,sBAAA,SAA+B,gBH1BN,CAAA;EAAe,sBAAa,EAAA,CAAA,YAAA,EG0B9B,YH1B8B,EAAA,SAAA,EG6BvD,eH7BuD,EAAA,GG8B/D,MAAA,CAAO,MH9BwD,CG+BlE,uBH/BkE,EGgClE,mBHhCkE,EGiClE,eHjCkE,CAAA;EAAe,oBAAA,EAAA,CAAA,YAAA,EG8BjE,YH9BiE,EAAA,SAAA,EGqCtE,eHrCsE,EAAA,GGsC9E,MAAA,CAAO,MHtCuE,CGuCjF,qBHvCiF,GAAA,IAAA,EGwCjF,mBHxCiF,EGyCjF,eHzCiF,CAAA;oBG2CjE,CAAA,CAAE;;UAGL,sBAAA,SAA+B,kBFpDhD"}
|