@povio/openapi-codegen-cli 0.7.2 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generators/const/deps.const.d.ts +1 -0
- package/dist/generators/const/endpoints.const.d.ts +1 -0
- package/dist/generators/const/zod.const.d.ts +1 -0
- package/dist/generators/types/generate.d.ts +1 -0
- package/dist/generators/utils/file.utils.d.ts +4 -0
- package/dist/generators/utils/generate/generate.endpoints.utils.d.ts +5 -1
- package/dist/generators/utils/generate/generate.imports.utils.d.ts +2 -3
- package/dist/generators/utils/generate/generate.query.utils.d.ts +1 -1
- package/dist/generators/utils/hbs/hbs.imports.utils.d.ts +1 -0
- package/dist/generators/utils/query.utils.d.ts +1 -1
- package/dist/index.js +46 -46
- package/dist/sh.js +63 -63
- package/package.json +1 -1
- package/src/assets/rest-client.ts +32 -42
- package/src/generators/templates/app-acl.hbs +1 -1
- package/src/generators/templates/app-rest-client.hbs +1 -1
- package/src/generators/templates/partials/casl-ability-function.hbs +2 -2
- package/src/generators/templates/partials/casl-ability-query.hbs +1 -0
- package/src/generators/templates/partials/endpoint-config.hbs +6 -0
- package/src/generators/templates/partials/endpoint-params.hbs +1 -1
- package/src/generators/templates/partials/import.hbs +1 -1
- package/src/generators/templates/partials/query-js-docs.hbs +16 -6
- package/src/generators/templates/partials/query-keys.hbs +1 -1
- package/src/generators/templates/partials/query-use-infinite-query.hbs +4 -4
- package/src/generators/templates/partials/query-use-mutation.hbs +15 -3
- package/src/generators/templates/partials/query-use-query.hbs +2 -2
- package/src/generators/templates/queries.hbs +2 -4
- package/src/generators/templates/query-modules.hbs +1 -4
package/package.json
CHANGED
|
@@ -6,15 +6,9 @@ interface RequestInfo<ZResDto extends z.ZodRawShape, ResDto, Res> {
|
|
|
6
6
|
resSchema: z.ZodEffects<z.ZodObject<ZResDto, "strip", z.ZodTypeAny, ResDto>, Res> | z.ZodSchema<Res>;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
get: false,
|
|
13
|
-
post: true,
|
|
14
|
-
patch: true,
|
|
15
|
-
put: true,
|
|
16
|
-
delete: true,
|
|
17
|
-
};
|
|
9
|
+
interface RequestConfig<RawRes extends boolean = false> {
|
|
10
|
+
rawResponse?: RawRes;
|
|
11
|
+
}
|
|
18
12
|
|
|
19
13
|
export class RestClient {
|
|
20
14
|
private client: AxiosInstance;
|
|
@@ -44,64 +38,60 @@ export class RestClient {
|
|
|
44
38
|
interceptor.removeInterceptor(this.client);
|
|
45
39
|
}
|
|
46
40
|
|
|
47
|
-
public async get<ZResDto extends z.ZodRawShape, ResDto, Res>(
|
|
41
|
+
public async get<ZResDto extends z.ZodRawShape, ResDto, Res, RawRes extends boolean = false>(
|
|
48
42
|
requestInfo: RequestInfo<ZResDto, ResDto, Res>,
|
|
49
43
|
url: string,
|
|
50
|
-
|
|
51
|
-
): Promise<Res> {
|
|
52
|
-
return this.makeRequest(requestInfo, "get", url
|
|
44
|
+
requestConfig?: AxiosRequestConfig & RequestConfig<RawRes>,
|
|
45
|
+
): Promise<RawRes extends true ? AxiosResponse<Res> : Res> {
|
|
46
|
+
return this.makeRequest(requestInfo, { ...requestConfig, method: "get", url });
|
|
53
47
|
}
|
|
54
48
|
|
|
55
|
-
public async post<ZResDto extends z.ZodRawShape, ResDto, Res>(
|
|
49
|
+
public async post<ZResDto extends z.ZodRawShape, ResDto, Res, RawRes extends boolean = false>(
|
|
56
50
|
requestInfo: RequestInfo<ZResDto, ResDto, Res>,
|
|
57
51
|
url: string,
|
|
58
52
|
data?: any,
|
|
59
|
-
|
|
60
|
-
): Promise<Res> {
|
|
61
|
-
return this.makeRequest(requestInfo, "post", url, data
|
|
53
|
+
requestConfig?: AxiosRequestConfig & RequestConfig<RawRes>,
|
|
54
|
+
): Promise<RawRes extends true ? AxiosResponse<Res> : Res> {
|
|
55
|
+
return this.makeRequest(requestInfo, { ...requestConfig, method: "post", url, data });
|
|
62
56
|
}
|
|
63
57
|
|
|
64
|
-
public async patch<ZResDto extends z.ZodRawShape, ResDto, Res>(
|
|
58
|
+
public async patch<ZResDto extends z.ZodRawShape, ResDto, Res, RawRes extends boolean = false>(
|
|
65
59
|
requestInfo: RequestInfo<ZResDto, ResDto, Res>,
|
|
66
60
|
url: string,
|
|
67
61
|
data?: any,
|
|
68
|
-
|
|
69
|
-
): Promise<Res> {
|
|
70
|
-
return this.makeRequest(requestInfo, "patch", url, data
|
|
62
|
+
requestConfig?: AxiosRequestConfig & RequestConfig<RawRes>,
|
|
63
|
+
): Promise<RawRes extends true ? AxiosResponse<Res> : Res> {
|
|
64
|
+
return this.makeRequest(requestInfo, { ...requestConfig, method: "patch", url, data });
|
|
71
65
|
}
|
|
72
66
|
|
|
73
|
-
public async put<ZResDto extends z.ZodRawShape, ResDto, Res>(
|
|
67
|
+
public async put<ZResDto extends z.ZodRawShape, ResDto, Res, RawRes extends boolean = false>(
|
|
74
68
|
requestInfo: RequestInfo<ZResDto, ResDto, Res>,
|
|
75
69
|
url: string,
|
|
76
70
|
data?: any,
|
|
77
|
-
|
|
78
|
-
): Promise<Res> {
|
|
79
|
-
return this.makeRequest(requestInfo, "put", url, data
|
|
71
|
+
requestConfig?: AxiosRequestConfig & RequestConfig<RawRes>,
|
|
72
|
+
): Promise<RawRes extends true ? AxiosResponse<Res> : Res> {
|
|
73
|
+
return this.makeRequest(requestInfo, { ...requestConfig, method: "put", url, data });
|
|
80
74
|
}
|
|
81
75
|
|
|
82
|
-
public async delete<ZResDto extends z.ZodRawShape, ResDto, Res>(
|
|
76
|
+
public async delete<ZResDto extends z.ZodRawShape, ResDto, Res, RawRes extends boolean = false>(
|
|
83
77
|
requestInfo: RequestInfo<ZResDto, ResDto, Res>,
|
|
84
78
|
url: string,
|
|
85
79
|
data?: any,
|
|
86
|
-
|
|
87
|
-
): Promise<Res> {
|
|
88
|
-
return this.makeRequest(requestInfo, "delete", url, data
|
|
80
|
+
requestConfig?: AxiosRequestConfig & RequestConfig<RawRes>,
|
|
81
|
+
): Promise<RawRes extends true ? AxiosResponse<Res> : Res> {
|
|
82
|
+
return this.makeRequest(requestInfo, { ...requestConfig, method: "delete", url, data });
|
|
89
83
|
}
|
|
90
84
|
|
|
91
|
-
private async makeRequest<ZResDto extends z.ZodRawShape, ResDto, Res>(
|
|
85
|
+
private async makeRequest<ZResDto extends z.ZodRawShape, ResDto, Res, RawRes extends boolean = false>(
|
|
92
86
|
requestInfo: RequestInfo<ZResDto, ResDto, Res>,
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
res = await this.client[method](url, data, config);
|
|
101
|
-
} else {
|
|
102
|
-
res = await this.client[method](url, config);
|
|
103
|
-
}
|
|
87
|
+
requestConfig: AxiosRequestConfig & RequestConfig<RawRes>,
|
|
88
|
+
): Promise<RawRes extends true ? AxiosResponse<Res> : Res> {
|
|
89
|
+
const { rawResponse, ...config } = requestConfig;
|
|
90
|
+
|
|
91
|
+
const res = await this.client(config);
|
|
92
|
+
|
|
93
|
+
const resData = requestInfo.resSchema.parse(res.data);
|
|
104
94
|
|
|
105
|
-
return
|
|
95
|
+
return (rawResponse ? { ...res, data: resData } : resData) as RawRes extends true ? AxiosResponse<Res> : Res;
|
|
106
96
|
}
|
|
107
97
|
}
|
|
@@ -10,4 +10,4 @@ export type AppAbilities =
|
|
|
10
10
|
{{#if includeNamespace}}{{#each namespaces as | namespace |}} | {{namespace}}.{{../allAbilities}}{{/each}}
|
|
11
11
|
{{else}}{{#each tags as | tag |}} | {{tagAllAbilitiesName tag}}{{/each}}{{/if}}
|
|
12
12
|
|
|
13
|
-
export type AppAbility = PureAbility<AppAbilities>;
|
|
13
|
+
export type AppAbility = PureAbility<AppAbilities>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Use for
|
|
2
|
+
* Use for {{{genCaslAbilityQuery endpoint}}} ability. {{#if (hasAbilityConditions endpoint)}}For global ability, omit the object parameter.{{/if}}{{#if (abilityDescription endpoint)}}
|
|
3
3
|
* @description {{abilityDescription endpoint}}{{/if}}
|
|
4
4
|
{{#if (hasAbilityConditions endpoint)}}{{#each (abilityConditionsTypes endpoint) as | propertyType |}} * @param { {{propertyType.type}}{{propertyType.zodSchemaName}} } object.{{propertyType.name}} {{propertyType.name}} from {{propertyType.info}}
|
|
5
|
-
{{/each}}{{/if}} * @returns { {{abilityTypeName endpoint}} } An ability tuple indicating the user's ability to use
|
|
5
|
+
{{/each}}{{/if}} * @returns { {{abilityTypeName endpoint}} } An ability tuple indicating the user's ability to use {{{genCaslAbilityQuery endpoint}}}
|
|
6
6
|
*/
|
|
7
7
|
export const {{abilityFunctionName endpoint}} = (
|
|
8
8
|
{{#if (hasAbilityConditions endpoint)}}object?: { {{#each (abilityConditionsTypes endpoint) as | propertyType |}}{{propertyType.name}}{{#unless propertyType.required}}?{{/unless}}: {{propertyType.type}}{{propertyType.zodSchemaName}}, {{/each}} } {{/if}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{{#if (isQuery endpoint)}}{{#if (isMutation endpoint)}}`{{queryName endpoint}}` query or `{{queryName endpoint mutation=true}}` mutation{{else}}`{{queryName endpoint}}` query{{/if}}{{else}}`{{queryName endpoint}}` mutation{{/if}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{{#each (endpointParams endpoint
|
|
1
|
+
{{#each (endpointParams endpoint options) as | endpointParam |}}{{endpointParam.name}}{{#unless endpointParam.required}}?{{/unless}}: {{endpointParam.type}}, {{/each}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {{importNames import.bindings import.defaultImport}} from "{{import.from}}";
|
|
@@ -4,18 +4,28 @@
|
|
|
4
4
|
* @summary {{addAsteriskAfterNewLine endpoint.summary}}{{/if}}{{#if endpoint.description}}
|
|
5
5
|
* @description {{addAsteriskAfterNewLine endpoint.description}}{{/if}}{{#if endpoint.acl}}
|
|
6
6
|
* @permission Requires `{{abilityFunctionName endpoint}}` ability {{/if}}
|
|
7
|
-
{{#if (endpointParams endpoint)}}{{#each (endpointParams endpoint infiniteQuery
|
|
7
|
+
{{#if (endpointParams endpoint)}}{{#each (endpointParams endpoint infiniteQuery removePageParam=true) as | endpointParam |}} * @param { {{endpointParam.type}} } object.{{endpointParam.name}} {{{endpointParamDescription endpointParam}}}
|
|
8
8
|
{{/each}}{{/if}} * @param { AppInfiniteQueryOptions } options Infinite query options
|
|
9
9
|
* @returns { UseInfiniteQueryResult<{{{importedZodSchemaInferedType endpoint.response}}}> } {{endpoint.responseDescription}}
|
|
10
10
|
* @statusCodes [{{commaSeparated endpoint.responseStatusCodes}}]
|
|
11
|
-
*/{{else}}
|
|
11
|
+
*/{{else if query}}
|
|
12
12
|
/**
|
|
13
|
-
* {{
|
|
13
|
+
* Query `{{queryName endpoint}}`{{#if endpoint.summary}}{{#if endpoint.fileDownload}} - recommended when file should be cached{{/if}}
|
|
14
14
|
* @summary {{addAsteriskAfterNewLine endpoint.summary}}{{/if}}{{#if endpoint.description}}
|
|
15
15
|
* @description {{addAsteriskAfterNewLine endpoint.description}}{{/if}}{{#if endpoint.acl}}
|
|
16
16
|
* @permission Requires `{{abilityFunctionName endpoint}}` ability {{/if}}
|
|
17
|
-
{{#if (endpointParams endpoint)}}{{#each (endpointParams endpoint) as | endpointParam |}} * @param { {{endpointParam.type}} }
|
|
18
|
-
{{/each}}{{/if}} * @param {
|
|
19
|
-
* @returns { {{#if
|
|
17
|
+
{{#if (endpointParams endpoint includeFileParam=true)}}{{#each (endpointParams endpoint includeFileParam=true) as | endpointParam |}} * @param { {{endpointParam.type}} } object.{{endpointParam.name}} {{{endpointParamDescription endpointParam}}}
|
|
18
|
+
{{/each}}{{/if}} * @param { AppQueryOptions } options Query options
|
|
19
|
+
* @returns { UseQueryResult<{{#if endpoint.fileDownload}}AxiosResponse<{{/if}}{{{importedZodSchemaInferedType endpoint.response}}}{{#if endpoint.fileDownload}}>{{/if}}> } {{endpoint.responseDescription}}
|
|
20
|
+
* @statusCodes [{{commaSeparated endpoint.responseStatusCodes}}]
|
|
21
|
+
*/{{else if mutation}}
|
|
22
|
+
/**
|
|
23
|
+
* Mutation `{{queryName endpoint mutation=true}}`{{#if endpoint.summary}}{{#if endpoint.fileDownload}} - recommended when file should not be cached{{/if}}
|
|
24
|
+
* @summary {{addAsteriskAfterNewLine endpoint.summary}}{{/if}}{{#if endpoint.description}}
|
|
25
|
+
* @description {{addAsteriskAfterNewLine endpoint.description}}{{/if}}{{#if endpoint.acl}}
|
|
26
|
+
* @permission Requires `{{abilityFunctionName endpoint}}` ability {{/if}}
|
|
27
|
+
{{#if (endpointParams endpoint includeFileParam=true)}}{{#each (endpointParams endpoint includeFileParam=true) as | endpointParam |}} * @param { {{endpointParam.type}} } mutation.{{endpointParam.name}} {{{endpointParamDescription endpointParam}}}
|
|
28
|
+
{{/each}}{{/if}} * @param { AppMutationOptions{{#if hasInvalidateQueryOptions}} & {{invalidateQueryOptionsType}}{{/if}} } options Mutation options
|
|
29
|
+
* @returns { UseMutationResult<{{#if endpoint.fileDownload}}AxiosResponse<{{/if}}{{{importedZodSchemaInferedType endpoint.response}}}{{#if endpoint.fileDownload}}>{{/if}}> } {{endpoint.responseDescription}}
|
|
20
30
|
* @statusCodes [{{commaSeparated endpoint.responseStatusCodes}}]
|
|
21
31
|
*/{{/if}}
|
|
@@ -4,7 +4,7 @@ export const keys = {
|
|
|
4
4
|
{{endpointName endpoint}}: ({{{genEndpointParams endpoint}}}) => [...keys.all, "{{endpoint.path}}", {{{endpointArgs endpoint}}}] as const,
|
|
5
5
|
{{#if ../generateInfiniteQueries}}
|
|
6
6
|
{{#if (isInfiniteQuery endpoint)}}
|
|
7
|
-
{{endpointName endpoint}}Infinite: ({{{genEndpointParams endpoint
|
|
7
|
+
{{endpointName endpoint}}Infinite: ({{{genEndpointParams endpoint removePageParam=true}}}) => [...keys.all, "{{endpoint.path}}", "infinite", {{{endpointArgs endpoint removePageParam=true}}}] as const,
|
|
8
8
|
{{/if}}
|
|
9
9
|
{{/if}}
|
|
10
10
|
{{/each}}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{{! Js docs }}
|
|
2
|
-
{{{genQueryJsDocs endpoint
|
|
2
|
+
{{{genQueryJsDocs endpoint infiniteQuery=true}}}
|
|
3
3
|
{{! Infinite query definition}}
|
|
4
|
-
export const {{infiniteQueryName endpoint}} = <TData>({{#if (endpointParams endpoint)}}{ {{{endpointArgs endpoint
|
|
4
|
+
export const {{infiniteQueryName endpoint}} = <TData>({{#if (endpointParams endpoint)}}{ {{{endpointArgs endpoint removePageParam=true}}} }: { {{{genEndpointParams endpoint removePageParam=true}}} }, {{/if}}options?: AppInfiniteQueryOptions<typeof {{importedEndpointName endpoint}}, TData>{{#if hasAxiosRequestConfig}}, {{axiosRequestConfigName}}?: {{axiosRequestConfigType}}{{/if}}) => {
|
|
5
5
|
return {{infiniteQueryHook}}({
|
|
6
|
-
queryKey: keys.{{endpointName endpoint}}Infinite({{#if (endpointParams endpoint)}}{{{endpointArgs endpoint
|
|
7
|
-
queryFn: ({ pageParam }) => {{importedEndpointName endpoint}}({{{endpointArgs endpoint
|
|
6
|
+
queryKey: keys.{{endpointName endpoint}}Infinite({{#if (endpointParams endpoint)}}{{{endpointArgs endpoint removePageParam=true}}}{{/if}}),
|
|
7
|
+
queryFn: ({ pageParam }) => {{importedEndpointName endpoint}}({{{endpointArgs endpoint replacePageParam=true}}}{{#if hasAxiosRequestConfig}}, {{axiosRequestConfigName}}{{/if}}),
|
|
8
8
|
initialPageParam: 1,
|
|
9
9
|
getNextPageParam: ({ {{pageParamName}}, {{totalItemsName}}, {{limitParamName}}: limitParam }) => {
|
|
10
10
|
const pageParam = {{pageParamName}} ?? 1;
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
{{! Js docs }}
|
|
2
|
-
{{{genQueryJsDocs endpoint}}}
|
|
2
|
+
{{{genQueryJsDocs endpoint mutation=true}}}
|
|
3
3
|
{{! Mutation definition}}
|
|
4
|
-
export const {{queryName endpoint}} = (options?: AppMutationOptions<typeof {{importedEndpointName endpoint}}, { {{{genEndpointParams endpoint}}} }>{{#if hasInvalidateQueryOptions}} & {{invalidateQueryOptionsType}}{{/if}}{{#if hasAxiosRequestConfig}}, {{axiosRequestConfigName}}?: {{axiosRequestConfigType}}{{/if}}) => {
|
|
4
|
+
export const {{queryName endpoint mutation=true}} = (options?: AppMutationOptions<typeof {{importedEndpointName endpoint}}, { {{{genEndpointParams endpoint includeFileParam=true}}} }>{{#if hasInvalidateQueryOptions}} & {{invalidateQueryOptionsType}}{{/if}}{{#if hasAxiosRequestConfig}}, {{axiosRequestConfigName}}?: {{axiosRequestConfigType}}{{/if}}) => {
|
|
5
5
|
{{#if hasInvalidateQueryOptions}} const queryClient = useQueryClient();{{/if}}
|
|
6
6
|
|
|
7
7
|
return {{queryHook}}({
|
|
8
|
-
mutationFn: ({{#if (endpointParams endpoint)}} { {{{endpointArgs endpoint}}} } {{/if}}) => {{
|
|
8
|
+
mutationFn: {{#if endpoint.fileUpload}}async {{/if}}({{#if (endpointParams endpoint includeFileParam=true)}} { {{{endpointArgs endpoint includeFileParam=true}}} } {{/if}}) => {{#if endpoint.fileUpload}} {
|
|
9
|
+
const uploadInstructions = await{{/if}} {{importedEndpointName endpoint}}({{{endpointArgs endpoint}}}{{#if hasAxiosRequestConfig}}{{#if (endpointArgs endpoint)}}, {{/if}}{{axiosRequestConfigName}}{{/if}}){{#if endpoint.fileUpload}};
|
|
10
|
+
|
|
11
|
+
if (file && uploadInstructions.url) {
|
|
12
|
+
await axios.put(uploadInstructions.url, file, {
|
|
13
|
+
headers: {
|
|
14
|
+
"Content-Type": file.type,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
return uploadInstructions;
|
|
20
|
+
}{{/if}},
|
|
9
21
|
...options, {{#if hasInvalidateQueryOptions}}
|
|
10
22
|
onSuccess: (...args) => {
|
|
11
23
|
{{! Invalidation }}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{{! Js docs }}
|
|
2
|
-
{{{genQueryJsDocs endpoint}}}
|
|
2
|
+
{{{genQueryJsDocs endpoint query=true}}}
|
|
3
3
|
{{! Query definition}}
|
|
4
4
|
export const {{queryName endpoint}} = <TData>({{#if (endpointParams endpoint)}}{ {{{endpointArgs endpoint}}} }: { {{{genEndpointParams endpoint}}} }, {{/if}}options?: AppQueryOptions<typeof {{importedEndpointName endpoint}}, TData>{{#if hasAxiosRequestConfig}}, {{axiosRequestConfigName}}?: {{axiosRequestConfigType}}{{/if}}) => {
|
|
5
5
|
return {{queryHook}}({
|
|
6
6
|
queryKey: keys.{{endpointName endpoint}}({{#if (endpointParams endpoint)}}{{{endpointArgs endpoint}}}{{/if}}),
|
|
7
|
-
queryFn: {{#if
|
|
7
|
+
queryFn: {{#if hasQueryFn}}() => {{importedEndpointName endpoint}}({{{endpointArgs endpoint}}}{{#if hasAxiosRequestConfig}}{{#if (endpointArgs endpoint)}}, {{/if}}{{axiosRequestConfigName}}{{/if}}){{else}}{{importedEndpointName endpoint}}{{/if}},
|
|
8
8
|
...options,
|
|
9
9
|
});
|
|
10
10
|
};
|
|
@@ -32,11 +32,9 @@ export const {{queriesModuleName}} = "{{namespace}}";
|
|
|
32
32
|
{{#each endpoints as | endpoint |}}
|
|
33
33
|
{{{genQuery endpoint}}}
|
|
34
34
|
|
|
35
|
-
{{
|
|
36
|
-
|
|
35
|
+
{{{genMutation endpoint}}}
|
|
36
|
+
|
|
37
37
|
{{{genInfiniteQuery endpoint}}}
|
|
38
|
-
{{/if}}
|
|
39
|
-
{{/if}}
|
|
40
38
|
|
|
41
39
|
{{/each}}
|
|
42
40
|
|
|
@@ -15,7 +15,4 @@ export type QueriesModuleType = keyof typeof QueriesModuleKeysAll;
|
|
|
15
15
|
export const QueriesModule = {
|
|
16
16
|
{{#if includeNamespace}}{{#each modules as | module |}} {{module.tag}}: {{module.namespace}}.{{../queriesModuleName}}, {{/each}}
|
|
17
17
|
{{else}}{{#each modules as | module |}} {{module.tag}}: {{tagModuleName module.tag}}, {{/each}}{{/if}}
|
|
18
|
-
} satisfies Record<string, QueriesModuleType>;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
18
|
+
} satisfies Record<string, QueriesModuleType>;
|