@redocly/client-generator 0.3.7 → 0.4.0
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/README.md +32 -54
- package/eject-assets/AGENTS.md +137 -0
- package/eject-assets/generators/cli/docs.ts +224 -0
- package/eject-assets/generators/cli/engine-source.ts +21 -0
- package/eject-assets/generators/cli/index.ts +90 -0
- package/eject-assets/generators/cli/render.ts +348 -0
- package/eject-assets/generators/go/client.ts +57 -0
- package/eject-assets/generators/go/descriptor.ts +41 -0
- package/eject-assets/generators/go/index.ts +336 -0
- package/eject-assets/generators/go/models.ts +179 -0
- package/eject-assets/generators/go/naming.ts +49 -0
- package/eject-assets/generators/go/operations.ts +296 -0
- package/eject-assets/generators/go/pagination.ts +194 -0
- package/eject-assets/generators/go/types.ts +60 -0
- package/eject-assets/generators/mock/faker.ts +214 -0
- package/eject-assets/generators/mock/index.ts +35 -0
- package/eject-assets/generators/mock/render.ts +282 -0
- package/eject-assets/generators/mock/sample.ts +316 -0
- package/eject-assets/generators/mock/values.ts +63 -0
- package/eject-assets/generators/php/client.ts +63 -0
- package/eject-assets/generators/php/descriptor.ts +58 -0
- package/eject-assets/generators/php/index.ts +237 -0
- package/eject-assets/generators/php/models.ts +275 -0
- package/eject-assets/generators/php/naming.ts +51 -0
- package/eject-assets/generators/php/operations.ts +232 -0
- package/eject-assets/generators/php/pagination.ts +133 -0
- package/eject-assets/generators/php/types.ts +148 -0
- package/eject-assets/generators/python/client.ts +123 -0
- package/eject-assets/generators/python/descriptor.ts +52 -0
- package/eject-assets/generators/python/index.ts +251 -0
- package/eject-assets/generators/python/models.ts +242 -0
- package/eject-assets/generators/python/naming.ts +46 -0
- package/eject-assets/generators/python/operations.ts +147 -0
- package/eject-assets/generators/python/pagination.ts +128 -0
- package/eject-assets/generators/python/types.ts +54 -0
- package/eject-assets/generators/swr/index.ts +37 -0
- package/eject-assets/generators/swr/render.ts +78 -0
- package/eject-assets/generators/tanstack-query/index.ts +48 -0
- package/eject-assets/generators/tanstack-query/render.ts +346 -0
- package/eject-assets/generators/transformers/index.ts +46 -0
- package/eject-assets/generators/transformers/render.ts +506 -0
- package/eject-assets/generators/typescript/banner.ts +35 -0
- package/eject-assets/generators/typescript/client.ts +254 -0
- package/eject-assets/generators/typescript/descriptor.ts +137 -0
- package/eject-assets/generators/typescript/index.ts +101 -0
- package/eject-assets/generators/typescript/inline-runtime.ts +135 -0
- package/eject-assets/generators/typescript/operation-signature.ts +62 -0
- package/eject-assets/generators/typescript/operation-types.ts +17 -0
- package/eject-assets/generators/typescript/operations.ts +524 -0
- package/eject-assets/generators/typescript/response-headers.ts +74 -0
- package/eject-assets/generators/typescript/type-guards.ts +159 -0
- package/eject-assets/generators/typescript/types.ts +172 -0
- package/eject-assets/generators/zod/index.ts +32 -0
- package/eject-assets/generators/zod/schemas.ts +456 -0
- package/eject-assets/skills/cli-generator/SKILL.md +121 -0
- package/eject-assets/skills/client-generators/SKILL.md +142 -0
- package/eject-assets/skills/go-generator/SKILL.md +96 -0
- package/eject-assets/skills/mock-generator/SKILL.md +50 -0
- package/eject-assets/skills/php-generator/SKILL.md +112 -0
- package/eject-assets/skills/python-generator/SKILL.md +110 -0
- package/eject-assets/skills/swr-generator/SKILL.md +50 -0
- package/eject-assets/skills/tanstack-query-generator/SKILL.md +55 -0
- package/eject-assets/skills/transformers-generator/SKILL.md +47 -0
- package/eject-assets/skills/typescript-generator/SKILL.md +95 -0
- package/eject-assets/skills/zod-generator/SKILL.md +54 -0
- package/lib/authoring/index.d.ts +11 -0
- package/lib/authoring/index.d.ts.map +1 -0
- package/lib/authoring/index.js +42 -0
- package/lib/authoring/index.js.map +1 -0
- package/lib/authoring/naming.d.ts +34 -0
- package/lib/authoring/naming.d.ts.map +1 -0
- package/lib/authoring/naming.js +104 -0
- package/lib/authoring/naming.js.map +1 -0
- package/lib/authoring/operation.d.ts +47 -0
- package/lib/authoring/operation.d.ts.map +1 -0
- package/lib/authoring/operation.js +86 -0
- package/lib/authoring/operation.js.map +1 -0
- package/lib/authoring/options.d.ts +9 -0
- package/lib/authoring/options.d.ts.map +1 -0
- package/lib/authoring/options.js +5 -0
- package/lib/authoring/options.js.map +1 -0
- package/lib/authoring/pagination.d.ts +19 -0
- package/lib/authoring/pagination.d.ts.map +1 -0
- package/lib/authoring/pagination.js +45 -0
- package/lib/authoring/pagination.js.map +1 -0
- package/lib/authoring/printer.d.ts +16 -0
- package/lib/authoring/printer.d.ts.map +1 -0
- package/lib/authoring/printer.js +36 -0
- package/lib/authoring/printer.js.map +1 -0
- package/lib/authoring/reference-page.d.ts +31 -0
- package/lib/authoring/reference-page.d.ts.map +1 -0
- package/lib/authoring/reference-page.js +160 -0
- package/lib/authoring/reference-page.js.map +1 -0
- package/lib/authoring/schema.d.ts +51 -0
- package/lib/authoring/schema.d.ts.map +1 -0
- package/lib/authoring/schema.js +190 -0
- package/lib/authoring/schema.js.map +1 -0
- package/lib/cli-contract.d.ts +126 -0
- package/lib/cli-contract.d.ts.map +1 -0
- package/lib/cli-contract.js +25 -0
- package/lib/cli-contract.js.map +1 -0
- package/lib/{emitters/wrapper-support.d.ts → contracts/typescript.d.ts} +13 -24
- package/lib/contracts/typescript.d.ts.map +1 -0
- package/lib/contracts/typescript.js +87 -0
- package/lib/contracts/typescript.js.map +1 -0
- package/lib/generate.d.ts +10 -10
- package/lib/generate.d.ts.map +1 -1
- package/lib/generate.js +25 -106
- package/lib/generate.js.map +1 -1
- package/lib/generators/cli/docs.d.ts +19 -0
- package/lib/generators/cli/docs.d.ts.map +1 -0
- package/lib/generators/cli/docs.js +187 -0
- package/lib/generators/cli/docs.js.map +1 -0
- package/lib/generators/cli/engine-source.d.ts +5 -0
- package/lib/generators/cli/engine-source.d.ts.map +1 -0
- package/lib/generators/cli/engine-source.js +12 -0
- package/lib/generators/cli/engine-source.js.map +1 -0
- package/lib/generators/cli/index.d.ts +18 -0
- package/lib/generators/cli/index.d.ts.map +1 -0
- package/lib/generators/cli/index.js +67 -0
- package/lib/generators/cli/index.js.map +1 -0
- package/lib/generators/cli/render.d.ts +39 -0
- package/lib/generators/cli/render.d.ts.map +1 -0
- package/lib/generators/cli/render.js +281 -0
- package/lib/generators/cli/render.js.map +1 -0
- package/lib/generators/cli/runtime/cli.d.ts +42 -0
- package/lib/generators/cli/runtime/cli.d.ts.map +1 -0
- package/lib/generators/cli/runtime/cli.js +582 -0
- package/lib/generators/cli/runtime/cli.js.map +1 -0
- package/lib/generators/compatibility.d.ts +10 -0
- package/lib/generators/compatibility.d.ts.map +1 -0
- package/lib/generators/compatibility.js +45 -0
- package/lib/generators/compatibility.js.map +1 -0
- package/lib/generators/go/client.d.ts +5 -0
- package/lib/generators/go/client.d.ts.map +1 -0
- package/lib/generators/go/client.js +34 -0
- package/lib/generators/go/client.js.map +1 -0
- package/lib/generators/go/descriptor.d.ts +6 -0
- package/lib/generators/go/descriptor.d.ts.map +1 -0
- package/lib/generators/go/descriptor.js +26 -0
- package/lib/generators/go/descriptor.js.map +1 -0
- package/lib/generators/go/index.d.ts +14 -0
- package/lib/generators/go/index.d.ts.map +1 -0
- package/lib/generators/go/index.js +240 -0
- package/lib/generators/go/index.js.map +1 -0
- package/lib/generators/go/models.d.ts +4 -0
- package/lib/generators/go/models.d.ts.map +1 -0
- package/lib/generators/go/models.js +125 -0
- package/lib/generators/go/models.js.map +1 -0
- package/lib/generators/go/naming.d.ts +15 -0
- package/lib/generators/go/naming.d.ts.map +1 -0
- package/lib/generators/go/naming.js +36 -0
- package/lib/generators/go/naming.js.map +1 -0
- package/lib/generators/go/operations.d.ts +16 -0
- package/lib/generators/go/operations.d.ts.map +1 -0
- package/lib/generators/go/operations.js +200 -0
- package/lib/generators/go/operations.js.map +1 -0
- package/lib/generators/go/pagination.d.ts +5 -0
- package/lib/generators/go/pagination.d.ts.map +1 -0
- package/lib/generators/go/pagination.js +93 -0
- package/lib/generators/go/pagination.js.map +1 -0
- package/lib/generators/go/types.d.ts +4 -0
- package/lib/generators/go/types.d.ts.map +1 -0
- package/lib/generators/go/types.js +48 -0
- package/lib/generators/go/types.js.map +1 -0
- package/lib/generators/index.d.ts +2 -3
- package/lib/generators/index.d.ts.map +1 -1
- package/lib/generators/index.js +31 -53
- package/lib/generators/index.js.map +1 -1
- package/lib/generators/meta.d.ts +13 -0
- package/lib/generators/meta.d.ts.map +1 -0
- package/lib/generators/meta.js +157 -0
- package/lib/generators/meta.js.map +1 -0
- package/lib/{emitters → generators/mock}/faker.d.ts +4 -5
- package/lib/generators/mock/faker.d.ts.map +1 -0
- package/lib/generators/mock/faker.js +180 -0
- package/lib/generators/mock/faker.js.map +1 -0
- package/lib/generators/{mock.d.ts → mock/index.d.ts} +2 -2
- package/lib/generators/mock/index.d.ts.map +1 -0
- package/lib/generators/{mock.js → mock/index.js} +8 -8
- package/lib/generators/mock/index.js.map +1 -0
- package/lib/{emitters/mock.d.ts → generators/mock/render.d.ts} +2 -3
- package/lib/generators/mock/render.d.ts.map +1 -0
- package/lib/generators/mock/render.js +228 -0
- package/lib/generators/mock/render.js.map +1 -0
- package/lib/{emitters → generators/mock}/sample.d.ts +1 -2
- package/lib/generators/mock/sample.d.ts.map +1 -0
- package/lib/generators/mock/sample.js.map +1 -0
- package/lib/generators/mock/values.d.ts +33 -0
- package/lib/generators/mock/values.d.ts.map +1 -0
- package/lib/generators/mock/values.js +46 -0
- package/lib/generators/mock/values.js.map +1 -0
- package/lib/generators/options.d.ts +7 -0
- package/lib/generators/options.d.ts.map +1 -0
- package/lib/generators/options.js +74 -0
- package/lib/generators/options.js.map +1 -0
- package/lib/generators/php/client.d.ts +5 -0
- package/lib/generators/php/client.d.ts.map +1 -0
- package/lib/generators/php/client.js +38 -0
- package/lib/generators/php/client.js.map +1 -0
- package/lib/generators/php/descriptor.d.ts +7 -0
- package/lib/generators/php/descriptor.d.ts.map +1 -0
- package/lib/generators/php/descriptor.js +42 -0
- package/lib/generators/php/descriptor.js.map +1 -0
- package/lib/generators/php/index.d.ts +14 -0
- package/lib/generators/php/index.d.ts.map +1 -0
- package/lib/generators/php/index.js +166 -0
- package/lib/generators/php/index.js.map +1 -0
- package/lib/generators/php/models.d.ts +8 -0
- package/lib/generators/php/models.d.ts.map +1 -0
- package/lib/generators/php/models.js +200 -0
- package/lib/generators/php/models.js.map +1 -0
- package/lib/generators/php/naming.d.ts +16 -0
- package/lib/generators/php/naming.d.ts.map +1 -0
- package/lib/generators/php/naming.js +31 -0
- package/lib/generators/php/naming.js.map +1 -0
- package/lib/generators/php/operations.d.ts +21 -0
- package/lib/generators/php/operations.d.ts.map +1 -0
- package/lib/generators/php/operations.js +156 -0
- package/lib/generators/php/operations.js.map +1 -0
- package/lib/generators/php/pagination.d.ts +5 -0
- package/lib/generators/php/pagination.d.ts.map +1 -0
- package/lib/generators/php/pagination.js +68 -0
- package/lib/generators/php/pagination.js.map +1 -0
- package/lib/generators/php/types.d.ts +27 -0
- package/lib/generators/php/types.d.ts.map +1 -0
- package/lib/generators/php/types.js +128 -0
- package/lib/generators/php/types.js.map +1 -0
- package/lib/generators/python/client.d.ts +6 -0
- package/lib/generators/python/client.d.ts.map +1 -0
- package/lib/generators/python/client.js +80 -0
- package/lib/generators/python/client.js.map +1 -0
- package/lib/generators/python/descriptor.d.ts +9 -0
- package/lib/generators/python/descriptor.d.ts.map +1 -0
- package/lib/generators/python/descriptor.js +38 -0
- package/lib/generators/python/descriptor.js.map +1 -0
- package/lib/generators/python/index.d.ts +15 -0
- package/lib/generators/python/index.d.ts.map +1 -0
- package/lib/generators/python/index.js +197 -0
- package/lib/generators/python/index.js.map +1 -0
- package/lib/generators/python/models.d.ts +31 -0
- package/lib/generators/python/models.d.ts.map +1 -0
- package/lib/generators/python/models.js +203 -0
- package/lib/generators/python/models.js.map +1 -0
- package/lib/generators/python/naming.d.ts +22 -0
- package/lib/generators/python/naming.d.ts.map +1 -0
- package/lib/generators/python/naming.js +28 -0
- package/lib/generators/python/naming.js.map +1 -0
- package/lib/generators/python/operations.d.ts +4 -0
- package/lib/generators/python/operations.d.ts.map +1 -0
- package/lib/generators/python/operations.js +108 -0
- package/lib/generators/python/operations.js.map +1 -0
- package/lib/generators/python/pagination.d.ts +5 -0
- package/lib/generators/python/pagination.d.ts.map +1 -0
- package/lib/generators/python/pagination.js +95 -0
- package/lib/generators/python/pagination.js.map +1 -0
- package/lib/generators/python/types.d.ts +4 -0
- package/lib/generators/python/types.d.ts.map +1 -0
- package/lib/generators/python/types.js +45 -0
- package/lib/generators/python/types.js.map +1 -0
- package/lib/generators/resolve.d.ts.map +1 -1
- package/lib/generators/resolve.js +92 -13
- package/lib/generators/resolve.js.map +1 -1
- package/lib/generators/{swr.d.ts → swr/index.d.ts} +3 -3
- package/lib/generators/swr/index.d.ts.map +1 -0
- package/lib/generators/{swr.js → swr/index.js} +7 -10
- package/lib/generators/swr/index.js.map +1 -0
- package/lib/{emitters/swr.d.ts → generators/swr/render.d.ts} +2 -4
- package/lib/generators/swr/render.d.ts.map +1 -0
- package/lib/generators/swr/render.js +57 -0
- package/lib/generators/swr/render.js.map +1 -0
- package/lib/generators/{tanstack-query.d.ts → tanstack-query/index.d.ts} +3 -3
- package/lib/generators/tanstack-query/index.d.ts.map +1 -0
- package/lib/generators/{tanstack-query.js → tanstack-query/index.js} +11 -10
- package/lib/generators/tanstack-query/index.js.map +1 -0
- package/lib/{emitters/tanstack-query.d.ts → generators/tanstack-query/render.d.ts} +6 -5
- package/lib/generators/tanstack-query/render.d.ts.map +1 -0
- package/lib/{emitters/tanstack-query.js → generators/tanstack-query/render.js} +33 -21
- package/lib/generators/tanstack-query/render.js.map +1 -0
- package/lib/generators/{transformers.d.ts → transformers/index.d.ts} +2 -2
- package/lib/generators/transformers/index.d.ts.map +1 -0
- package/lib/generators/{transformers.js → transformers/index.js} +11 -8
- package/lib/generators/transformers/index.js.map +1 -0
- package/lib/{emitters/transformers.d.ts → generators/transformers/render.d.ts} +2 -2
- package/lib/generators/transformers/render.d.ts.map +1 -0
- package/lib/{emitters/transformers.js → generators/transformers/render.js} +125 -165
- package/lib/generators/transformers/render.js.map +1 -0
- package/lib/generators/types.d.ts +190 -12
- package/lib/generators/types.d.ts.map +1 -1
- package/lib/generators/typescript/banner.d.ts +12 -0
- package/lib/generators/typescript/banner.d.ts.map +1 -0
- package/lib/{emitters/emit-options.js → generators/typescript/banner.js} +2 -3
- package/lib/generators/typescript/banner.js.map +1 -0
- package/lib/generators/typescript/client.d.ts +25 -0
- package/lib/generators/typescript/client.d.ts.map +1 -0
- package/lib/generators/typescript/client.js +207 -0
- package/lib/generators/typescript/client.js.map +1 -0
- package/lib/generators/typescript/descriptor.d.ts +11 -0
- package/lib/generators/typescript/descriptor.d.ts.map +1 -0
- package/lib/generators/typescript/descriptor.js +97 -0
- package/lib/generators/typescript/descriptor.js.map +1 -0
- package/lib/generators/typescript/index.d.ts +20 -0
- package/lib/generators/typescript/index.d.ts.map +1 -0
- package/lib/generators/typescript/index.js +80 -0
- package/lib/generators/typescript/index.js.map +1 -0
- package/lib/generators/typescript/inline-runtime.d.ts +21 -0
- package/lib/generators/typescript/inline-runtime.d.ts.map +1 -0
- package/lib/generators/typescript/inline-runtime.js +114 -0
- package/lib/generators/typescript/inline-runtime.js.map +1 -0
- package/lib/generators/typescript/operation-signature.d.ts +23 -0
- package/lib/generators/typescript/operation-signature.d.ts.map +1 -0
- package/lib/generators/typescript/operation-signature.js +41 -0
- package/lib/generators/typescript/operation-signature.js.map +1 -0
- package/lib/generators/typescript/operation-types.d.ts +9 -0
- package/lib/generators/typescript/operation-types.d.ts.map +1 -0
- package/lib/generators/typescript/operation-types.js +11 -0
- package/lib/generators/typescript/operation-types.js.map +1 -0
- package/lib/generators/typescript/operations.d.ts +60 -0
- package/lib/generators/typescript/operations.d.ts.map +1 -0
- package/lib/generators/typescript/operations.js +386 -0
- package/lib/generators/typescript/operations.js.map +1 -0
- package/lib/generators/typescript/response-headers.d.ts +12 -0
- package/lib/generators/typescript/response-headers.d.ts.map +1 -0
- package/lib/generators/typescript/response-headers.js +40 -0
- package/lib/generators/typescript/response-headers.js.map +1 -0
- package/lib/generators/typescript/runtime/auth.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/auth.js.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/create-client.d.ts +7 -2
- package/lib/generators/typescript/runtime/create-client.d.ts.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/create-client.js +84 -30
- package/lib/generators/typescript/runtime/create-client.js.map +1 -0
- package/lib/generators/typescript/runtime/errors.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/errors.js.map +1 -0
- package/lib/generators/typescript/runtime/index.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/index.js.map +1 -0
- package/lib/generators/typescript/runtime/multipart.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/multipart.js.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/paginate.d.ts +2 -2
- package/lib/generators/typescript/runtime/paginate.d.ts.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/paginate.js +12 -12
- package/lib/generators/typescript/runtime/paginate.js.map +1 -0
- package/lib/generators/typescript/runtime/parse.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/parse.js.map +1 -0
- package/lib/generators/typescript/runtime/retry.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/retry.js.map +1 -0
- package/lib/generators/typescript/runtime/send.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/send.js.map +1 -0
- package/lib/generators/typescript/runtime/setup.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/setup.js.map +1 -0
- package/lib/generators/typescript/runtime/sse.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/sse.js.map +1 -0
- package/lib/{runtime → generators/typescript/runtime}/types.d.ts +17 -95
- package/lib/generators/typescript/runtime/types.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/types.js.map +1 -0
- package/lib/generators/typescript/runtime/url.d.ts.map +1 -0
- package/lib/generators/typescript/runtime/url.js.map +1 -0
- package/lib/generators/typescript/type-guards.d.ts +4 -0
- package/lib/generators/typescript/type-guards.d.ts.map +1 -0
- package/lib/{emitters → generators/typescript}/type-guards.js +18 -52
- package/lib/generators/typescript/type-guards.js.map +1 -0
- package/lib/generators/typescript/types.d.ts +8 -0
- package/lib/generators/typescript/types.d.ts.map +1 -0
- package/lib/generators/typescript/types.js +132 -0
- package/lib/generators/typescript/types.js.map +1 -0
- package/lib/generators/{zod.d.ts → zod/index.d.ts} +2 -2
- package/lib/generators/zod/index.d.ts.map +1 -0
- package/lib/generators/{zod.js → zod/index.js} +5 -7
- package/lib/generators/zod/index.js.map +1 -0
- package/lib/{emitters/zod.d.ts → generators/zod/schemas.d.ts} +4 -5
- package/lib/generators/zod/schemas.d.ts.map +1 -0
- package/lib/{emitters/zod.js → generators/zod/schemas.js} +118 -154
- package/lib/generators/zod/schemas.js.map +1 -0
- package/lib/index.d.ts +8 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +18 -11
- package/lib/index.js.map +1 -1
- package/lib/intermediate-representation/build.d.ts +8 -1
- package/lib/intermediate-representation/build.d.ts.map +1 -1
- package/lib/intermediate-representation/build.js +59 -4
- package/lib/intermediate-representation/build.js.map +1 -1
- package/lib/intermediate-representation/model.d.ts +26 -1
- package/lib/intermediate-representation/model.d.ts.map +1 -1
- package/lib/intermediate-representation/model.js.map +1 -1
- package/lib/intermediate-representation/sanitize-identifiers.d.ts +1 -10
- package/lib/intermediate-representation/sanitize-identifiers.d.ts.map +1 -1
- package/lib/intermediate-representation/sanitize-identifiers.js +37 -38
- package/lib/intermediate-representation/sanitize-identifiers.js.map +1 -1
- package/lib/{emitters/pagination.d.ts → pagination.d.ts} +39 -15
- package/lib/pagination.d.ts.map +1 -0
- package/lib/{emitters/pagination.js → pagination.js} +13 -52
- package/lib/pagination.js.map +1 -0
- package/lib/pipeline.d.ts +17 -0
- package/lib/pipeline.d.ts.map +1 -0
- package/lib/pipeline.js +244 -0
- package/lib/pipeline.js.map +1 -0
- package/lib/plugin.d.ts +4 -4
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +12 -9
- package/lib/plugin.js.map +1 -1
- package/lib/printers/go.d.ts +33 -0
- package/lib/printers/go.d.ts.map +1 -0
- package/lib/printers/go.js +209 -0
- package/lib/printers/go.js.map +1 -0
- package/lib/printers/index.d.ts +5 -0
- package/lib/printers/index.d.ts.map +1 -0
- package/lib/printers/index.js +9 -0
- package/lib/printers/index.js.map +1 -0
- package/lib/printers/php.d.ts +21 -0
- package/lib/printers/php.d.ts.map +1 -0
- package/lib/printers/php.js +68 -0
- package/lib/printers/php.js.map +1 -0
- package/lib/printers/python.d.ts +31 -0
- package/lib/printers/python.d.ts.map +1 -0
- package/lib/printers/python.js +101 -0
- package/lib/printers/python.js.map +1 -0
- package/lib/printers/typescript.d.ts +82 -0
- package/lib/printers/typescript.d.ts.map +1 -0
- package/lib/printers/typescript.js +268 -0
- package/lib/printers/typescript.js.map +1 -0
- package/lib/reserved-names.d.ts +8 -0
- package/lib/reserved-names.d.ts.map +1 -0
- package/lib/{emitters/reserved-names.js → reserved-names.js} +16 -27
- package/lib/reserved-names.js.map +1 -0
- package/lib/runtime-contract.d.ts +62 -2
- package/lib/runtime-contract.d.ts.map +1 -1
- package/lib/runtime-contract.js +3 -3
- package/lib/runtime-contract.js.map +1 -1
- package/lib/runtime-sources/go.d.ts +2 -0
- package/lib/runtime-sources/go.d.ts.map +1 -0
- package/lib/runtime-sources/go.js +3 -0
- package/lib/runtime-sources/go.js.map +1 -0
- package/lib/runtime-sources/php.d.ts +2 -0
- package/lib/runtime-sources/php.d.ts.map +1 -0
- package/lib/runtime-sources/php.js +3 -0
- package/lib/runtime-sources/php.js.map +1 -0
- package/lib/runtime-sources/python.d.ts +12 -0
- package/lib/runtime-sources/python.d.ts.map +1 -0
- package/lib/runtime-sources/python.js +12 -0
- package/lib/runtime-sources/python.js.map +1 -0
- package/lib/runtime-sources/typescript.d.ts +36 -0
- package/lib/runtime-sources/typescript.d.ts.map +1 -0
- package/lib/runtime-sources/typescript.js +152 -0
- package/lib/runtime-sources/typescript.js.map +1 -0
- package/lib/runtime-sources.d.ts +5 -0
- package/lib/runtime-sources.d.ts.map +1 -0
- package/lib/runtime-sources.js +10 -0
- package/lib/runtime-sources.js.map +1 -0
- package/lib/setup-bake.d.ts.map +1 -0
- package/lib/{emitters/setup-bake.js → setup-bake.js} +11 -2
- package/lib/setup-bake.js.map +1 -0
- package/lib/types.d.ts +38 -8
- package/lib/types.d.ts.map +1 -1
- package/package.json +40 -4
- package/lib/emitters/auth.d.ts +0 -14
- package/lib/emitters/auth.d.ts.map +0 -1
- package/lib/emitters/auth.js +0 -30
- package/lib/emitters/auth.js.map +0 -1
- package/lib/emitters/client-assembly.d.ts +0 -15
- package/lib/emitters/client-assembly.d.ts.map +0 -1
- package/lib/emitters/client-assembly.js +0 -358
- package/lib/emitters/client-assembly.js.map +0 -1
- package/lib/emitters/descriptor.d.ts +0 -22
- package/lib/emitters/descriptor.d.ts.map +0 -1
- package/lib/emitters/descriptor.js +0 -199
- package/lib/emitters/descriptor.js.map +0 -1
- package/lib/emitters/emit-options.d.ts +0 -67
- package/lib/emitters/emit-options.d.ts.map +0 -1
- package/lib/emitters/emit-options.js.map +0 -1
- package/lib/emitters/faker.d.ts.map +0 -1
- package/lib/emitters/faker.js +0 -221
- package/lib/emitters/faker.js.map +0 -1
- package/lib/emitters/identifier.d.ts +0 -34
- package/lib/emitters/identifier.d.ts.map +0 -1
- package/lib/emitters/identifier.js +0 -104
- package/lib/emitters/identifier.js.map +0 -1
- package/lib/emitters/inline-runtime.d.ts +0 -11
- package/lib/emitters/inline-runtime.d.ts.map +0 -1
- package/lib/emitters/inline-runtime.js +0 -99
- package/lib/emitters/inline-runtime.js.map +0 -1
- package/lib/emitters/jsdoc.d.ts +0 -9
- package/lib/emitters/jsdoc.d.ts.map +0 -1
- package/lib/emitters/jsdoc.js +0 -83
- package/lib/emitters/jsdoc.js.map +0 -1
- package/lib/emitters/mock.d.ts.map +0 -1
- package/lib/emitters/mock.js +0 -265
- package/lib/emitters/mock.js.map +0 -1
- package/lib/emitters/operation-aliases.d.ts +0 -27
- package/lib/emitters/operation-aliases.d.ts.map +0 -1
- package/lib/emitters/operation-aliases.js +0 -150
- package/lib/emitters/operation-aliases.js.map +0 -1
- package/lib/emitters/operation-signature.d.ts +0 -24
- package/lib/emitters/operation-signature.d.ts.map +0 -1
- package/lib/emitters/operation-signature.js +0 -42
- package/lib/emitters/operation-signature.js.map +0 -1
- package/lib/emitters/operation-types.d.ts +0 -32
- package/lib/emitters/operation-types.d.ts.map +0 -1
- package/lib/emitters/operation-types.js +0 -117
- package/lib/emitters/operation-types.js.map +0 -1
- package/lib/emitters/operations.d.ts +0 -41
- package/lib/emitters/operations.d.ts.map +0 -1
- package/lib/emitters/operations.js +0 -35
- package/lib/emitters/operations.js.map +0 -1
- package/lib/emitters/pagination.d.ts.map +0 -1
- package/lib/emitters/pagination.js.map +0 -1
- package/lib/emitters/reserved-names.d.ts +0 -5
- package/lib/emitters/reserved-names.d.ts.map +0 -1
- package/lib/emitters/reserved-names.js.map +0 -1
- package/lib/emitters/response-headers.d.ts +0 -14
- package/lib/emitters/response-headers.d.ts.map +0 -1
- package/lib/emitters/response-headers.js +0 -91
- package/lib/emitters/response-headers.js.map +0 -1
- package/lib/emitters/runtime-sources.d.ts +0 -16
- package/lib/emitters/runtime-sources.d.ts.map +0 -1
- package/lib/emitters/runtime-sources.js +0 -16
- package/lib/emitters/runtime-sources.js.map +0 -1
- package/lib/emitters/sample.d.ts.map +0 -1
- package/lib/emitters/sample.js.map +0 -1
- package/lib/emitters/setup-bake.d.ts.map +0 -1
- package/lib/emitters/setup-bake.js.map +0 -1
- package/lib/emitters/sse.d.ts +0 -10
- package/lib/emitters/sse.d.ts.map +0 -1
- package/lib/emitters/sse.js +0 -46
- package/lib/emitters/sse.js.map +0 -1
- package/lib/emitters/support.d.ts +0 -18
- package/lib/emitters/support.d.ts.map +0 -1
- package/lib/emitters/support.js +0 -37
- package/lib/emitters/support.js.map +0 -1
- package/lib/emitters/swr.d.ts.map +0 -1
- package/lib/emitters/swr.js +0 -88
- package/lib/emitters/swr.js.map +0 -1
- package/lib/emitters/tanstack-query.d.ts.map +0 -1
- package/lib/emitters/tanstack-query.js.map +0 -1
- package/lib/emitters/transformers.d.ts.map +0 -1
- package/lib/emitters/transformers.js.map +0 -1
- package/lib/emitters/ts.d.ts +0 -42
- package/lib/emitters/ts.d.ts.map +0 -1
- package/lib/emitters/ts.js +0 -116
- package/lib/emitters/ts.js.map +0 -1
- package/lib/emitters/type-guards.d.ts +0 -21
- package/lib/emitters/type-guards.d.ts.map +0 -1
- package/lib/emitters/type-guards.js.map +0 -1
- package/lib/emitters/types.d.ts +0 -15
- package/lib/emitters/types.d.ts.map +0 -1
- package/lib/emitters/types.js +0 -125
- package/lib/emitters/types.js.map +0 -1
- package/lib/emitters/wrapper-support.d.ts.map +0 -1
- package/lib/emitters/wrapper-support.js +0 -127
- package/lib/emitters/wrapper-support.js.map +0 -1
- package/lib/emitters/zod.d.ts.map +0 -1
- package/lib/emitters/zod.js.map +0 -1
- package/lib/generators/anchor.d.ts +0 -9
- package/lib/generators/anchor.d.ts.map +0 -1
- package/lib/generators/anchor.js +0 -10
- package/lib/generators/anchor.js.map +0 -1
- package/lib/generators/mock.d.ts.map +0 -1
- package/lib/generators/mock.js.map +0 -1
- package/lib/generators/sdk.d.ts +0 -12
- package/lib/generators/sdk.d.ts.map +0 -1
- package/lib/generators/sdk.js +0 -26
- package/lib/generators/sdk.js.map +0 -1
- package/lib/generators/swr.d.ts.map +0 -1
- package/lib/generators/swr.js.map +0 -1
- package/lib/generators/tanstack-query.d.ts.map +0 -1
- package/lib/generators/tanstack-query.js.map +0 -1
- package/lib/generators/transformers.d.ts.map +0 -1
- package/lib/generators/transformers.js.map +0 -1
- package/lib/generators/zod.d.ts.map +0 -1
- package/lib/generators/zod.js.map +0 -1
- package/lib/runtime/auth.d.ts.map +0 -1
- package/lib/runtime/auth.js.map +0 -1
- package/lib/runtime/create-client.d.ts.map +0 -1
- package/lib/runtime/create-client.js.map +0 -1
- package/lib/runtime/errors.d.ts.map +0 -1
- package/lib/runtime/errors.js.map +0 -1
- package/lib/runtime/index.d.ts.map +0 -1
- package/lib/runtime/index.js.map +0 -1
- package/lib/runtime/multipart.d.ts.map +0 -1
- package/lib/runtime/multipart.js.map +0 -1
- package/lib/runtime/paginate.d.ts.map +0 -1
- package/lib/runtime/paginate.js.map +0 -1
- package/lib/runtime/parse.d.ts.map +0 -1
- package/lib/runtime/parse.js.map +0 -1
- package/lib/runtime/retry.d.ts.map +0 -1
- package/lib/runtime/retry.js.map +0 -1
- package/lib/runtime/send.d.ts.map +0 -1
- package/lib/runtime/send.js.map +0 -1
- package/lib/runtime/setup.d.ts.map +0 -1
- package/lib/runtime/setup.js.map +0 -1
- package/lib/runtime/sse.d.ts.map +0 -1
- package/lib/runtime/sse.js.map +0 -1
- package/lib/runtime/types.d.ts.map +0 -1
- package/lib/runtime/types.js.map +0 -1
- package/lib/runtime/url.d.ts.map +0 -1
- package/lib/runtime/url.js.map +0 -1
- /package/lib/{emitters → generators/mock}/sample.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/auth.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/auth.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/errors.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/errors.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/index.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/index.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/multipart.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/multipart.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/parse.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/parse.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/retry.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/retry.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/send.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/send.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/setup.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/setup.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/sse.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/sse.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/types.js +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/url.d.ts +0 -0
- /package/lib/{runtime → generators/typescript/runtime}/url.js +0 -0
- /package/lib/{emitters/setup-bake.d.ts → setup-bake.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination.js","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EmitOptions, GeneratedFile, GeneratorDescriptor, OutputMode } from './generators/types.js';
|
|
2
|
+
import { type ApiModel } from './intermediate-representation/model.js';
|
|
3
|
+
import { type ModelPagination } from './pagination.js';
|
|
4
|
+
import type { GenerateClientOptions, GenerateClientResult } from './types.js';
|
|
5
|
+
export declare function runGenerators(model: ApiModel, options: {
|
|
6
|
+
outputPath: string;
|
|
7
|
+
outputMode: OutputMode;
|
|
8
|
+
emit: EmitOptions;
|
|
9
|
+
/** Pagination resolved once for the whole run (see `GeneratorInput.pagination`). */
|
|
10
|
+
pagination?: ModelPagination;
|
|
11
|
+
generators: string[];
|
|
12
|
+
registry: Map<string, GeneratorDescriptor>;
|
|
13
|
+
/** Per-generator options, already validated (see `resolveGeneratorOptions`). */
|
|
14
|
+
generatorOptions?: Map<string, Record<string, unknown>>;
|
|
15
|
+
}): GeneratedFile[];
|
|
16
|
+
export declare function generateClient(options: GenerateClientOptions): Promise<GenerateClientResult>;
|
|
17
|
+
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAEV,WAAW,EACX,aAAa,EACb,mBAAmB,EACnB,UAAU,EACX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAiB,KAAK,QAAQ,EAAE,MAAM,wCAAwC,CAAC;AAGtF,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAc9E,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE;IACP,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,oFAAoF;IACpF,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAC3C,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACzD,GACA,aAAa,EAAE,CAuEjB;AAoED,wBAAsB,cAAc,CAClC,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,oBAAoB,CAAC,CA0G/B"}
|
package/lib/pipeline.js
ADDED
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
// The generation pipeline: loadSpec → IR → resolve generators → run → write.
|
|
2
|
+
// This module must stay free of static `typescript` imports (pinned by
|
|
3
|
+
// pipeline-ts-free.test.ts): built-in generators load lazily through
|
|
4
|
+
// generators/meta.js, and the TS-specific setup baking loads on demand — so a
|
|
5
|
+
// run selecting only non-TypeScript generators never loads the `typescript`
|
|
6
|
+
// package. The `/generate` entry re-exports `generateClient` from here and
|
|
7
|
+
// layers the sync TS toolkit on top.
|
|
8
|
+
import { logger, stringifyYaml } from '@redocly/openapi-core';
|
|
9
|
+
import { mkdir, readFile, writeFile } from 'node:fs/promises';
|
|
10
|
+
import { dirname, parse, resolve, sep } from 'node:path';
|
|
11
|
+
import { NotSupportedError } from './errors.js';
|
|
12
|
+
import { validateSelection } from './generators/meta.js';
|
|
13
|
+
import { resolveGeneratorOptions } from './generators/options.js';
|
|
14
|
+
import { resolveGenerators } from './generators/resolve.js';
|
|
15
|
+
import { buildApiModel } from './intermediate-representation/build.js';
|
|
16
|
+
import { allOperations } from './intermediate-representation/model.js';
|
|
17
|
+
import { normalizeSwagger2 } from './intermediate-representation/normalize-swagger2.js';
|
|
18
|
+
import { loadSpec } from './loader.js';
|
|
19
|
+
import { resolveModelPagination } from './pagination.js';
|
|
20
|
+
/**
|
|
21
|
+
* Run each generator of a fully-loaded registry against the IR and concatenate
|
|
22
|
+
* their files. Throws on a duplicate output path so two generators can't
|
|
23
|
+
* silently clobber each other. Validation is the caller's job (`validateSelection`).
|
|
24
|
+
*/
|
|
25
|
+
// The generated-by banner, comment-marker-free — each generator prepends it in its own
|
|
26
|
+
// comment syntax (the TypeScript family's HEADER renders these same lines with `//`).
|
|
27
|
+
const BANNER_LINES = [
|
|
28
|
+
'Generated by @redocly/client-generator — do not edit by hand.',
|
|
29
|
+
'Source: OpenAPI description. Re-run `redocly generate-client` to update.',
|
|
30
|
+
];
|
|
31
|
+
export function runGenerators(model, options) {
|
|
32
|
+
const files = [];
|
|
33
|
+
const seen = new Set();
|
|
34
|
+
// Every emitted path must stay under the --output directory: generator modules are
|
|
35
|
+
// user-chosen code, but a stray `../` or absolute path must not write elsewhere.
|
|
36
|
+
const outputRoot = resolve(dirname(options.outputPath));
|
|
37
|
+
const { dir, name: stem, ext } = parse(options.outputPath);
|
|
38
|
+
const output = { path: options.outputPath, dir, stem, ext };
|
|
39
|
+
const banner = BANNER_LINES;
|
|
40
|
+
let documented = false;
|
|
41
|
+
for (const name of options.generators) {
|
|
42
|
+
const generator = options.registry.get(name);
|
|
43
|
+
const input = {
|
|
44
|
+
model,
|
|
45
|
+
output,
|
|
46
|
+
banner,
|
|
47
|
+
outputMode: options.outputMode,
|
|
48
|
+
emit: options.emit,
|
|
49
|
+
pagination: options.pagination,
|
|
50
|
+
selected: options.generators,
|
|
51
|
+
options: options.generatorOptions?.get(name) ?? {},
|
|
52
|
+
};
|
|
53
|
+
let generated;
|
|
54
|
+
try {
|
|
55
|
+
// `docs` documents what `run` emits, so both run behind the same name and their
|
|
56
|
+
// files land together. A generator without a `docs` hook simply has no page.
|
|
57
|
+
if (options.emit.docs === true && generator.docs !== undefined) {
|
|
58
|
+
generated = [...generator.run(input), ...generator.docs(input)];
|
|
59
|
+
documented = true;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
generated = generator.run(input);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
67
|
+
throw new Error(`Generator "${name}" failed: ${message}`);
|
|
68
|
+
}
|
|
69
|
+
if (!Array.isArray(generated) ||
|
|
70
|
+
generated.some((file) => typeof file?.path !== 'string' || file.path === '' || typeof file.content !== 'string')) {
|
|
71
|
+
throw new Error(`Generator "${name}" failed: run() must return an array of { path, content } files.`);
|
|
72
|
+
}
|
|
73
|
+
for (const file of generated) {
|
|
74
|
+
const resolved = resolve(outputRoot, file.path);
|
|
75
|
+
if (resolved !== outputRoot && !resolved.startsWith(outputRoot + sep)) {
|
|
76
|
+
throw new Error(`Generator "${name}" failed: file path escapes the output directory: ${file.path}`);
|
|
77
|
+
}
|
|
78
|
+
if (seen.has(resolved)) {
|
|
79
|
+
throw new Error(`Generator conflict: ${file.path} already emitted by an earlier generator`);
|
|
80
|
+
}
|
|
81
|
+
seen.add(resolved);
|
|
82
|
+
// Carry the resolved path forward so the write goes where the guard looked —
|
|
83
|
+
// a relative `file.path` would otherwise resolve against the cwd at write time.
|
|
84
|
+
files.push({ path: resolved, content: file.content });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
// Asking for documentation and getting none is worth saying: `zod` and the framework
|
|
88
|
+
// wrappers document nothing, so a selection of only those writes no page.
|
|
89
|
+
if (options.emit.docs === true && !documented) {
|
|
90
|
+
logger.warn(`generate-client: docs is on, but no selected generator writes documentation (${options.generators.join(', ')}).\n`);
|
|
91
|
+
}
|
|
92
|
+
return files;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* A parameter name used in two locations of one operation — `id` in the path AND in the
|
|
96
|
+
* query, which OpenAPI permits. Every SDK still sends both, under their own wire names, but
|
|
97
|
+
* the languages that pass parameters as separate arguments have to rename the second one, so
|
|
98
|
+
* the publisher should hear about it once and can rename it in the description instead.
|
|
99
|
+
*/
|
|
100
|
+
function warnRepeatedParamNames(model) {
|
|
101
|
+
for (const service of model.services) {
|
|
102
|
+
for (const op of service.operations) {
|
|
103
|
+
const seen = new Set();
|
|
104
|
+
const repeated = new Set();
|
|
105
|
+
for (const param of [
|
|
106
|
+
...op.pathParams,
|
|
107
|
+
...op.queryParams,
|
|
108
|
+
...op.headerParams,
|
|
109
|
+
...op.cookieParams,
|
|
110
|
+
]) {
|
|
111
|
+
if (seen.has(param.name))
|
|
112
|
+
repeated.add(param.name);
|
|
113
|
+
seen.add(param.name);
|
|
114
|
+
}
|
|
115
|
+
if (repeated.size === 0)
|
|
116
|
+
continue;
|
|
117
|
+
logger.warn(`generate-client: operation "${op.specName ?? op.name}" uses ${[...repeated]
|
|
118
|
+
.map((name) => `"${name}"`)
|
|
119
|
+
.join(', ')} in more than one parameter location. Every SDK sends both, and the SDKs whose methods take one argument per parameter give the later one a suffixed name — rename it in the description to choose the name yourself.\n`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* An OpenAPI Overlay (1.0.0) adding per-operation `x-codeSamples`, collected from
|
|
125
|
+
* every selected generator that implements the `sample` hook; undefined when no
|
|
126
|
+
* generator contributed a sample. Docs tooling applies it to the description —
|
|
127
|
+
* generation stays side-effect-free on the source.
|
|
128
|
+
*/
|
|
129
|
+
function codeSamplesOverlay(model, emit, selected, registry, outputPath, pagination) {
|
|
130
|
+
const actions = [];
|
|
131
|
+
for (const op of allOperations(model.services)) {
|
|
132
|
+
const samples = selected
|
|
133
|
+
.map((name) => registry.get(name)?.sample?.(op, { model, emit, outputPath, pagination }))
|
|
134
|
+
.filter((sample) => sample !== undefined);
|
|
135
|
+
if (samples.length > 0) {
|
|
136
|
+
actions.push({
|
|
137
|
+
target: `$.paths['${op.path.replaceAll("'", "''")}'].${op.method}`,
|
|
138
|
+
update: { 'x-codeSamples': samples },
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
if (actions.length === 0)
|
|
143
|
+
return undefined;
|
|
144
|
+
return stringifyYaml({
|
|
145
|
+
overlay: '1.0.0',
|
|
146
|
+
info: { title: `Code samples for ${model.title}`, version: model.version },
|
|
147
|
+
actions,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
export async function generateClient(options) {
|
|
151
|
+
// A path segment that is literally "undefined"/"null" is the telltale of an
|
|
152
|
+
// interpolation bug in the caller (`\`${dir}/client.ts\`` with `dir` unset) — reject
|
|
153
|
+
// it instead of silently creating an `undefined/` directory.
|
|
154
|
+
if (options.output.split(/[\\/]/).some((segment) => segment === 'undefined' || segment === 'null')) {
|
|
155
|
+
throw new Error(`output path "${options.output}" contains a literal "undefined" or "null" segment — this looks like an interpolation bug in the caller`);
|
|
156
|
+
}
|
|
157
|
+
// Setup is a LOCAL module (its code is baked into the generated client) — reject
|
|
158
|
+
// URL-ish specifiers upfront, before any spec loading, instead of failing later as
|
|
159
|
+
// an unreadable file path. Two+ letter scheme, so Windows drive paths don't match.
|
|
160
|
+
if (options.setup && /^[a-z][a-z0-9+.-]+:/i.test(options.setup)) {
|
|
161
|
+
throw new NotSupportedError(`setup must be a local file path — remote setup modules are not supported (got: ${options.setup})`);
|
|
162
|
+
}
|
|
163
|
+
const outputPath = resolve(options.output);
|
|
164
|
+
const { document, version } = await loadSpec(options.api, options.config);
|
|
165
|
+
const normalized = version === 'oas2'
|
|
166
|
+
? // loadSpec types the parsed document as OAS3 for the common path; a detected
|
|
167
|
+
// swagger-2 document is re-viewed as raw data for normalization.
|
|
168
|
+
normalizeSwagger2(document)
|
|
169
|
+
: document;
|
|
170
|
+
const model = buildApiModel(normalized);
|
|
171
|
+
warnRepeatedParamNames(model);
|
|
172
|
+
// A publisher `--setup` module is read, validated, and transformed into the neutral setup
|
|
173
|
+
// expression baked into the client. Applied across all output modes by the emitter.
|
|
174
|
+
// Baking parses TypeScript, so the module loads only when setup is actually used.
|
|
175
|
+
let setupBlock;
|
|
176
|
+
if (options.setup) {
|
|
177
|
+
const { bakeSetup } = await import('./setup-bake.js');
|
|
178
|
+
// A relative setup path resolves against `configDir` (cwd when absent), like
|
|
179
|
+
// generator specifiers. The CLI pre-resolves its inputs, so they arrive absolute.
|
|
180
|
+
const setupPath = resolve(options.configDir ?? process.cwd(), options.setup);
|
|
181
|
+
setupBlock = bakeSetup(await readFile(setupPath, 'utf-8'));
|
|
182
|
+
}
|
|
183
|
+
// Resolve the selection into a registry: built-in names load lazily, inline
|
|
184
|
+
// `customGenerators` register, and any other entry is imported as a plugin
|
|
185
|
+
// specifier (path/package). An empty list (e.g. `generators: []` in config, or
|
|
186
|
+
// no `--generator` flags) means "unspecified" — fall back to the default
|
|
187
|
+
// typescript client rather than emitting nothing.
|
|
188
|
+
const requested = options.generators?.length ? options.generators : ['typescript'];
|
|
189
|
+
const { selected, registry } = await resolveGenerators(requested, {
|
|
190
|
+
customGenerators: options.customGenerators,
|
|
191
|
+
configDir: options.configDir,
|
|
192
|
+
});
|
|
193
|
+
// ONE pagination resolution for the run: fit-verified, pointers resolved, errors
|
|
194
|
+
// reported before any generator writes a file.
|
|
195
|
+
const pagination = resolveModelPagination(model, options.pagination);
|
|
196
|
+
const emit = {
|
|
197
|
+
serverUrl: options.serverUrl,
|
|
198
|
+
argsStyle: options.argsStyle,
|
|
199
|
+
errorMode: options.errorMode,
|
|
200
|
+
dateType: options.dateType,
|
|
201
|
+
mockData: options.mockData,
|
|
202
|
+
mockSeed: options.mockSeed,
|
|
203
|
+
queryKeyPrefix: options.queryKeyPrefix,
|
|
204
|
+
setup: setupBlock,
|
|
205
|
+
runtime: options.runtime,
|
|
206
|
+
importExt: options.importExt,
|
|
207
|
+
goPackage: options.goPackage,
|
|
208
|
+
pagination,
|
|
209
|
+
docs: options.docs,
|
|
210
|
+
docsFrontmatter: options.docsFrontmatter,
|
|
211
|
+
};
|
|
212
|
+
// Fail fast on an incompatible selection (missing prerequisite, unsupported
|
|
213
|
+
// error-mode/date-type/runtime) before producing any file, and warn about options a
|
|
214
|
+
// selected generator can't apply.
|
|
215
|
+
validateSelection(selected, emit, registry, options.outputMode);
|
|
216
|
+
const generatorOptions = resolveGeneratorOptions(selected, registry, options.options);
|
|
217
|
+
const files = runGenerators(model, {
|
|
218
|
+
outputPath,
|
|
219
|
+
outputMode: options.outputMode ?? 'single',
|
|
220
|
+
emit,
|
|
221
|
+
pagination,
|
|
222
|
+
generators: selected,
|
|
223
|
+
generatorOptions,
|
|
224
|
+
registry,
|
|
225
|
+
});
|
|
226
|
+
if (options.codeSamples === true) {
|
|
227
|
+
const overlay = codeSamplesOverlay(model, emit, selected, registry, outputPath, pagination);
|
|
228
|
+
if (overlay !== undefined) {
|
|
229
|
+
files.push({ path: outputPath.replace(/\.[^.]+$/, '.code-samples.yaml'), content: overlay });
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
const written = [];
|
|
233
|
+
for (const file of files) {
|
|
234
|
+
await mkdir(dirname(file.path), { recursive: true });
|
|
235
|
+
await writeFile(file.path, file.content, 'utf-8');
|
|
236
|
+
written.push({ path: file.path, bytes: Buffer.byteLength(file.content, 'utf-8') });
|
|
237
|
+
}
|
|
238
|
+
return {
|
|
239
|
+
outputPath,
|
|
240
|
+
bytes: written.reduce((sum, file) => sum + file.bytes, 0),
|
|
241
|
+
files: written,
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=pipeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
package/lib/plugin.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CustomGenerator } from './generators/types.js';
|
|
2
|
+
export { GENERATOR_VERSION } from './generators/compatibility.js';
|
|
2
3
|
/**
|
|
3
4
|
* Identity helper for authoring a custom generator with full type inference and one validation
|
|
4
5
|
* choke-point. `export default defineGenerator({ name, run, … })`. Returns its argument unchanged.
|
|
@@ -6,8 +7,7 @@ import type { CustomGenerator } from './generators/types.js';
|
|
|
6
7
|
* @experimental The plugin API may change between minor versions until stabilized.
|
|
7
8
|
*/
|
|
8
9
|
export declare function defineGenerator(generator: CustomGenerator): CustomGenerator;
|
|
9
|
-
export type { CustomGenerator, GeneratedFile, Generator, GeneratorInput, GeneratorName, OutputMode, } from './generators/types.js';
|
|
10
|
-
export
|
|
11
|
-
export type {
|
|
12
|
-
export type { ApiModel, NamedSchemaModel, OperationModel, ParamModel, PropertyModel, RequestBodyModel, ResponseBodyModel, ScalarKind, SchemaMetadata, SchemaModel, ServiceModel, } from './intermediate-representation/model.js';
|
|
10
|
+
export type { ArgsStyle, CodeSample, CustomGenerator, DateType, EmitOptions, ErrorMode, GeneratedFile, Generator, GeneratorInput, GeneratorName, GeneratorOptionsSchema, OutputAnchor, OutputMode, SampleContext, } from './generators/types.js';
|
|
11
|
+
export { allOperations } from './intermediate-representation/model.js';
|
|
12
|
+
export type { ApiModel, DiscriminatorModel, NamedSchemaModel, OperationModel, ParamModel, PropertyModel, RequestBodyModel, ResponseBodyModel, ResponseHeaderModel, ScalarKind, SchemaMetadata, SchemaModel, SecuritySchemeModel, ServerModel, ServiceModel, SseModel, } from './intermediate-representation/model.js';
|
|
13
13
|
//# sourceMappingURL=plugin.d.ts.map
|
package/lib/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,eAAe,GAAG,eAAe,CAE3E;AAGD,YAAY,EACV,eAAe,EACf,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,eAAe,GAAG,eAAe,CAE3E;AAGD,YAAY,EACV,SAAS,EACT,UAAU,EACV,eAAe,EACf,QAAQ,EACR,WAAW,EACX,SAAS,EACT,aAAa,EACb,SAAS,EACT,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,YAAY,EACZ,UAAU,EACV,aAAa,GACd,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,YAAY,EACV,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,wCAAwC,CAAC"}
|
package/lib/plugin.js
CHANGED
|
@@ -7,24 +7,25 @@
|
|
|
7
7
|
// A custom generator is `(GeneratorInput) => GeneratedFile[]` plus a `name`; select it in
|
|
8
8
|
// `generators` by name (inline via `customGenerators`) or by import specifier (path/package). It
|
|
9
9
|
// receives the same spec-agnostic IR (`model`) the built-in generators consume, and may use the same
|
|
10
|
-
// TypeScript-emitting toolkit re-exported below, so a plugin is a first-class peer of `
|
|
10
|
+
// TypeScript-emitting toolkit re-exported below, so a plugin is a first-class peer of `typescript`/`zod`/…
|
|
11
11
|
// The generated client stays dependency-free: a plugin's output is its own file(s), and its runtime
|
|
12
12
|
// libraries are peers of the consumer's app, never of the client.
|
|
13
13
|
//
|
|
14
14
|
// // my-generator.ts
|
|
15
15
|
// import { defineGenerator } from '@redocly/client-generator';
|
|
16
|
-
// //
|
|
17
|
-
// // import {
|
|
16
|
+
// // TypeScript renderers, when a real type is needed rather than guessed text:
|
|
17
|
+
// // import { tsType } from '@redocly/client-generator/generate';
|
|
18
18
|
// export default defineGenerator({
|
|
19
19
|
// name: 'route-map',
|
|
20
|
-
// requires: ['
|
|
21
|
-
// run({ model,
|
|
20
|
+
// requires: ['typescript'],
|
|
21
|
+
// run({ model, output }) {
|
|
22
22
|
// const routes = model.services.flatMap((s) => s.operations)
|
|
23
23
|
// .map((op) => ` ${op.name}: '${op.method.toUpperCase()} ${op.path}',`).join('\n');
|
|
24
|
-
// return [{ path:
|
|
24
|
+
// return [{ path: output.path.replace(/\.ts$/, '.routes.ts'),
|
|
25
25
|
// content: `export const routes = {\n${routes}\n} as const;\n` }];
|
|
26
26
|
// },
|
|
27
27
|
// });
|
|
28
|
+
export { GENERATOR_VERSION } from './generators/compatibility.js';
|
|
28
29
|
/**
|
|
29
30
|
* Identity helper for authoring a custom generator with full type inference and one validation
|
|
30
31
|
* choke-point. `export default defineGenerator({ name, run, … })`. Returns its argument unchanged.
|
|
@@ -34,7 +35,9 @@
|
|
|
34
35
|
export function defineGenerator(generator) {
|
|
35
36
|
return generator;
|
|
36
37
|
}
|
|
37
|
-
// The
|
|
38
|
-
|
|
39
|
-
//
|
|
38
|
+
// --- The intermediate representation (the `model` a generator walks) ---------------------------
|
|
39
|
+
export { allOperations } from './intermediate-representation/model.js';
|
|
40
|
+
// The TypeScript-emitting renderers (`tsType`, `operationSignature`, …) are exported from
|
|
41
|
+
// `@redocly/client-generator/generate`, which also carries the generation entry point —
|
|
42
|
+
// the package root stays a small authoring surface.
|
|
40
43
|
//# sourceMappingURL=plugin.js.map
|
package/lib/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,8CAA8C;AAC9C,EAAE;AACF,gGAAgG;AAChG,uFAAuF;AACvF,EAAE;AACF,0FAA0F;AAC1F,iGAAiG;AACjG,qGAAqG;AACrG,
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,8CAA8C;AAC9C,EAAE;AACF,gGAAgG;AAChG,uFAAuF;AACvF,EAAE;AACF,0FAA0F;AAC1F,iGAAiG;AACjG,qGAAqG;AACrG,2GAA2G;AAC3G,oGAAoG;AACpG,kEAAkE;AAClE,EAAE;AACF,uBAAuB;AACvB,iEAAiE;AACjE,kFAAkF;AAClF,oEAAoE;AACpE,qCAAqC;AACrC,yBAAyB;AACzB,gCAAgC;AAChC,+BAA+B;AAC/B,mEAAmE;AACnE,6FAA6F;AAC7F,oEAAoE;AACpE,mFAAmF;AACnF,SAAS;AACT,QAAQ;AAIR,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,SAA0B;IACxD,OAAO,SAAS,CAAC;AACnB,CAAC;AAoBD,kGAAkG;AAClG,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AAoBvE,0FAA0F;AAC1F,wFAAwF;AACxF,oDAAoD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Printer } from '../authoring/printer.js';
|
|
2
|
+
export declare class GoPrinter extends Printer {
|
|
3
|
+
constructor();
|
|
4
|
+
/** An exported type name: PascalCase, with the digit-leading `N` rule. */
|
|
5
|
+
typeName(name: string): string;
|
|
6
|
+
/** An exported field/method name — same rule as `typeName`; Go has one namespace. */
|
|
7
|
+
memberName(name: string): string;
|
|
8
|
+
/** A local/argument name: camelCase, keyword-safe. */
|
|
9
|
+
identifier(name: string): string;
|
|
10
|
+
/** Exported names made unique among themselves and the caller's taken set (`Id`, `Id2`). */
|
|
11
|
+
identifiers(names: readonly string[], taken?: Iterable<string>): string[];
|
|
12
|
+
/** A package clause name: lower-case letters and digits only, never empty. */
|
|
13
|
+
packageName(name: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* A double-quoted Go string literal for any spec-supplied text. Controls are escaped;
|
|
16
|
+
* a lone surrogate (a JS string can carry one) has no Go spelling — `\uD800` is an
|
|
17
|
+
* invalid code point to the compiler — so it becomes U+FFFD; everything else,
|
|
18
|
+
* non-ASCII included, is written as itself, because generated files are UTF-8.
|
|
19
|
+
*/
|
|
20
|
+
string(value: string): string;
|
|
21
|
+
/** JSON-ish data as a Go expression (`map[string]any` / `[]any` composites). */
|
|
22
|
+
literal(value: unknown): string;
|
|
23
|
+
/** A `//` line comment. */
|
|
24
|
+
comment(text: string): this;
|
|
25
|
+
/** A doc comment: `// Name — summary`, blank lines collapsed the way gofmt rewrites them. */
|
|
26
|
+
doc(name: string, description?: string): this;
|
|
27
|
+
/** gofmt-clean text: column alignment plus the whitespace shape gofmt produces. */
|
|
28
|
+
layout(source: string): string;
|
|
29
|
+
toString(): string;
|
|
30
|
+
}
|
|
31
|
+
/** An exported Go identifier: PascalCase, digit-leading names get `N` (never `_`). */
|
|
32
|
+
export declare function exported(name: string): string;
|
|
33
|
+
//# sourceMappingURL=go.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"go.d.ts","sourceRoot":"","sources":["../../src/printers/go.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAKlD,qBAAa,SAAU,SAAQ,OAAO;;IAKpC,0EAA0E;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9B,qFAAqF;IACrF,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC,sDAAsD;IACtD,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAIhC,4FAA4F;IAC5F,WAAW,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAWzE,8EAA8E;IAC9E,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAKjC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAgB7B,gFAAgF;IAChF,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM;IAa/B,2BAA2B;IAC3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK3B,6FAA6F;IAC7F,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAiB7C,mFAAmF;IACnF,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAIrB,QAAQ,IAAI,MAAM;CAG5B;AAED,sFAAsF;AACtF,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG7C"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
// The Go syntax printer (ADR-0021). Go's extensions carry knowledge that must not be
|
|
2
|
+
// re-derived: `typeName`/`memberName` apply the digit-leading `N` rule (a `_` prefix
|
|
3
|
+
// means UNexported, so `encoding/json` would silently skip the field), and `layout` is
|
|
4
|
+
// applied by `toString()` because CI commonly runs `gofmt -l` and fails on any file it
|
|
5
|
+
// would reformat — column padding cannot be computed line-by-line, since the width for
|
|
6
|
+
// the first field depends on the longest field in a run that has not been emitted yet.
|
|
7
|
+
import { identifierFor, RESERVED_WORDS } from '../authoring/naming.js';
|
|
8
|
+
import { Printer } from '../authoring/printer.js';
|
|
9
|
+
import { docText } from '../authoring/schema.js';
|
|
10
|
+
const GO = RESERVED_WORDS.go;
|
|
11
|
+
export class GoPrinter extends Printer {
|
|
12
|
+
constructor() {
|
|
13
|
+
super('\t');
|
|
14
|
+
}
|
|
15
|
+
/** An exported type name: PascalCase, with the digit-leading `N` rule. */
|
|
16
|
+
typeName(name) {
|
|
17
|
+
return exported(name);
|
|
18
|
+
}
|
|
19
|
+
/** An exported field/method name — same rule as `typeName`; Go has one namespace. */
|
|
20
|
+
memberName(name) {
|
|
21
|
+
return exported(name);
|
|
22
|
+
}
|
|
23
|
+
/** A local/argument name: camelCase, keyword-safe. */
|
|
24
|
+
identifier(name) {
|
|
25
|
+
return identifierFor(name, { style: 'camel', reserved: GO });
|
|
26
|
+
}
|
|
27
|
+
/** Exported names made unique among themselves and the caller's taken set (`Id`, `Id2`). */
|
|
28
|
+
identifiers(names, taken) {
|
|
29
|
+
const used = new Set(taken ?? []);
|
|
30
|
+
return names.map((name) => {
|
|
31
|
+
const base = exported(name);
|
|
32
|
+
let ident = base;
|
|
33
|
+
for (let suffix = 2; used.has(ident); suffix++)
|
|
34
|
+
ident = `${base}${suffix}`;
|
|
35
|
+
used.add(ident);
|
|
36
|
+
return ident;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
/** A package clause name: lower-case letters and digits only, never empty. */
|
|
40
|
+
packageName(name) {
|
|
41
|
+
const cleaned = name.toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
42
|
+
return cleaned === '' || /^[0-9]/.test(cleaned) ? 'client' : cleaned;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* A double-quoted Go string literal for any spec-supplied text. Controls are escaped;
|
|
46
|
+
* a lone surrogate (a JS string can carry one) has no Go spelling — `\uD800` is an
|
|
47
|
+
* invalid code point to the compiler — so it becomes U+FFFD; everything else,
|
|
48
|
+
* non-ASCII included, is written as itself, because generated files are UTF-8.
|
|
49
|
+
*/
|
|
50
|
+
string(value) {
|
|
51
|
+
let out = '"';
|
|
52
|
+
for (const char of value) {
|
|
53
|
+
const code = char.codePointAt(0);
|
|
54
|
+
if (char === '\\')
|
|
55
|
+
out += '\\\\';
|
|
56
|
+
else if (char === '"')
|
|
57
|
+
out += '\\"';
|
|
58
|
+
else if (char === '\n')
|
|
59
|
+
out += '\\n';
|
|
60
|
+
else if (char === '\r')
|
|
61
|
+
out += '\\r';
|
|
62
|
+
else if (char === '\t')
|
|
63
|
+
out += '\\t';
|
|
64
|
+
else if (code < 0x20 || code === 0x7f)
|
|
65
|
+
out += `\\x${code.toString(16).padStart(2, '0')}`;
|
|
66
|
+
else if (code >= 0xd800 && code <= 0xdfff)
|
|
67
|
+
out += '\\uFFFD';
|
|
68
|
+
else
|
|
69
|
+
out += char;
|
|
70
|
+
}
|
|
71
|
+
return out + '"';
|
|
72
|
+
}
|
|
73
|
+
/** JSON-ish data as a Go expression (`map[string]any` / `[]any` composites). */
|
|
74
|
+
literal(value) {
|
|
75
|
+
if (value === null || value === undefined)
|
|
76
|
+
return 'nil';
|
|
77
|
+
if (typeof value === 'boolean' || typeof value === 'number')
|
|
78
|
+
return String(value);
|
|
79
|
+
if (typeof value === 'string')
|
|
80
|
+
return this.string(value);
|
|
81
|
+
if (Array.isArray(value)) {
|
|
82
|
+
return `[]any{${value.map((item) => this.literal(item)).join(', ')}}`;
|
|
83
|
+
}
|
|
84
|
+
const entries = Object.entries(value)
|
|
85
|
+
.map(([key, entry]) => `${this.string(key)}: ${this.literal(entry)}`)
|
|
86
|
+
.join(', ');
|
|
87
|
+
return `map[string]any{${entries}}`;
|
|
88
|
+
}
|
|
89
|
+
/** A `//` line comment. */
|
|
90
|
+
comment(text) {
|
|
91
|
+
for (const line of docText(text))
|
|
92
|
+
this.line(line === '' ? '//' : `// ${line}`);
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
/** A doc comment: `// Name — summary`, blank lines collapsed the way gofmt rewrites them. */
|
|
96
|
+
doc(name, description) {
|
|
97
|
+
const lines = docText(description);
|
|
98
|
+
if (lines.length === 0)
|
|
99
|
+
return this;
|
|
100
|
+
this.line(`// ${name} — ${lines[0]}`);
|
|
101
|
+
let previousWasBlank = false;
|
|
102
|
+
for (const line of lines.slice(1)) {
|
|
103
|
+
if (line === '') {
|
|
104
|
+
if (!previousWasBlank)
|
|
105
|
+
this.line('//');
|
|
106
|
+
previousWasBlank = true;
|
|
107
|
+
continue;
|
|
108
|
+
}
|
|
109
|
+
this.line(`// ${line}`);
|
|
110
|
+
previousWasBlank = false;
|
|
111
|
+
}
|
|
112
|
+
return this;
|
|
113
|
+
}
|
|
114
|
+
/** gofmt-clean text: column alignment plus the whitespace shape gofmt produces. */
|
|
115
|
+
layout(source) {
|
|
116
|
+
return gofmtShape(alignGoColumns(source));
|
|
117
|
+
}
|
|
118
|
+
toString() {
|
|
119
|
+
return this.layout(super.toString());
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/** An exported Go identifier: PascalCase, digit-leading names get `N` (never `_`). */
|
|
123
|
+
export function exported(name) {
|
|
124
|
+
const ident = identifierFor(name, { style: 'pascal', reserved: GO });
|
|
125
|
+
return ident.startsWith('_') ? `N${ident.slice(1)}` : ident;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* The whitespace shape gofmt produces: never more than one blank line, and exactly one
|
|
129
|
+
* trailing newline. Both entry points below run through it, so the models view is as
|
|
130
|
+
* gofmt-clean as the full client.
|
|
131
|
+
*/
|
|
132
|
+
function gofmtShape(source) {
|
|
133
|
+
return `${source.replace(/\n{3,}/g, '\n\n').trimEnd()}\n`;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Align columns the way gofmt does, so the emitted file is already idiomatic and a
|
|
137
|
+
* `gofmt` run is a no-op. gofmt pads with spaces inside a contiguous run of similar
|
|
138
|
+
* lines: struct fields align their type and tag columns, `const`/`var` entries align
|
|
139
|
+
* their type and `=`. A line that doesn't fit the shape (a comment, a blank line, a
|
|
140
|
+
* type containing spaces) ends the run, exactly like gofmt's tabwriter.
|
|
141
|
+
*/
|
|
142
|
+
function alignGoColumns(source) {
|
|
143
|
+
const lines = source.split('\n');
|
|
144
|
+
const out = [...lines];
|
|
145
|
+
// `\tName Type` optionally followed by a `json:"…"` tag, `\tName Type = value`, or a
|
|
146
|
+
// quoted map key. A statement starting with a Go keyword (`case "x":`, `return y`) is
|
|
147
|
+
// NOT a declaration and must never be padded.
|
|
148
|
+
const FIELD = /^(\t+)([A-Za-z_]\w*) (\S+)( `[^`]*`)?$/;
|
|
149
|
+
const CONST = /^(\t+)([A-Za-z_]\w*) (\S+) = (.+)$/;
|
|
150
|
+
const ENTRY = /^(\t+)("(?:[^"\\]|\\.)*":) (.+)$/;
|
|
151
|
+
const flush = (run) => {
|
|
152
|
+
if (run.length < 2)
|
|
153
|
+
return;
|
|
154
|
+
const widths = [];
|
|
155
|
+
for (const { parts } of run) {
|
|
156
|
+
parts.forEach((part, column) => {
|
|
157
|
+
// The last column never needs padding.
|
|
158
|
+
if (column < parts.length - 1)
|
|
159
|
+
widths[column] = Math.max(widths[column] ?? 0, part.length);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
for (const { index, parts, indent } of run) {
|
|
163
|
+
const padded = parts.map((part, column) => column < parts.length - 1 ? part.padEnd(widths[column] ?? 0) : part);
|
|
164
|
+
out[index] = indent + padded.join(' ').trimEnd();
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
let run = [];
|
|
168
|
+
let runKind;
|
|
169
|
+
lines.forEach((line, index) => {
|
|
170
|
+
const entryMatch = ENTRY.exec(line);
|
|
171
|
+
const constMatch = entryMatch === null ? CONST.exec(line) : null;
|
|
172
|
+
const fieldCandidate = entryMatch === null && constMatch === null ? FIELD.exec(line) : null;
|
|
173
|
+
// `case`, `return`, `var`, … start statements, not declarations.
|
|
174
|
+
const fieldMatch = fieldCandidate !== null && !GO.has(fieldCandidate[2]) ? fieldCandidate : null;
|
|
175
|
+
const kind = entryMatch !== null
|
|
176
|
+
? 'entry'
|
|
177
|
+
: constMatch !== null
|
|
178
|
+
? 'const'
|
|
179
|
+
: fieldMatch !== null
|
|
180
|
+
? 'field'
|
|
181
|
+
: undefined;
|
|
182
|
+
if (kind === undefined || kind !== runKind) {
|
|
183
|
+
flush(run);
|
|
184
|
+
run = [];
|
|
185
|
+
runKind = kind;
|
|
186
|
+
}
|
|
187
|
+
if (entryMatch !== null) {
|
|
188
|
+
run.push({ index, indent: entryMatch[1], parts: [entryMatch[2], entryMatch[3]] });
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
if (constMatch !== null) {
|
|
192
|
+
run.push({
|
|
193
|
+
index,
|
|
194
|
+
indent: constMatch[1],
|
|
195
|
+
parts: [constMatch[2], constMatch[3], '=', constMatch[4]],
|
|
196
|
+
});
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
if (fieldMatch !== null) {
|
|
200
|
+
const parts = [fieldMatch[2], fieldMatch[3]];
|
|
201
|
+
if (fieldMatch[4] !== undefined)
|
|
202
|
+
parts.push(fieldMatch[4].trimStart());
|
|
203
|
+
run.push({ index, indent: fieldMatch[1], parts });
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
flush(run);
|
|
207
|
+
return out.join('\n');
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=go.js.map
|