@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,128 @@
|
|
|
1
|
+
// Ejected from @redocly/client-generator@0.4.0 — the built-in "python" generator.
|
|
2
|
+
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
|
+
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
|
+
// `redocly eject-generator python --update`.
|
|
5
|
+
// The `pagination` stage: `<ident>_pages` / `<ident>_items` iterator methods for
|
|
6
|
+
// paginated operations, sync and async.
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
type DateType,
|
|
10
|
+
jsonSuccessSchema,
|
|
11
|
+
type OperationModel,
|
|
12
|
+
uniqueIdentifiers,
|
|
13
|
+
} from '@redocly/client-generator';
|
|
14
|
+
import type { PythonPrinter } from '@redocly/client-generator/printers/python';
|
|
15
|
+
|
|
16
|
+
import { METHOD_ARG_SLOTS, naming, PY } from './naming.ts';
|
|
17
|
+
import { pythonType } from './types.ts';
|
|
18
|
+
|
|
19
|
+
/** `<ident>_pages` / `<ident>_items` iterator methods for a paginated operation. */
|
|
20
|
+
export function writePaginationWrappers(
|
|
21
|
+
printer: PythonPrinter,
|
|
22
|
+
op: OperationModel,
|
|
23
|
+
ident: string,
|
|
24
|
+
isAsync: boolean,
|
|
25
|
+
itemType: string,
|
|
26
|
+
dateType: DateType
|
|
27
|
+
): void {
|
|
28
|
+
const success = jsonSuccessSchema(op);
|
|
29
|
+
const pageType = success === undefined ? 'Any' : pythonType(success, dateType);
|
|
30
|
+
// The iterators take the same arguments as the operation itself, computed the same way,
|
|
31
|
+
// so a name the method moved aside (`id_2`) is the same name here — copying a call from
|
|
32
|
+
// one to the other has to keep working. Path values are substituted, not dropped.
|
|
33
|
+
const argNames = uniqueIdentifiers(
|
|
34
|
+
[...op.pathParams, ...op.queryParams].map((param) => param.name),
|
|
35
|
+
{ style: 'snake', reserved: PY, taken: METHOD_ARG_SLOTS }
|
|
36
|
+
);
|
|
37
|
+
const pathArgs = op.pathParams.map((param, index) => ({ param, python: argNames[index] }));
|
|
38
|
+
const queryArgs = op.queryParams.map((param, index) => ({
|
|
39
|
+
param,
|
|
40
|
+
python: argNames[op.pathParams.length + index],
|
|
41
|
+
}));
|
|
42
|
+
const positional = pathArgs.map(
|
|
43
|
+
({ param, python }) => `${python}: ${pythonType(param.schema, dateType)}`
|
|
44
|
+
);
|
|
45
|
+
const kwargs = [
|
|
46
|
+
...queryArgs.map(({ param, python }) => {
|
|
47
|
+
const annotation = pythonType(param.schema, dateType);
|
|
48
|
+
const optional = annotation.startsWith('Optional[') ? annotation : `Optional[${annotation}]`;
|
|
49
|
+
return `${python}: ${optional} = None`;
|
|
50
|
+
}),
|
|
51
|
+
'headers: Optional[Dict[str, str]] = None',
|
|
52
|
+
'timeout: Optional[float] = None',
|
|
53
|
+
'retry: Optional[Dict[str, Any]] = None',
|
|
54
|
+
];
|
|
55
|
+
const signature = ['self', ...positional, '*', ...kwargs].join(', ');
|
|
56
|
+
const iterType = isAsync ? 'AsyncIterator' : 'Iterator';
|
|
57
|
+
const pagesFn = isAsync ? 'aiter_pages' : 'iter_pages';
|
|
58
|
+
const itemsFn = isAsync ? 'aiter_items' : 'iter_items';
|
|
59
|
+
|
|
60
|
+
const writeCallClosure = () => {
|
|
61
|
+
printer.line('base: Dict[str, Any] = {}');
|
|
62
|
+
for (const { param, python } of queryArgs) {
|
|
63
|
+
printer.block(`if ${python} is not None:`, () => {
|
|
64
|
+
printer.line(`base[${naming.string(param.name)}] = encode(${python})`);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
const prefix = isAsync ? 'async def' : 'def';
|
|
68
|
+
const awaitKw = isAsync ? 'await ' : '';
|
|
69
|
+
printer.block(`${prefix} _page(page_params: Dict[str, Any]) -> Tuple[Any, Any]:`, () => {
|
|
70
|
+
printer.line('auth_headers, auth_query = resolve_auth(op.get("security") or [], self._auth)');
|
|
71
|
+
const pathDict = pathArgs
|
|
72
|
+
.map(({ param, python }) => `${naming.string(param.name)}: ${python}`)
|
|
73
|
+
.join(', ');
|
|
74
|
+
printer.line(`url = build_url(self._server_url, op["path"], {${pathDict}})`);
|
|
75
|
+
printer.line(
|
|
76
|
+
`response = ${awaitKw}${isAsync ? 'send_async' : 'send'}(self._http, self._config, op, url, method=op["method"], ` +
|
|
77
|
+
'headers={**auth_headers, **(headers or {})}, params={**page_params, **auth_query}, ' +
|
|
78
|
+
'timeout=timeout, retry=retry)'
|
|
79
|
+
);
|
|
80
|
+
printer.block('if not response.is_success:', () => {
|
|
81
|
+
printer.line(
|
|
82
|
+
'raise ApiError(url, response.status_code, response.reason_phrase, _safe_json(response))'
|
|
83
|
+
);
|
|
84
|
+
});
|
|
85
|
+
printer.line('return _safe_json(response), response');
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
// pages: raw page JSON decoded into the page model per page.
|
|
90
|
+
if (isAsync) {
|
|
91
|
+
printer.block(`async def ${ident}_pages(${signature}) -> ${iterType}[${pageType}]:`, () => {
|
|
92
|
+
printer.line(`op = _OPERATIONS["${ident}"]`);
|
|
93
|
+
writeCallClosure();
|
|
94
|
+
printer.block(`async for page in ${pagesFn}(_page, op["pagination"], base):`, () => {
|
|
95
|
+
printer.line(pageType === 'Any' ? 'yield page' : `yield decode(${pageType}, page)`);
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
printer.blank();
|
|
99
|
+
printer.block(`async def ${ident}_items(${signature}) -> ${iterType}[${itemType}]:`, () => {
|
|
100
|
+
printer.line(`op = _OPERATIONS["${ident}"]`);
|
|
101
|
+
writeCallClosure();
|
|
102
|
+
printer.block(`async for item in ${itemsFn}(_page, op["pagination"], base):`, () => {
|
|
103
|
+
printer.line(itemType === 'Any' ? 'yield item' : `yield decode(${itemType}, item)`);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
} else {
|
|
107
|
+
printer.block(`def ${ident}_pages(${signature}) -> ${iterType}[${pageType}]:`, () => {
|
|
108
|
+
printer.line(`op = _OPERATIONS["${ident}"]`);
|
|
109
|
+
writeCallClosure();
|
|
110
|
+
printer.line(
|
|
111
|
+
pageType === 'Any'
|
|
112
|
+
? `return ${pagesFn}(_page, op["pagination"], base)`
|
|
113
|
+
: `return (decode(${pageType}, page) for page in ${pagesFn}(_page, op["pagination"], base))`
|
|
114
|
+
);
|
|
115
|
+
});
|
|
116
|
+
printer.blank();
|
|
117
|
+
printer.block(`def ${ident}_items(${signature}) -> ${iterType}[${itemType}]:`, () => {
|
|
118
|
+
printer.line(`op = _OPERATIONS["${ident}"]`);
|
|
119
|
+
writeCallClosure();
|
|
120
|
+
printer.line(
|
|
121
|
+
itemType === 'Any'
|
|
122
|
+
? `return ${itemsFn}(_page, op["pagination"], base)`
|
|
123
|
+
: `return (decode(${itemType}, item) for item in ${itemsFn}(_page, op["pagination"], base))`
|
|
124
|
+
);
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
printer.blank();
|
|
128
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Ejected from @redocly/client-generator@0.4.0 — the built-in "python" generator.
|
|
2
|
+
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
|
+
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
|
+
// `redocly eject-generator python --update`.
|
|
5
|
+
// The `types` stage: schema → Python type annotation.
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
type DateType,
|
|
9
|
+
isNullable,
|
|
10
|
+
type SchemaModel,
|
|
11
|
+
unwrapNullable,
|
|
12
|
+
} from '@redocly/client-generator';
|
|
13
|
+
|
|
14
|
+
import { className, naming } from './naming.ts';
|
|
15
|
+
|
|
16
|
+
/** The Python type annotation for a schema (anonymous complex shapes collapse to Any-ish). */
|
|
17
|
+
export function pythonType(schema: SchemaModel, dateType: DateType = 'string'): string {
|
|
18
|
+
if (isNullable(schema)) {
|
|
19
|
+
return `Optional[${pythonType(unwrapNullable(schema), dateType)}]`;
|
|
20
|
+
}
|
|
21
|
+
switch (schema.kind) {
|
|
22
|
+
case 'scalar':
|
|
23
|
+
// `dateType: Date` annotates date/date-time as stdlib objects; `_decode.py`
|
|
24
|
+
// converts them from and to ISO strings on the wire.
|
|
25
|
+
if (dateType === 'Date' && schema.scalar === 'string') {
|
|
26
|
+
if (schema.metadata?.format === 'date-time') return 'datetime';
|
|
27
|
+
if (schema.metadata?.format === 'date') return 'date';
|
|
28
|
+
}
|
|
29
|
+
return { string: 'str', integer: 'int', number: 'float', boolean: 'bool' }[schema.scalar];
|
|
30
|
+
case 'array':
|
|
31
|
+
return `List[${pythonType(schema.items, dateType)}]`;
|
|
32
|
+
case 'record':
|
|
33
|
+
return `Dict[str, ${pythonType(schema.value, dateType)}]`;
|
|
34
|
+
case 'ref':
|
|
35
|
+
return className(schema.name);
|
|
36
|
+
case 'literal':
|
|
37
|
+
return `Literal[${naming.literal(schema.value)}]`;
|
|
38
|
+
case 'enum':
|
|
39
|
+
// Anonymous (inline) enums keep the wire scalar; only NAMED enums get classes.
|
|
40
|
+
return { string: 'str', integer: 'int', number: 'float', boolean: 'bool' }[schema.scalar];
|
|
41
|
+
case 'union':
|
|
42
|
+
return `Union[${schema.members.map((member) => pythonType(member, dateType)).join(', ')}]`;
|
|
43
|
+
case 'null':
|
|
44
|
+
return 'None';
|
|
45
|
+
case 'omit':
|
|
46
|
+
// Python has no Omit; the base class is the honest annotation (readOnly
|
|
47
|
+
// fields are server-managed and simply absent on requests).
|
|
48
|
+
return className(schema.base);
|
|
49
|
+
case 'object':
|
|
50
|
+
case 'intersection':
|
|
51
|
+
case 'unknown':
|
|
52
|
+
return 'Any';
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Ejected from @redocly/client-generator@0.4.0 — the built-in "swr" generator.
|
|
2
|
+
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
|
+
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
|
+
// `redocly eject-generator swr --update`.
|
|
5
|
+
import type { Generator } from '@redocly/client-generator';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
|
|
8
|
+
import { renderSwrModule } from './render.ts';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The swr generator: a standalone `<stem>.swr.ts` module of SWR hooks wrapping the
|
|
12
|
+
* sdk operation functions — `<op>Key` + `use<Op>` (`useSWR`) per query (GET/HEAD),
|
|
13
|
+
* `use<Op>` (`useSWRMutation`) per mutation. It imports the operation functions +
|
|
14
|
+
* their `<Op>Variables` types from the sdk entry (`./<stem>.js`), so it requires the
|
|
15
|
+
* `typescript` generator and targets its throw-mode operation functions. `swr`/`swr/mutation`
|
|
16
|
+
* are the consumer's peer; the sdk client stays dependency-free.
|
|
17
|
+
*
|
|
18
|
+
* Output-mode-agnostic: `./<stem>.js` resolves to the single-file client or the
|
|
19
|
+
* multi-file barrel at the output anchor either way. Emits nothing when there are
|
|
20
|
+
* no operations.
|
|
21
|
+
*/
|
|
22
|
+
export const swrGenerator: Generator = ({ model, output, banner, emit }) => {
|
|
23
|
+
const content = renderSwrModule(model, {
|
|
24
|
+
sdkModule: `./${output.stem}.${emit.importExt ?? 'js'}`,
|
|
25
|
+
});
|
|
26
|
+
if (content === '') return [];
|
|
27
|
+
const header = banner.map((line) => `// ${line}`).join('\n');
|
|
28
|
+
return [{ path: join(output.dir, `${output.stem}.swr.ts`), content: `${header}\n\n${content}` }];
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export default {
|
|
32
|
+
name: 'swr',
|
|
33
|
+
run: swrGenerator,
|
|
34
|
+
requires: ["typescript"],
|
|
35
|
+
errorModes: ["throw"],
|
|
36
|
+
requiresGenerator: '^0.4.0',
|
|
37
|
+
};
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Ejected from @redocly/client-generator@0.4.0 — the built-in "swr" generator.
|
|
2
|
+
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
|
+
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
|
+
// `redocly eject-generator swr --update`.
|
|
5
|
+
// Emits an idiomatic SWR module wrapping the sdk operation functions. Per query
|
|
6
|
+
// operation (GET/HEAD) a `<op>Key(vars)` tuple factory + a `use<Op>(vars, init?)`
|
|
7
|
+
// hook returning `useSWR(key, fetcher)`; per mutation (everything else) a
|
|
8
|
+
// `use<Op>()` hook returning `useSWRMutation(key, (key, { arg }) => <op>(arg))`.
|
|
9
|
+
// The fetcher forwards args per the configured args style (grouped `<op>(vars, init)`
|
|
10
|
+
// or flat `<op>(vars.petId, …, init)`) via the shared `operationSignature`, so the
|
|
11
|
+
// call type-checks against the generated sdk.
|
|
12
|
+
// `swr`/`swr/mutation` are the consumer's peer; the sdk stays dependency-free.
|
|
13
|
+
// Source-text templates throughout.
|
|
14
|
+
|
|
15
|
+
import type { ApiModel, OperationModel } from '@redocly/client-generator';
|
|
16
|
+
import {
|
|
17
|
+
hasInputs,
|
|
18
|
+
isQuery,
|
|
19
|
+
sdkCallText,
|
|
20
|
+
sdkNamedImportText,
|
|
21
|
+
variablesName,
|
|
22
|
+
wrappableOperations,
|
|
23
|
+
} from '@redocly/client-generator/contracts/typescript';
|
|
24
|
+
import { pascalCase } from '@redocly/client-generator/printers/typescript';
|
|
25
|
+
|
|
26
|
+
export type SwrOptions = {
|
|
27
|
+
/** Import specifier for the sdk entry the operation functions/types live in. */
|
|
28
|
+
sdkModule: string;
|
|
29
|
+
/** How the sdk function takes its inputs — must match the generated client. */
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/** Render the full SWR module source. `''` when there are no wrappable operations. */
|
|
33
|
+
export function renderSwrModule(model: ApiModel, opts: SwrOptions): string {
|
|
34
|
+
const ops = wrappableOperations(model, 'swr');
|
|
35
|
+
if (ops.length === 0) return '';
|
|
36
|
+
const hasQuery = ops.some(isQuery);
|
|
37
|
+
const hasMutation = ops.some((op) => !isQuery(op));
|
|
38
|
+
const blocks = [
|
|
39
|
+
...(hasQuery ? ['import useSWR from "swr";'] : []),
|
|
40
|
+
...(hasMutation ? ['import useSWRMutation from "swr/mutation";'] : []),
|
|
41
|
+
sdkNamedImportText(ops, opts.sdkModule, hasQuery),
|
|
42
|
+
...ops.flatMap((op) => (isQuery(op) ? queryBlocks(op) : [mutationBlock(op)])),
|
|
43
|
+
];
|
|
44
|
+
return blocks.join('\n\n');
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** An exported `function use<Op>(<params>) { return <expr>; }` declaration. */
|
|
48
|
+
function hookBlock(op: OperationModel, params: string, expr: string): string {
|
|
49
|
+
return `export function use${pascalCase(op.name)}(${params}) {\n return ${expr};\n}`;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** A query op's `<op>Key` factory + `use<Op>` hook calling `useSWR`. */
|
|
53
|
+
function queryBlocks(op: OperationModel): string[] {
|
|
54
|
+
const inputs = hasInputs(op);
|
|
55
|
+
const keyParams = inputs ? `vars: ${variablesName(op)}` : '';
|
|
56
|
+
const keyElements = inputs
|
|
57
|
+
? `[${JSON.stringify(op.name)}, vars]`
|
|
58
|
+
: `[${JSON.stringify(op.name)}]`;
|
|
59
|
+
const key = `export const ${op.name}Key = (${keyParams}) => ${keyElements} as const;`;
|
|
60
|
+
const keyCall = `${op.name}Key(${inputs ? 'vars' : ''})`;
|
|
61
|
+
const useSwr = `useSWR(${keyCall}, () => ${sdkCallText(op, 'vars', true)})`;
|
|
62
|
+
// The throw-only `envelope` option is excluded — cached data must stay the plain body.
|
|
63
|
+
const params = inputs
|
|
64
|
+
? `vars: ${variablesName(op)}, init?: Omit<RequestOptions, "envelope">`
|
|
65
|
+
: 'init?: Omit<RequestOptions, "envelope">';
|
|
66
|
+
return [key, hookBlock(op, params, useSwr)];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/** A mutation op's `use<Op>` hook calling `useSWRMutation`. */
|
|
70
|
+
function mutationBlock(op: OperationModel): string {
|
|
71
|
+
// `(_key: string, { arg }: { arg: <Op>Variables }) => <op>(…arg)` when the op has
|
|
72
|
+
// inputs; a no-arg `() => <op>()` when it has none (`arg` would be unused).
|
|
73
|
+
const trigger = hasInputs(op)
|
|
74
|
+
? `(_key: string, { arg }: {\n arg: ${variablesName(op)};\n }) => ${sdkCallText(op, 'arg', false)}`
|
|
75
|
+
: `() => ${sdkCallText(op, 'arg', false)}`;
|
|
76
|
+
const useSwrMutation = `useSWRMutation(${JSON.stringify(op.name)}, ${trigger})`;
|
|
77
|
+
return hookBlock(op, '', useSwrMutation);
|
|
78
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
// Ejected from @redocly/client-generator@0.4.0 — the built-in "tanstack-query" generator.
|
|
2
|
+
// This file is yours: edit freely; the generated client stays machine-owned and is
|
|
3
|
+
// rebuilt by `redocly generate-client`. Newer generator versions merge in with
|
|
4
|
+
// `redocly eject-generator tanstack-query --update`.
|
|
5
|
+
import type { Generator } from '@redocly/client-generator';
|
|
6
|
+
import { join } from 'node:path';
|
|
7
|
+
|
|
8
|
+
import { renderTanstackModule } from './render.ts';
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The tanstack-query generator: a standalone `<stem>.tanstack.ts` module of
|
|
12
|
+
* TanStack Query v5 factories over the generated client — `<op>QueryKey`/`<op>Options`
|
|
13
|
+
* per query (GET/HEAD), `<op>InfiniteOptions` per paginated query, `<op>Mutation` per
|
|
14
|
+
* mutation, all built by `createQueryFactories(c)` (bindable to any client instance)
|
|
15
|
+
* with the module-level exports bound to the sdk's default `client`. It imports the
|
|
16
|
+
* `client` instance + the `<Op>Variables` types from the sdk entry (`./<stem>.js`), so
|
|
17
|
+
* it requires the `typescript` generator and its throw-mode client. The option helpers are
|
|
18
|
+
* imported from `@tanstack/<framework>-query` (the consumer's peer); the registry binds
|
|
19
|
+
* one framework per generator name, and the emitted body is byte-identical across them.
|
|
20
|
+
*
|
|
21
|
+
* Output-mode-agnostic: `./<stem>.js` resolves to the single-file client or the
|
|
22
|
+
* multi-file barrel at the output anchor either way. Emits nothing when there are
|
|
23
|
+
* no operations.
|
|
24
|
+
*/
|
|
25
|
+
export function tanstackQueryGenerator(framework: 'react' | 'vue' | 'svelte' | 'solid'): Generator {
|
|
26
|
+
return ({ model, output, banner, emit, pagination }) => {
|
|
27
|
+
const content = renderTanstackModule(model, {
|
|
28
|
+
argsStyle: emit.argsStyle ?? 'grouped',
|
|
29
|
+
sdkModule: `./${output.stem}.${emit.importExt ?? 'js'}`,
|
|
30
|
+
framework,
|
|
31
|
+
pagination,
|
|
32
|
+
queryKeyPrefix: emit.queryKeyPrefix,
|
|
33
|
+
});
|
|
34
|
+
if (content === '') return [];
|
|
35
|
+
const header = banner.map((line) => `// ${line}`).join('\n');
|
|
36
|
+
return [
|
|
37
|
+
{ path: join(output.dir, `${output.stem}.tanstack.ts`), content: `${header}\n\n${content}` },
|
|
38
|
+
];
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export default {
|
|
43
|
+
name: 'tanstack-query',
|
|
44
|
+
run: tanstackQueryGenerator('react'),
|
|
45
|
+
requires: ["typescript"],
|
|
46
|
+
errorModes: ["throw"],
|
|
47
|
+
requiresGenerator: '^0.4.0',
|
|
48
|
+
};
|