@povio/openapi-codegen-cli 2.0.8-rc.37 → 2.0.8-rc.39
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 +0 -87
- package/dist/acl.d.ts +4 -0
- package/dist/acl.mjs +7 -73
- package/dist/commands/check.command.d.ts +2 -0
- package/dist/commands/check.d.ts +7 -0
- package/dist/commands/generate.command.d.ts +2 -0
- package/dist/commands/generate.d.ts +8 -0
- package/dist/generator.d.ts +3 -0
- package/dist/generator.js +78 -0
- package/dist/generators/checkOpenAPIDoc.d.ts +3 -0
- package/dist/generators/const/acl.const.d.ts +13 -0
- package/dist/generators/const/buildConfigs.const.d.ts +1 -0
- package/dist/generators/const/deps.const.d.ts +38 -0
- package/dist/generators/const/endpoints.const.d.ts +11 -0
- package/dist/generators/const/js.const.d.ts +1 -0
- package/dist/generators/const/openapi.const.d.ts +7 -0
- package/dist/generators/const/options.const.d.ts +2 -0
- package/dist/generators/const/package.const.d.ts +2 -0
- package/dist/generators/const/queries.const.d.ts +8 -0
- package/dist/generators/const/validation.const.d.ts +53 -0
- package/dist/generators/const/zod.const.d.ts +19 -0
- package/dist/generators/core/SchemaResolver.class.d.ts +71 -0
- package/dist/generators/core/endpoints/getEndpointAcl.d.ts +8 -0
- package/dist/generators/core/endpoints/getEndpointBody.d.ts +13 -0
- package/dist/generators/core/endpoints/getEndpointParameter.d.ts +11 -0
- package/dist/generators/core/endpoints/getEndpointsFromOpenAPIDoc.d.ts +3 -0
- package/dist/generators/core/endpoints/getEndpointsFromOpenAPIDoc.test.d.ts +1 -0
- package/dist/generators/core/getDataFromOpenAPIDoc.d.ts +8 -0
- package/dist/generators/core/getMetadataFromOpenAPIDoc.d.ts +4 -0
- package/dist/generators/core/getMetadataFromOpenAPIDoc.test.d.ts +1 -0
- package/dist/generators/core/openapi/getOpenAPISchemaComplexity.d.ts +2 -0
- package/dist/generators/core/openapi/getOpenAPISchemaComplexity.test.d.ts +1 -0
- package/dist/generators/core/openapi/getOpenAPISchemaDependencyGraph.d.ts +6 -0
- package/dist/generators/core/openapi/getOpenAPISchemaDependencyGraph.test.d.ts +1 -0
- package/dist/generators/core/openapi/getSchemaRefObjs.d.ts +4 -0
- package/dist/generators/core/openapi/iterateSchema.d.ts +22 -0
- package/dist/generators/core/resolveConfig.d.ts +7 -0
- package/dist/generators/core/zod/ZodSchema.class.d.ts +26 -0
- package/dist/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaNames.d.ts +2 -0
- package/dist/generators/core/zod/enumExtraction/resolveExtractedEnumZodSchemaTags.d.ts +2 -0
- package/dist/generators/core/zod/enumExtraction/updateExtractedEnumZodSchemaData.d.ts +17 -0
- package/dist/generators/core/zod/getZodChain.d.ts +8 -0
- package/dist/generators/core/zod/getZodSchema.d.ts +17 -0
- package/dist/generators/core/zod/getZodSchema.test.d.ts +1 -0
- package/dist/generators/core/zod/getZodSchemaRefs.d.ts +6 -0
- package/dist/generators/core/zod/getZodSchemasFromOpenAPIDoc.d.ts +6 -0
- package/dist/generators/core/zod/resolveZodSchemaName.d.ts +10 -0
- package/dist/generators/core/zod/sortZodSchemasByTopology.d.ts +4 -0
- package/dist/generators/generate/generateAcl.d.ts +3 -0
- package/dist/generators/generate/generateAclCheck.d.ts +2 -0
- package/dist/generators/generate/generateAppRestClient.d.ts +2 -0
- package/dist/generators/generate/generateConfigs.d.ts +2 -0
- package/dist/generators/generate/generateEndpoints.d.ts +2 -0
- package/dist/generators/generate/generateModels.d.ts +2 -0
- package/dist/generators/generate/generateQueries.d.ts +2 -0
- package/dist/generators/generate/generateQueryModules.d.ts +2 -0
- package/dist/generators/generate/generateZodExtended.d.ts +2 -0
- package/dist/generators/generateCodeFromOpenAPIDoc.d.ts +4 -0
- package/dist/generators/types/builder-config.d.ts +48 -0
- package/dist/generators/types/common.d.ts +27 -0
- package/dist/generators/types/config.d.ts +2 -0
- package/dist/generators/types/endpoint.d.ts +50 -0
- package/dist/generators/types/generate.d.ts +39 -0
- package/dist/generators/types/metadata.d.ts +51 -0
- package/dist/generators/types/openapi.d.ts +22 -0
- package/dist/generators/types/options.d.ts +66 -0
- package/dist/generators/types/validation.d.ts +5 -0
- package/dist/generators/utils/array.utils.d.ts +1 -0
- package/dist/generators/utils/endpoint.utils.d.ts +12 -0
- package/dist/generators/utils/endpoint.utils.test.d.ts +1 -0
- package/dist/generators/utils/file.utils.d.ts +8 -0
- package/dist/generators/utils/generate/generate.acl.utils.d.ts +23 -0
- package/dist/generators/utils/generate/generate.configs.utils.d.ts +15 -0
- package/dist/generators/utils/generate/generate.endpoints.utils.d.ts +41 -0
- package/dist/generators/utils/generate/generate.imports.utils.d.ts +39 -0
- package/dist/generators/utils/generate/generate.imports.utils.test.d.ts +1 -0
- package/dist/generators/utils/generate/generate.openapi.utils.d.ts +2 -0
- package/dist/generators/utils/generate/generate.query.utils.d.ts +6 -0
- package/dist/generators/utils/generate/generate.utils.d.ts +18 -0
- package/dist/generators/utils/generate/generate.zod.utils.d.ts +13 -0
- package/dist/generators/utils/generate-files.utils.d.ts +6 -0
- package/dist/generators/utils/hbs/hbs-template.utils.d.ts +3 -0
- package/dist/generators/utils/hbs/hbs.acl.utils.d.ts +2 -0
- package/dist/generators/utils/hbs/hbs.common.utils.d.ts +1 -0
- package/dist/generators/utils/hbs/hbs.endpoints.utils.d.ts +2 -0
- package/dist/generators/utils/hbs/hbs.imports.utils.d.ts +1 -0
- package/dist/generators/utils/hbs/hbs.partials.utils.d.ts +2 -0
- package/dist/generators/utils/hbs/hbs.query.utils.d.ts +2 -0
- package/dist/generators/utils/hbs/hbs.zod.utils.d.ts +2 -0
- package/dist/generators/utils/js.utils.d.ts +2 -0
- package/dist/generators/utils/js.utils.test.d.ts +1 -0
- package/dist/generators/utils/math.utils.d.ts +1 -0
- package/dist/generators/utils/namespace.utils.d.ts +7 -0
- package/dist/generators/utils/object.utils.d.ts +13 -0
- package/dist/generators/utils/object.utils.test.d.ts +1 -0
- package/dist/generators/utils/openapi-schema.utils.d.ts +15 -0
- package/dist/generators/utils/openapi.utils.d.ts +23 -0
- package/dist/generators/utils/openapi.utils.test.d.ts +1 -0
- package/dist/generators/utils/operation.utils.d.ts +22 -0
- package/dist/generators/utils/operation.utils.test.d.ts +1 -0
- package/dist/generators/utils/query.utils.d.ts +7 -0
- package/dist/generators/utils/sort.utils.d.ts +7 -0
- package/dist/generators/utils/string.utils.d.ts +14 -0
- package/dist/generators/utils/string.utils.test.d.ts +1 -0
- package/dist/generators/utils/tag.utils.d.ts +7 -0
- package/dist/generators/utils/ts.utils.d.ts +16 -0
- package/dist/generators/utils/validation.utils.d.ts +17 -0
- package/dist/generators/utils/zod-schema.utils.d.ts +15 -0
- package/dist/helpers/cli.helper.d.ts +22 -0
- package/dist/helpers/config.helper.d.ts +3 -0
- package/dist/helpers/version.helper.d.ts +4 -0
- package/dist/helpers/yargs.helper.d.ts +10 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.mjs +22 -252
- package/dist/lib/acl/AclGuard.d.ts +8 -0
- package/dist/lib/acl/AclGuard.mjs +14 -0
- package/dist/lib/acl/Can.d.ts +9 -0
- package/dist/lib/acl/Can.mjs +11 -0
- package/dist/lib/acl/ability.context.d.ts +15 -0
- package/dist/lib/acl/ability.context.mjs +37 -0
- package/dist/lib/acl/appAbility.types.d.ts +3 -0
- package/dist/lib/assets/locales/en/translation.json.mjs +8 -0
- package/dist/lib/assets/locales/sl/translation.json.mjs +8 -0
- package/dist/lib/auth/AuthGuard.d.ts +6 -0
- package/dist/lib/auth/AuthGuard.mjs +26 -0
- package/dist/lib/auth/auth.context.d.ts +22 -0
- package/dist/lib/auth/auth.context.mjs +41 -0
- package/dist/lib/config/i18n.d.ts +32 -0
- package/dist/lib/config/i18n.mjs +31 -0
- package/dist/lib/config/queryConfig.context.d.ts +17 -0
- package/dist/lib/config/queryConfig.context.mjs +26 -0
- package/dist/lib/config/router.context.d.ts +9 -0
- package/dist/lib/config/router.context.mjs +20 -0
- package/dist/lib/react-query.types.d.ts +10 -0
- package/dist/lib/rest/error-handling.d.ts +30 -0
- package/dist/lib/rest/error-handling.mjs +132 -0
- package/dist/lib/rest/rest-client.d.ts +22 -0
- package/dist/lib/rest/rest-client.mjs +62 -0
- package/dist/lib/rest/rest-client.types.d.ts +23 -0
- package/dist/lib/rest/rest-interceptor.d.ts +8 -0
- package/dist/lib/rest/rest-interceptor.mjs +21 -0
- package/dist/lib/rest/rest.utils.d.ts +7 -0
- package/dist/lib/rest/rest.utils.mjs +51 -0
- package/dist/sh.d.ts +2 -0
- package/dist/sh.js +649 -0
- package/package.json +43 -51
- package/src/assets/useCrossTabQueryInvalidation.ts +40 -0
- package/src/assets/useMutationEffects.ts +94 -0
- package/src/generators/templates/acl-check.hbs +29 -0
- package/src/generators/templates/acl.hbs +19 -0
- package/src/generators/templates/app-acl.hbs +17 -0
- package/src/generators/templates/app-rest-client.hbs +7 -0
- package/src/generators/templates/configs.hbs +80 -0
- package/src/generators/templates/endpoints.hbs +44 -0
- package/src/generators/templates/models.hbs +23 -0
- package/src/generators/templates/partials/acl-check-call.hbs +1 -0
- package/src/generators/templates/partials/casl-ability-function.hbs +12 -0
- package/src/generators/templates/partials/casl-ability-query.hbs +1 -0
- package/src/generators/templates/partials/casl-ability-type.hbs +1 -0
- package/src/generators/templates/partials/columns-config.hbs +11 -0
- package/src/generators/templates/partials/endpoint-config.hbs +31 -0
- package/src/generators/templates/partials/endpoint-param-parse.hbs +1 -0
- package/src/generators/templates/partials/endpoint-params.hbs +1 -0
- package/src/generators/templates/partials/import.hbs +1 -0
- package/src/generators/templates/partials/inputs-config.hbs +10 -0
- package/src/generators/templates/partials/model-js-docs.hbs +6 -0
- package/src/generators/templates/partials/query-js-docs.hbs +31 -0
- package/src/generators/templates/partials/query-keys.hbs +11 -0
- package/src/generators/templates/partials/query-use-infinite-query.hbs +22 -0
- package/src/generators/templates/partials/query-use-mutation.hbs +54 -0
- package/src/generators/templates/partials/query-use-query.hbs +17 -0
- package/src/generators/templates/queries.hbs +54 -0
- package/src/generators/templates/query-modules.hbs +5 -0
- package/src/generators/templates/zod-extended.hbs +49 -0
- package/dist/acl.d.mts +0 -59
- package/dist/auth.context-Bu5KW2sI.mjs +0 -59
- package/dist/config-DTx4Ck6g.d.mts +0 -6
- package/dist/error-handling-CXeVTk1T.d.mts +0 -38
- package/dist/error-handling-DkPY7Asf.mjs +0 -187
- package/dist/generate.runner-DLLGYMVB.mjs +0 -90
- package/dist/generateCodeFromOpenAPIDoc-CFbiHxB7.mjs +0 -4729
- package/dist/generator.d.mts +0 -65
- package/dist/generator.mjs +0 -144
- package/dist/index.d.mts +0 -231
- package/dist/options-fyt0BYYE.d.mts +0 -95
- package/dist/sh.d.mts +0 -1
- package/dist/sh.mjs +0 -450
- package/dist/vite.d.mts +0 -11
- package/dist/vite.mjs +0 -53
- package/dist/zod.d.mts +0 -20
- package/dist/zod.mjs +0 -33
package/README.md
CHANGED
|
@@ -69,14 +69,12 @@ yarn openapi-codegen generate --config my-config.ts
|
|
|
69
69
|
--config Path to TS config file (default: 'openapi-codegen.config.ts')
|
|
70
70
|
--input Path/URL to OpenAPI JSON/YAML document
|
|
71
71
|
--output Output directory path (default: 'output')
|
|
72
|
-
--incremental Skip generation when OpenAPI and config are unchanged (default: true)
|
|
73
72
|
--format Format the generated code using Oxfmt (default: true)
|
|
74
73
|
--verbose Display detailed log messages during execution (default: false)
|
|
75
74
|
|
|
76
75
|
--splitByTags Organize output into separate folders based on OpenAPI operation tags (default: true)
|
|
77
76
|
--defaultTag (Requires `--splitByTags`) Default tag for shared code across multiple tags (default: 'Common')
|
|
78
77
|
|
|
79
|
-
--includeTags Comma-separated list of tags to include in generation
|
|
80
78
|
--excludeTags Comma-separated list of tags to exclude from generation
|
|
81
79
|
--excludePathRegex Exclude operations whose paths match the given regular expression
|
|
82
80
|
--excludeRedundantZodSchemas Exclude any redundant Zod schemas (default: true)
|
|
@@ -86,17 +84,11 @@ yarn openapi-codegen generate --config my-config.ts
|
|
|
86
84
|
--tsPath (Requires `--importPath` to be 'ts') Typescript import path (default: '@/data')
|
|
87
85
|
--removeOperationPrefixEndingWith Remove operation name prefixes that end with the specified string (default: 'Controller_')
|
|
88
86
|
--extractEnums Extract enums into separate Zod schemas (default: true)
|
|
89
|
-
--modelsInCommon Keep all schema declarations in defaultTag models and emit per-module proxy exports (default: false)
|
|
90
87
|
--replaceOptionalWithNullish Replace `.optional()` chains with `.nullish()` in generated Zod schemas (default: false)
|
|
91
88
|
|
|
92
89
|
--axiosRequestConfig Include Axios request config parameters in query hooks (default: false)
|
|
93
90
|
--infiniteQueries Generate infinite queries for paginated API endpoints (default: false)
|
|
94
91
|
--mutationEffects Add mutation effects options to mutation hooks (default: true)
|
|
95
|
-
--mutationDefaultOnError Use OpenApiQueryConfig.onError as the default onError for mutation hooks (default: false)
|
|
96
|
-
--workspaceContext Comma-separated list of path/ACL params that generated hooks may resolve from OpenApiWorkspaceContext
|
|
97
|
-
--inlineEndpoints Inline endpoint implementations into generated query files (default: false)
|
|
98
|
-
--inlineEndpointsExcludeModules Comma-separated modules/tags to keep as separate API files while inlineEndpoints=true
|
|
99
|
-
--modelsOnly Generate only model files (default: false)
|
|
100
92
|
--parseRequestParams Add Zod parsing to API endpoints (default: true)
|
|
101
93
|
|
|
102
94
|
--acl Generate ACL related files (default: true)
|
|
@@ -117,7 +109,6 @@ yarn openapi-codegen generate --config my-config.ts
|
|
|
117
109
|
--splitByTags Organize output into separate folders based on OpenAPI operation tags (default: true)
|
|
118
110
|
--defaultTag (Requires `--splitByTags`) Default tag for shared code across multiple tags (default: 'Common')
|
|
119
111
|
|
|
120
|
-
--includeTags Comma-separated list of tags to include in generation
|
|
121
112
|
--excludeTags Comma-separated list of tags to exclude from generation
|
|
122
113
|
--excludePathRegex Exclude operations whose paths match the given regular expression
|
|
123
114
|
--excludeRedundantZodSchemas Exclude any redundant Zod schemas (default: true)
|
|
@@ -195,84 +186,6 @@ const config: OpenAPICodegenConfig = {
|
|
|
195
186
|
export default config;
|
|
196
187
|
```
|
|
197
188
|
|
|
198
|
-
### Default mutation errors
|
|
199
|
-
|
|
200
|
-
Set `mutationDefaultOnError: true` in codegen config (or pass `--mutationDefaultOnError`) to let generated mutation hooks fall back to `OpenApiQueryConfig.Provider` when a mutation call does not define its own `onError`.
|
|
201
|
-
|
|
202
|
-
```tsx
|
|
203
|
-
import { ErrorHandler, OpenApiQueryConfig } from "@povio/openapi-codegen-cli";
|
|
204
|
-
|
|
205
|
-
<OpenApiQueryConfig.Provider
|
|
206
|
-
onError={(error) => {
|
|
207
|
-
errorToast({ text: ErrorHandler.getErrorMessage(error) });
|
|
208
|
-
}}
|
|
209
|
-
>
|
|
210
|
-
<App />
|
|
211
|
-
</OpenApiQueryConfig.Provider>;
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
### OpenApiWorkspaceContext (Path + ACL defaults)
|
|
215
|
-
|
|
216
|
-
Set `workspaceContext` to a list of param names in codegen config (or pass `--workspaceContext officeId,projectId`) and wrap your app subtree with `OpenApiWorkspaceContext.Provider` if generated hooks frequently repeat workspace-scoped params.
|
|
217
|
-
|
|
218
|
-
```tsx
|
|
219
|
-
import { OpenApiWorkspaceContext } from "@povio/openapi-codegen-cli";
|
|
220
|
-
// openapi-codegen.config.ts -> { workspaceContext: ["officeId", "projectId"] }
|
|
221
|
-
|
|
222
|
-
<OpenApiWorkspaceContext.Provider values={{ officeId: "office_123" }}>
|
|
223
|
-
<MyWorkspacePages />
|
|
224
|
-
</OpenApiWorkspaceContext.Provider>;
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
Generated query/mutation hooks can then omit only those matching path/ACL params and resolve them from `OpenApiWorkspaceContext`. Params not listed in `workspaceContext` remain explicit and required.
|
|
228
|
-
|
|
229
|
-
### Generation Modes
|
|
230
|
-
|
|
231
|
-
You can control whether API endpoint files are emitted, inlined into query files, or skipped entirely.
|
|
232
|
-
|
|
233
|
-
```ts
|
|
234
|
-
import type { OpenAPICodegenConfig } from "@povio/openapi-codegen-cli";
|
|
235
|
-
|
|
236
|
-
const config: OpenAPICodegenConfig = {
|
|
237
|
-
// 1) Default mode: separate *.api.ts files are generated
|
|
238
|
-
// 2) Inline mode: endpoint logic is generated inside *.queries.ts
|
|
239
|
-
// and can be used without separate api files:
|
|
240
|
-
// inlineEndpoints: true,
|
|
241
|
-
// inlineEndpointsExcludeModules: ["Users", "Billing"],
|
|
242
|
-
// 3) Models-only mode: generate only *.models.ts files
|
|
243
|
-
// modelsOnly: true,
|
|
244
|
-
// 4) Keep all model declarations in common.models and generate per-module model proxies
|
|
245
|
-
// modelsInCommon: true,
|
|
246
|
-
};
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
### Vite Plugin
|
|
250
|
-
|
|
251
|
-
You can run codegen directly from Vite config (without CLI config file):
|
|
252
|
-
|
|
253
|
-
```ts
|
|
254
|
-
import { defineConfig } from "vite";
|
|
255
|
-
import { openApiCodegen } from "@povio/openapi-codegen-cli/vite";
|
|
256
|
-
|
|
257
|
-
export default defineConfig({
|
|
258
|
-
plugins: [
|
|
259
|
-
openApiCodegen({
|
|
260
|
-
input: "./openapi.yaml",
|
|
261
|
-
output: "./src/data",
|
|
262
|
-
inlineEndpoints: true,
|
|
263
|
-
incremental: true,
|
|
264
|
-
formatGeneratedFile: async ({ fileName, content }) => {
|
|
265
|
-
void fileName;
|
|
266
|
-
return content;
|
|
267
|
-
},
|
|
268
|
-
}),
|
|
269
|
-
],
|
|
270
|
-
});
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
The plugin runs on both `vite serve` and `vite build`, and watches local OpenAPI files in dev mode.
|
|
274
|
-
If you provide `formatGeneratedFile`, the plugin formats each generated file in memory before comparing and writing it, which helps avoid unnecessary HMR when the formatted output is unchanged.
|
|
275
|
-
|
|
276
189
|
### Enums
|
|
277
190
|
|
|
278
191
|
If you're using Enums in your backend DTOs with `@Expose()` and `@IsEnum`, they may still not appear correctly in the OpenAPI schema unless you also provide both `enum` **and** `enumName` to `@ApiProperty`.
|
package/dist/acl.d.ts
ADDED
package/dist/acl.mjs
CHANGED
|
@@ -1,74 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
//#region src/lib/acl/ability.context.tsx
|
|
10
|
-
let AbilityContext;
|
|
11
|
-
(function(_AbilityContext) {
|
|
12
|
-
const createAppAbilityBuilder = () => new AbilityBuilder(createMongoAbility);
|
|
13
|
-
const initialAppAbility = createAppAbilityBuilder().build();
|
|
14
|
-
const Context = createContext({});
|
|
15
|
-
const { Consumer } = Context;
|
|
16
|
-
_AbilityContext.Consumer = Consumer;
|
|
17
|
-
_AbilityContext.Provider = ({ children }) => {
|
|
18
|
-
const [ability, setAbility] = useState(initialAppAbility);
|
|
19
|
-
const { user } = AuthContext.useAuth();
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
if (!user || !("aclRules" in user)) return;
|
|
22
|
-
const { can, build } = createAppAbilityBuilder();
|
|
23
|
-
const packedRules = user.aclRules;
|
|
24
|
-
unpackRules(packedRules).forEach(({ action, subject, conditions }) => {
|
|
25
|
-
can(action, subject, conditions);
|
|
26
|
-
});
|
|
27
|
-
setAbility(build());
|
|
28
|
-
}, [user]);
|
|
29
|
-
return /* @__PURE__ */ jsx(Context.Provider, {
|
|
30
|
-
value: ability,
|
|
31
|
-
children
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
_AbilityContext.useAbility = () => {
|
|
35
|
-
return useAbility(Context);
|
|
36
|
-
};
|
|
37
|
-
})(AbilityContext || (AbilityContext = {}));
|
|
38
|
-
|
|
39
|
-
//#endregion
|
|
40
|
-
//#region src/lib/acl/AclGuard.tsx
|
|
41
|
-
const createAclGuard = () => ({ canUse, redirectTo = "/", children }) => {
|
|
42
|
-
const ability = AbilityContext.useAbility();
|
|
43
|
-
const { replace } = OpenApiRouter.useRouter();
|
|
44
|
-
if (!ability.can(canUse[0], canUse[1])) {
|
|
45
|
-
replace(redirectTo);
|
|
46
|
-
return null;
|
|
47
|
-
}
|
|
48
|
-
return children;
|
|
1
|
+
import { AbilityContext } from "./lib/acl/ability.context.mjs";
|
|
2
|
+
import { createAclGuard } from "./lib/acl/AclGuard.mjs";
|
|
3
|
+
import { Can } from "./lib/acl/Can.mjs";
|
|
4
|
+
export {
|
|
5
|
+
AbilityContext,
|
|
6
|
+
Can,
|
|
7
|
+
createAclGuard
|
|
49
8
|
};
|
|
50
|
-
|
|
51
|
-
//#endregion
|
|
52
|
-
//#region src/lib/acl/Can.tsx
|
|
53
|
-
const ContextualCan = createContextualCan(AbilityContext.Consumer);
|
|
54
|
-
const Can = ({ use, ...props }) => {
|
|
55
|
-
const [action, subject] = use;
|
|
56
|
-
return /* @__PURE__ */ jsx(ContextualCan, {
|
|
57
|
-
...props,
|
|
58
|
-
do: action,
|
|
59
|
-
on: subject
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
//#endregion
|
|
64
|
-
//#region src/lib/acl/useAclCheck.ts
|
|
65
|
-
function useAclCheck({ errorHandler } = {}) {
|
|
66
|
-
const ability = AbilityContext.useAbility();
|
|
67
|
-
return { checkAcl: useCallback((appAbility) => {
|
|
68
|
-
const [action, subject] = appAbility;
|
|
69
|
-
if (!ability.can(action, subject)) (errorHandler ?? SharedErrorHandler).rethrowError(/* @__PURE__ */ new Error("ACL check failed"));
|
|
70
|
-
}, [ability, errorHandler]) };
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
//#endregion
|
|
74
|
-
export { AbilityContext, Can, createAclGuard, useAclCheck };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GenerateOptions } from '../generators/types/options';
|
|
2
|
+
export type CheckParams = {
|
|
3
|
+
config?: string;
|
|
4
|
+
excludeTags?: string;
|
|
5
|
+
verbose?: boolean;
|
|
6
|
+
} & Partial<Pick<GenerateOptions, "input" | "splitByTags" | "defaultTag">>;
|
|
7
|
+
export declare function check({ verbose, config: configParam, excludeTags: _excludeTagsParam, ...params }: CheckParams): Promise<void>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { GenerateOptions } from '../generators/types/options';
|
|
2
|
+
export type GenerateParams = {
|
|
3
|
+
config?: string;
|
|
4
|
+
excludeTags?: string;
|
|
5
|
+
format?: boolean;
|
|
6
|
+
verbose?: boolean;
|
|
7
|
+
} & Partial<Pick<GenerateOptions, "input" | "output" | "tsNamespaces" | "tsPath" | "splitByTags" | "defaultTag" | "removeOperationPrefixEndingWith" | "importPath" | "extractEnums" | "acl" | "checkAcl" | "baseUrl" | "replaceOptionalWithNullish" | "infiniteQueries" | "axiosRequestConfig" | "mutationEffects" | "parseRequestParams" | "builderConfigs">>;
|
|
8
|
+
export declare function generate({ format, verbose, config: configParam, ...params }: GenerateParams): Promise<void>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { GenerateParams } from './generators/types/metadata';
|
|
2
|
+
export declare function getGenerateMetadata({ input, options: genOptions }: GenerateParams): Promise<import('./generators/types/metadata').GenerateMetadata>;
|
|
3
|
+
export declare function getGenerateFilesData({ input, options: genOptions }: GenerateParams): Promise<import('./generators/types/generate').GenerateFileData[]>;
|