wormajs 0.2.5 → 0.2.6

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.
Files changed (86) hide show
  1. package/dist/constant.js +20 -20
  2. package/dist/core/loader/astLoader/generates/tuple.js +1 -1
  3. package/dist/core/loader/astLoader/normalize/index.js +1 -1
  4. package/dist/core/loader/astLoader/normalize/normalizer.js +8 -8
  5. package/dist/core/loader/astLoader/normalize/rules/mergeAnyOf.js +9 -8
  6. package/dist/core/loader/astLoader/normalize/rules/normalizeCombiningKeywords.js +6 -6
  7. package/dist/core/loader/astLoader/normalize/rules/normalizeNullType.js +1 -1
  8. package/dist/core/loader/astLoader/parsers/const.js +4 -4
  9. package/dist/core/loader/astLoader/parsers/enum.js +3 -3
  10. package/dist/core/loader/astLoader/parsers/forward/array.js +3 -3
  11. package/dist/core/loader/astLoader/parsers/forward/const.js +3 -3
  12. package/dist/core/loader/astLoader/parsers/forward/enum.js +2 -2
  13. package/dist/core/loader/astLoader/parsers/forward/group.js +4 -4
  14. package/dist/core/loader/astLoader/parsers/forward/object.js +4 -4
  15. package/dist/core/loader/astLoader/parsers/forward/tuple.js +3 -3
  16. package/dist/core/loader/astLoader/parsers/group.js +1 -1
  17. package/dist/core/loader/astLoader/parsers/tuple.js +2 -2
  18. package/dist/core/loader/standardLoader/helper.js +1 -1
  19. package/dist/core/parser/templateParser/helper.js +5 -5
  20. package/dist/core/parser/templateParser/index.js +5 -5
  21. package/dist/functions/wormaJson.js +2 -2
  22. package/dist/helper/config/ConfigManager.js +10 -10
  23. package/dist/helper/config/zType.js +1 -1
  24. package/dist/helper/document/index.js +11 -11
  25. package/dist/helper/logger/index.js +1 -1
  26. package/dist/helper/template/index.js +9 -9
  27. package/dist/plugins/presets/aiDoc.js +1 -1
  28. package/dist/plugins/presets/apifox.js +2 -2
  29. package/dist/plugins/presets/payloadModifier/index.js +3 -0
  30. package/dist/plugins/presets/rename.js +5 -0
  31. package/dist/readConfig.js +9 -9
  32. package/dist/template/index.js +14 -14
  33. package/dist/template/presets/ai-doc/SKILL.md.handlebars +3 -3
  34. package/dist/template/presets/alova/common/helper.cjs.handlebars +18 -3
  35. package/dist/template/presets/alova/common/services/#index.cjs.handlebars +2 -2
  36. package/dist/template/presets/alova/common/services/{tag}.cjs.handlebars +7 -9
  37. package/dist/template/presets/alova/common/services/{tag}.d.cts.handlebars +5 -7
  38. package/dist/template/presets/alova/module/helper.js.handlebars +17 -2
  39. package/dist/template/presets/alova/module/services/#index.js.handlebars +1 -1
  40. package/dist/template/presets/alova/module/services/{tag}.d.ts.handlebars +5 -7
  41. package/dist/template/presets/alova/module/services/{tag}.js.handlebars +6 -6
  42. package/dist/template/presets/alova/partials/comment.handlebars +11 -2
  43. package/dist/template/presets/alova/partials/extract-responded.handlebars +3 -3
  44. package/dist/template/presets/alova/partials/typed-body.handlebars +3 -1
  45. package/dist/template/presets/alova/typescript/helper.ts.handlebars +11 -6
  46. package/dist/template/presets/alova/typescript/services/#index.ts.handlebars +1 -1
  47. package/dist/template/presets/alova/typescript/services/{tag}.ts.handlebars +6 -8
  48. package/dist/template/presets/alova-globals/partials/comment.handlebars +11 -2
  49. package/dist/template/presets/alova-globals/partials/globals-d-ts.handlebars +1 -1
  50. package/dist/template/presets/axios/common/helper.cjs.handlebars +18 -3
  51. package/dist/template/presets/axios/common/services/#index.cjs.handlebars +2 -2
  52. package/dist/template/presets/axios/common/services/{tag}.cjs.handlebars +25 -28
  53. package/dist/template/presets/axios/common/services/{tag}.d.cts.handlebars +1 -3
  54. package/dist/template/presets/axios/module/helper.js.handlebars +17 -2
  55. package/dist/template/presets/axios/module/services/#index.js.handlebars +2 -2
  56. package/dist/template/presets/axios/module/services/{tag}.d.ts.handlebars +1 -3
  57. package/dist/template/presets/axios/module/services/{tag}.js.handlebars +20 -20
  58. package/dist/template/presets/axios/partials/comment.handlebars +11 -2
  59. package/dist/template/presets/axios/typescript/helper.ts.handlebars +11 -6
  60. package/dist/template/presets/axios/typescript/services/#index.ts.handlebars +1 -1
  61. package/dist/template/presets/axios/typescript/services/{tag}.ts.handlebars +6 -8
  62. package/dist/template/presets/fetch/common/helper.cjs.handlebars +18 -3
  63. package/dist/template/presets/fetch/common/services/#index.cjs.handlebars +2 -2
  64. package/dist/template/presets/fetch/common/services/{tag}.cjs.handlebars +6 -9
  65. package/dist/template/presets/fetch/common/services/{tag}.d.cts.handlebars +1 -3
  66. package/dist/template/presets/fetch/module/helper.js.handlebars +17 -2
  67. package/dist/template/presets/fetch/module/services/#index.js.handlebars +2 -2
  68. package/dist/template/presets/fetch/module/services/{tag}.d.ts.handlebars +1 -3
  69. package/dist/template/presets/fetch/module/services/{tag}.js.handlebars +6 -6
  70. package/dist/template/presets/fetch/partials/comment.handlebars +11 -2
  71. package/dist/template/presets/fetch/typescript/helper.ts.handlebars +11 -6
  72. package/dist/template/presets/fetch/typescript/services/#index.ts.handlebars +1 -1
  73. package/dist/template/presets/fetch/typescript/services/{tag}.ts.handlebars +6 -8
  74. package/dist/template/presets/ky/module/helper.js.handlebars +17 -2
  75. package/dist/template/presets/ky/module/services/#index.js.handlebars +2 -2
  76. package/dist/template/presets/ky/module/services/{tag}.d.ts.handlebars +1 -3
  77. package/dist/template/presets/ky/module/services/{tag}.js.handlebars +6 -6
  78. package/dist/template/presets/ky/partials/comment.handlebars +11 -2
  79. package/dist/template/presets/ky/typescript/helper.ts.handlebars +11 -6
  80. package/dist/template/presets/ky/typescript/services/#index.ts.handlebars +1 -1
  81. package/dist/template/presets/ky/typescript/services/{tag}.ts.handlebars +6 -8
  82. package/dist/utils/base.js +9 -9
  83. package/dist/utils/openapi.js +9 -9
  84. package/package.json +1 -1
  85. package/typings/index.d.ts +1 -1
  86. package/typings/plugins.d.ts +30 -19
@@ -1,15 +1,14 @@
1
1
  {{> comment}}
2
2
  import { alovaInstance } from '../index';
3
- import { buildPayload } from '../helper';
3
+ import { buildPayload, resolveTagDefaultConfig } from '../helper';
4
+ import * as defaultConfig from '.';
4
5
  import type { Alova2Method, Alova2MethodConfig } from '../typed';
5
- {{#each tagedApis}}
6
- import { {{{tagName}}}DefaultConfig } from '.';
7
- {{/each}}
8
6
  import type * as ComponentTypes from '../components';
9
7
 
10
- {{#each tagedApis}}
8
+ const {{{currentTag.tag}}}DefaultConfig = resolveTagDefaultConfig(defaultConfig, '{{{currentTag.tag}}}DefaultConfig');
9
+
11
10
  {{> extract-responded}}
12
- {{#each apis}}
11
+ {{#each currentTag.apis}}
13
12
 
14
13
  interface {{{name}}}ExtraConfig {
15
14
  {{#if pathParameters}}pathParams: {{addNamespace pathParameters @root.componentNames}};
@@ -19,7 +18,7 @@ interface {{{name}}}ExtraConfig {
19
18
  }
20
19
  {{> api-jsdoc}}
21
20
  export function {{{name}}}<Config extends Alova2MethodConfig<{{addNamespace response @root.componentNames}}> & {{{name}}}ExtraConfig>(config{{#or pathParameters queryParameters requestBody }}{{else}}?{{/or}}: Config): Alova2Method<ExtractResponded<Config, '{{{name}}}', {{addNamespace response @root.componentNames}}>> {
22
- const { url, data, mergedConfig } = buildPayload('{{{path}}}', {{{tag}}}DefaultConfig, {{{name}}}.name, config);
21
+ const { url, data, mergedConfig } = buildPayload('{{{path}}}', {{../currentTag.tag}}DefaultConfig, {{{name}}}.name, config);
23
22
  return alovaInstance.Request<ExtractResponded<Config, '{{{name}}}', {{addNamespace response @root.componentNames}}>>({
24
23
  ...mergedConfig,
25
24
  url,
@@ -32,4 +31,3 @@ export function {{{name}}}<Config extends Alova2MethodConfig<{{addNamespace resp
32
31
  }
33
32
 
34
33
  {{/each}}
35
- {{/each}}
@@ -1,5 +1,9 @@
1
- /* tslint:disable */
2
1
  /* eslint-disable */
2
+ /* biome-ignore-all */
3
+ /* stylelint-disable */
4
+ /* editorconfig-checker-disable-file */
5
+ /* oxlint-disable */
6
+ /* oxcformat-ignore */
3
7
  /**
4
8
  * {{title}} - version {{version}}
5
9
  *
@@ -13,7 +17,12 @@
13
17
  *
14
18
  * NOTE: This file is auto generated by the alova's vscode plugin.
15
19
  *
16
- * https://alova.js.org/devtools/vscode
20
+ * https://worma.js.org
17
21
  *
22
+ {{#if noOverwrite}}
23
+ * NOTE: This file is generated only once and will NOT be overwritten on regeneration.
24
+ * You can safely customize it to fit your needs.
25
+ {{else}}
18
26
  * **Do not edit the file manually.**
27
+ {{/if}}
19
28
  */
@@ -79,7 +79,7 @@ type Alova2Method<
79
79
  declare global {
80
80
  interface {{{config.global}}} {
81
81
  {{#each tagedApis}}
82
- {{{tagName}}}: {
82
+ {{{tag}}}: {
83
83
  {{#apis}}
84
84
  /**
85
85
  * ---
@@ -1,4 +1,5 @@
1
1
  {{> comment}}
2
+
2
3
  function buildPayload(url, defaultConfig, apiName, config) {
3
4
  const mergedConfig = { ...defaultConfig[apiName], ...config };
4
5
  const pathParams = mergedConfig.pathParams;
@@ -25,7 +26,7 @@ function buildPayload(url, defaultConfig, apiName, config) {
25
26
  /**
26
27
  * @typedef {{#raw "{{" }}{{/raw}}
27
28
  {{#each tagedApis}}
28
- * {{{tagName}}}: typeof import('./services/{{{tagName}}}.cjs')
29
+ * {{{tag}}}: typeof import('./services/{{{tag}}}.cjs')
29
30
  {{/each}}
30
31
  * {{#raw "}}" }}{{/raw}} ServicesMap
31
32
  */
@@ -38,6 +39,20 @@ function buildPayload(url, defaultConfig, apiName, config) {
38
39
  * @param {ConfigMap} configMap
39
40
  * @returns {ConfigMap}
40
41
  */
41
- const setDefaultConfig = (_, configMap) => configMap;
42
+ function setDefaultConfig(_, configMap) {
43
+ return configMap;
44
+ }
45
+
46
+ /**
47
+ * @template {object} C
48
+ * @template {string} Key
49
+ * @param {C} defaultConfig
50
+ * @param {Key} tagName
51
+ * @returns {C extends { [K in Key]: infer V } ? V : {}}
52
+ */
53
+ function resolveTagDefaultConfig(defaultConfig, tagName) {
54
+ const raw = defaultConfig[tagName];
55
+ return raw || {};
56
+ }
42
57
 
43
- module.exports = { buildPayload, setDefaultConfig };
58
+ module.exports = { buildPayload, setDefaultConfig, resolveTagDefaultConfig };
@@ -2,9 +2,9 @@
2
2
  const { setDefaultConfig } = require('../helper.cjs');
3
3
 
4
4
  {{#each tagedApis}}
5
- const {{{tagName}}}DefaultConfig = setDefaultConfig('{{{tagName}}}', {});
5
+ const {{{tag}}}DefaultConfig = setDefaultConfig('{{{tag}}}', {});
6
6
  {{/each}}
7
7
 
8
8
  {{#each tagedApis}}
9
- module.exports.{{{tagName}}}DefaultConfig = {{{tagName}}}DefaultConfig;
9
+ module.exports.{{{tag}}}DefaultConfig = {{{tag}}}DefaultConfig;
10
10
  {{/each}}
@@ -1,28 +1,25 @@
1
- {{> comment}}
2
- const { axiosInstance } = require('../index.cjs');
3
- const { buildPayload } = require('../helper.cjs');
4
- const _index = require('./index.cjs');
5
-
6
-
7
- {{#each tagedApis}}
8
- {{#each apis}}
9
- {{> api-jsdoc}}
10
- function {{{name}}}(config = {}) {
11
- const { url, mergedConfig } = buildPayload('{{{path}}}', _index.{{{tag}}}DefaultConfig, {{{name}}}.name, config);
12
- return axiosInstance({
13
- method: '{{method}}',
14
- url,
15
- ...mergedConfig,{{#if (eq response "Blob")}}
16
- responseType: 'blob',{{/if}}
17
- }){{#if (eq response "Blob")}}.then(data => data instanceof Blob ? data : new Blob([data])){{/if}};
18
- }
19
-
20
- {{/each}}
21
- {{/each}}
22
- module.exports = {
23
- {{#each tagedApis}}
24
- {{#each apis}}
25
- {{{name}}},
26
- {{/each}}
27
- {{/each}}
28
- };
1
+ {{> comment}}
2
+ const { axiosInstance } = require('../index.cjs');
3
+ const { buildPayload, resolveTagDefaultConfig } = require('../helper.cjs');
4
+ const defaultConfig = require('./index.cjs');
5
+
6
+ const {{{currentTag.tag}}}DefaultConfig = resolveTagDefaultConfig(defaultConfig, '{{{currentTag.tag}}}DefaultConfig');
7
+
8
+ {{#each currentTag.apis}}
9
+ {{> api-jsdoc}}
10
+ function {{{name}}}(config = {}) {
11
+ const { url, mergedConfig } = buildPayload('{{{path}}}', {{../currentTag.tag}}DefaultConfig, {{{name}}}.name, config);
12
+ return axiosInstance({
13
+ method: '{{method}}',
14
+ url,
15
+ ...mergedConfig,{{#if (eq response "Blob")}}
16
+ responseType: 'blob',{{/if}}
17
+ }){{#if (eq response "Blob")}}.then(data => data instanceof Blob ? data : new Blob([data])){{/if}};
18
+ }
19
+
20
+ {{/each}}
21
+ module.exports = {
22
+ {{#each currentTag.apis}}
23
+ {{{name}}},
24
+ {{/each}}
25
+ };
@@ -1,11 +1,9 @@
1
1
  import type { AxiosRequestConfig } from 'axios';
2
2
  import type * as ComponentTypes from '../components.d.cts';
3
3
 
4
- {{#each tagedApis}}
5
- {{#each apis}}
4
+ {{#each currentTag.apis}}
6
5
  {{> dts-types}}
7
6
  {{> api-jsdoc}}
8
7
  {{> dts-fn-declare}}
9
8
 
10
9
  {{/each}}
11
- {{/each}}
@@ -1,4 +1,5 @@
1
1
  {{> comment}}
2
+
2
3
  export function buildPayload(url, defaultConfig, apiName, config) {
3
4
  const mergedConfig = { ...defaultConfig[apiName], ...config };
4
5
  const pathParams = mergedConfig.pathParams;
@@ -25,7 +26,7 @@ export function buildPayload(url, defaultConfig, apiName, config) {
25
26
  /**
26
27
  * @typedef {{#raw "{{" }}{{/raw}}
27
28
  {{#each tagedApis}}
28
- * {{{tagName}}}: typeof import('./services/{{{tagName}}}')
29
+ * {{{tag}}}: typeof import('./services/{{{tag}}}')
29
30
  {{/each}}
30
31
  * {{#raw "}}" }}{{/raw}} ServicesMap
31
32
  */
@@ -38,4 +39,18 @@ export function buildPayload(url, defaultConfig, apiName, config) {
38
39
  * @param {ConfigMap} configMap
39
40
  * @returns {ConfigMap}
40
41
  */
41
- export const setDefaultConfig = (_, configMap) => configMap;
42
+ export function setDefaultConfig(_, configMap) {
43
+ return configMap;
44
+ }
45
+
46
+ /**
47
+ * @template {object} C
48
+ * @template {string} Key
49
+ * @param {C} defaultConfig
50
+ * @param {Key} tagName
51
+ * @returns {C extends { [K in Key]: infer V } ? V : {}}
52
+ */
53
+ export function resolveTagDefaultConfig(defaultConfig, tagName) {
54
+ const raw = defaultConfig[tagName];
55
+ return raw || {};
56
+ }
@@ -1,6 +1,6 @@
1
1
  {{> comment}}
2
- import { setDefaultConfig } from '../helper';
2
+ import { setDefaultConfig } from '../helper.js';
3
3
 
4
4
  {{#each tagedApis}}
5
- export const {{{tagName}}}DefaultConfig = setDefaultConfig('{{{tagName}}}', {});
5
+ export const {{{tag}}}DefaultConfig = setDefaultConfig('{{{tag}}}', {});
6
6
  {{/each}}
@@ -1,11 +1,9 @@
1
1
  import type { AxiosRequestConfig } from 'axios';
2
2
  import type * as ComponentTypes from '../components';
3
3
 
4
- {{#each tagedApis}}
5
- {{#each apis}}
4
+ {{#each currentTag.apis}}
6
5
  {{> dts-types}}
7
6
  {{> api-jsdoc}}
8
7
  {{> dts-fn-declare}}
9
8
 
10
9
  {{/each}}
11
- {{/each}}
@@ -1,20 +1,20 @@
1
- {{> comment}}
2
- import { axiosInstance } from '../index.js';
3
- import { buildPayload } from '../helper.js';
4
- import { {{currentTag.tagName}}DefaultConfig } from './index.js';
5
-
6
- {{#each tagedApis}}
7
- {{#each apis}}
8
- {{> api-jsdoc}}
9
- export function {{{name}}}(config = {}) {
10
- const { url, mergedConfig } = buildPayload('{{{path}}}', {{{tag}}}DefaultConfig, {{{name}}}.name, config);
11
- return axiosInstance({
12
- method: '{{method}}',
13
- url,
14
- ...mergedConfig,{{#if (eq response "Blob")}}
15
- responseType: 'blob',{{/if}}
16
- }){{#if (eq response "Blob")}}.then(data => data instanceof Blob ? data : new Blob([data])){{/if}};
17
- }
18
-
19
- {{/each}}
20
- {{/each}}
1
+ {{> comment}}
2
+ import { axiosInstance } from '../index.js';
3
+ import { buildPayload, resolveTagDefaultConfig } from '../helper.js';
4
+ import * as defaultConfig from './index.js';
5
+
6
+ const {{currentTag.tag}}DefaultConfig = resolveTagDefaultConfig(defaultConfig, '{{currentTag.tag}}DefaultConfig');
7
+
8
+ {{#each currentTag.apis}}
9
+ {{> api-jsdoc}}
10
+ export function {{{name}}}(config = {}) {
11
+ const { url, mergedConfig } = buildPayload('{{{path}}}', {{../currentTag.tag}}DefaultConfig, {{{name}}}.name, config);
12
+ return axiosInstance({
13
+ method: '{{method}}',
14
+ url,
15
+ ...mergedConfig,{{#if (eq response "Blob")}}
16
+ responseType: 'blob',{{/if}}
17
+ }){{#if (eq response "Blob")}}.then(data => data instanceof Blob ? data : new Blob([data])){{/if}};
18
+ }
19
+
20
+ {{/each}}
@@ -1,5 +1,9 @@
1
- /* tslint:disable */
2
1
  /* eslint-disable */
2
+ /* biome-ignore-all */
3
+ /* stylelint-disable */
4
+ /* editorconfig-checker-disable-file */
5
+ /* oxlint-disable */
6
+ /* oxcformat-ignore */
3
7
  /**
4
8
  * {{title}} - version {{version}}
5
9
  *
@@ -13,7 +17,12 @@
13
17
  *
14
18
  * NOTE: This file is auto generated by the alova's vscode plugin.
15
19
  *
16
- * https://alova.js.org/devtools/vscode
20
+ * https://worma.js.org
17
21
  *
22
+ {{#if noOverwrite}}
23
+ * NOTE: This file is generated only once and will NOT be overwritten on regeneration.
24
+ * You can safely customize it to fit your needs.
25
+ {{else}}
18
26
  * **Do not edit the file manually.**
27
+ {{/if}}
19
28
  */
@@ -1,4 +1,5 @@
1
1
  {{> comment}}
2
+
2
3
  export function buildPayload(url: string, defaultConfig: Record<string, any>, apiName: string, config: any) {
3
4
  const mergedConfig: any = { ...defaultConfig[apiName], ...config };
4
5
  const pathParams = mergedConfig.pathParams;
@@ -24,15 +25,19 @@ export function buildPayload(url: string, defaultConfig: Record<string, any>, ap
24
25
 
25
26
  export type ServicesMap = {
26
27
  {{#each tagedApis}}
27
- {{{tagName}}}: typeof import('./services/{{{tagName}}}');
28
+ {{{tag}}}: typeof import('./services/{{{tag}}}');
28
29
  {{/each}}
29
30
  };
30
31
 
31
- export const setDefaultConfig = <
32
+ export function setDefaultConfig<
32
33
  T extends keyof ServicesMap,
33
34
  TagedMap extends Record<string, (config: any) => any> = ServicesMap[T],
34
35
  ConfigMap = { [K in keyof TagedMap]?: Partial<Parameters<TagedMap[K]>[0]> }
35
- >(
36
- _: T,
37
- configMap: ConfigMap
38
- ) => configMap;
36
+ >(_: T, configMap: ConfigMap): ConfigMap {
37
+ return configMap;
38
+ }
39
+
40
+ export function resolveTagDefaultConfig<C extends object, Key extends string>(defaultConfig: C, tagName: Key) {
41
+ const raw = (defaultConfig as any)[tagName];
42
+ return (raw || {}) as C extends { [K in Key]: infer V } ? V : {};
43
+ }
@@ -2,5 +2,5 @@
2
2
  import { setDefaultConfig } from '../helper';
3
3
 
4
4
  {{#each tagedApis}}
5
- export const {{{tagName}}}DefaultConfig = setDefaultConfig('{{{tagName}}}', {});
5
+ export const {{{tag}}}DefaultConfig = setDefaultConfig('{{{tag}}}', {});
6
6
  {{/each}}
@@ -1,14 +1,13 @@
1
1
  {{> comment}}
2
2
  import type { AxiosRequestConfig } from 'axios';
3
3
  import { axiosInstance } from '../index';
4
- import { buildPayload } from '../helper';
4
+ import { buildPayload, resolveTagDefaultConfig } from '../helper';
5
+ import * as defaultConfig from './index';
5
6
  import type * as ComponentTypes from '../components';
6
- {{#each tagedApis}}
7
- import { {{{tagName}}}DefaultConfig } from '.';
8
- {{/each}}
9
7
 
10
- {{#each tagedApis}}
11
- {{#each apis}}
8
+ const {{{currentTag.tag}}}DefaultConfig = resolveTagDefaultConfig(defaultConfig, '{{{currentTag.tag}}}DefaultConfig');
9
+
10
+ {{#each currentTag.apis}}
12
11
  type {{{name}}}Response = {{addNamespace response @root.componentNames}};
13
12
  type {{{name}}}ExtraConfig = Omit<AxiosRequestConfig, 'data' | 'params'> & {
14
13
  {{#if pathParameters}}pathParams: {{addNamespace pathParameters @root.componentNames}};
@@ -18,7 +17,7 @@ type {{{name}}}ExtraConfig = Omit<AxiosRequestConfig, 'data' | 'params'> & {
18
17
  };
19
18
  {{> api-jsdoc}}
20
19
  export function {{{name}}}(config{{#or pathParameters queryParameters requestBody }}{{else}}?{{/or}}: {{{name}}}ExtraConfig): Promise<{{{name}}}Response> {
21
- const { url, mergedConfig } = buildPayload('{{{path}}}', {{{tag}}}DefaultConfig, {{{name}}}.name, config);
20
+ const { url, mergedConfig } = buildPayload('{{{path}}}', {{../currentTag.tag}}DefaultConfig, {{{name}}}.name, config);
22
21
  return axiosInstance<unknown, {{{name}}}Response>({
23
22
  method: '{{method}}',
24
23
  url,
@@ -28,4 +27,3 @@ export function {{{name}}}(config{{#or pathParameters queryParameters requestBod
28
27
  }
29
28
 
30
29
  {{/each}}
31
- {{/each}}
@@ -1,4 +1,5 @@
1
1
  {{> comment}}
2
+
2
3
  function buildPayload(url, defaultConfig, apiName, config) {
3
4
  const mergedConfig = { ...defaultConfig[apiName], ...config };
4
5
  const pathParams = mergedConfig.pathParams;
@@ -25,7 +26,7 @@ function buildPayload(url, defaultConfig, apiName, config) {
25
26
  /**
26
27
  * @typedef {{#raw "{{" }}{{/raw}}
27
28
  {{#each tagedApis}}
28
- * {{{tagName}}}: typeof import('./services/{{{tagName}}}.cjs')
29
+ * {{{tag}}}: typeof import('./services/{{{tag}}}.cjs')
29
30
  {{/each}}
30
31
  * {{#raw "}}" }}{{/raw}} ServicesMap
31
32
  */
@@ -38,6 +39,20 @@ function buildPayload(url, defaultConfig, apiName, config) {
38
39
  * @param {ConfigMap} configMap
39
40
  * @returns {ConfigMap}
40
41
  */
41
- const setDefaultConfig = (_, configMap) => configMap;
42
+ function setDefaultConfig(_, configMap) {
43
+ return configMap;
44
+ }
45
+
46
+ /**
47
+ * @template {object} C
48
+ * @template {string} Key
49
+ * @param {C} defaultConfig
50
+ * @param {Key} tagName
51
+ * @returns {C extends { [K in Key]: infer V } ? V : {}}
52
+ */
53
+ function resolveTagDefaultConfig(defaultConfig, tagName) {
54
+ const raw = defaultConfig[tagName];
55
+ return raw || {};
56
+ }
42
57
 
43
- module.exports = { buildPayload, setDefaultConfig };
58
+ module.exports = { buildPayload, setDefaultConfig, resolveTagDefaultConfig };
@@ -2,9 +2,9 @@
2
2
  const { setDefaultConfig } = require('../helper.cjs');
3
3
 
4
4
  {{#each tagedApis}}
5
- const {{{tagName}}}DefaultConfig = setDefaultConfig('{{{tagName}}}', {});
5
+ const {{{tag}}}DefaultConfig = setDefaultConfig('{{{tag}}}', {});
6
6
  {{/each}}
7
7
 
8
8
  {{#each tagedApis}}
9
- module.exports.{{{tagName}}}DefaultConfig = {{{tagName}}}DefaultConfig;
9
+ module.exports.{{{tag}}}DefaultConfig = {{{tag}}}DefaultConfig;
10
10
  {{/each}}
@@ -1,23 +1,20 @@
1
1
  {{> comment}}
2
2
  const { fetchClient } = require('../index.cjs');
3
- const { buildPayload } = require('../helper.cjs');
4
- const _index = require('./index.cjs');
3
+ const { buildPayload, resolveTagDefaultConfig } = require('../helper.cjs');
4
+ const defaultConfig = require('./index.cjs');
5
5
 
6
+ const {{{currentTag.tag}}}DefaultConfig = resolveTagDefaultConfig(defaultConfig, '{{{currentTag.tag}}}DefaultConfig');
6
7
 
7
- {{#each tagedApis}}
8
- {{#each apis}}
8
+ {{#each currentTag.apis}}
9
9
  {{> api-jsdoc}}
10
10
  async function {{{name}}}(config = {}) {
11
- const { url, mergedConfig } = buildPayload('{{{path}}}', _index.{{{tag}}}DefaultConfig, {{{name}}}.name, config);
11
+ const { url, mergedConfig } = buildPayload('{{{path}}}', {{../currentTag.tag}}DefaultConfig, {{{name}}}.name, config);
12
12
  return fetchClient.request(url, { method: '{{method}}', ...mergedConfig{{#if (eq response "Blob")}}, blob: true{{/if}} });
13
13
  }
14
14
 
15
- {{/each}}
16
15
  {{/each}}
17
16
  module.exports = {
18
- {{#each tagedApis}}
19
- {{#each apis}}
17
+ {{#each currentTag.apis}}
20
18
  {{{name}}},
21
19
  {{/each}}
22
- {{/each}}
23
20
  };
@@ -1,10 +1,8 @@
1
1
  import type * as ComponentTypes from '../components.d.cts';
2
2
 
3
- {{#each tagedApis}}
4
- {{#each apis}}
3
+ {{#each currentTag.apis}}
5
4
  {{> dts-types}}
6
5
  {{> api-jsdoc}}
7
6
  {{> dts-fn-declare}}
8
7
 
9
8
  {{/each}}
10
- {{/each}}
@@ -1,4 +1,5 @@
1
1
  {{> comment}}
2
+
2
3
  export function buildPayload(url, defaultConfig, apiName, config) {
3
4
  const mergedConfig = { ...defaultConfig[apiName], ...config };
4
5
  const pathParams = mergedConfig.pathParams;
@@ -25,7 +26,7 @@ export function buildPayload(url, defaultConfig, apiName, config) {
25
26
  /**
26
27
  * @typedef {{#raw "{{" }}{{/raw}}
27
28
  {{#each tagedApis}}
28
- * {{{tagName}}}: typeof import('./services/{{{tagName}}}')
29
+ * {{{tag}}}: typeof import('./services/{{{tag}}}')
29
30
  {{/each}}
30
31
  * {{#raw "}}" }}{{/raw}} ServicesMap
31
32
  */
@@ -38,4 +39,18 @@ export function buildPayload(url, defaultConfig, apiName, config) {
38
39
  * @param {ConfigMap} configMap
39
40
  * @returns {ConfigMap}
40
41
  */
41
- export const setDefaultConfig = (_, configMap) => configMap;
42
+ export function setDefaultConfig(_, configMap) {
43
+ return configMap;
44
+ }
45
+
46
+ /**
47
+ * @template {object} C
48
+ * @template {string} Key
49
+ * @param {C} defaultConfig
50
+ * @param {Key} tagName
51
+ * @returns {C extends { [K in Key]: infer V } ? V : {}}
52
+ */
53
+ export function resolveTagDefaultConfig(defaultConfig, tagName) {
54
+ const raw = defaultConfig[tagName];
55
+ return raw || {};
56
+ }
@@ -1,6 +1,6 @@
1
1
  {{> comment}}
2
- import { setDefaultConfig } from '../helper';
2
+ import { setDefaultConfig } from '../helper.js';
3
3
 
4
4
  {{#each tagedApis}}
5
- export const {{{tagName}}}DefaultConfig = setDefaultConfig('{{{tagName}}}', {});
5
+ export const {{{tag}}}DefaultConfig = setDefaultConfig('{{{tag}}}', {});
6
6
  {{/each}}
@@ -1,10 +1,8 @@
1
1
  import type * as ComponentTypes from '../components';
2
2
 
3
- {{#each tagedApis}}
4
- {{#each apis}}
3
+ {{#each currentTag.apis}}
5
4
  {{> dts-types}}
6
5
  {{> api-jsdoc}}
7
6
  {{> dts-fn-declare}}
8
7
 
9
8
  {{/each}}
10
- {{/each}}
@@ -1,15 +1,15 @@
1
1
  {{> comment}}
2
2
  import { fetchClient } from '../index.js';
3
- import { buildPayload } from '../helper.js';
4
- import { {{currentTag.tagName}}DefaultConfig } from './index.js';
3
+ import { buildPayload, resolveTagDefaultConfig } from '../helper.js';
4
+ import * as defaultConfig from './index.js';
5
5
 
6
- {{#each tagedApis}}
7
- {{#each apis}}
6
+ const {{currentTag.tag}}DefaultConfig = resolveTagDefaultConfig(defaultConfig, '{{currentTag.tag}}DefaultConfig');
7
+
8
+ {{#each currentTag.apis}}
8
9
  {{> api-jsdoc}}
9
10
  export async function {{{name}}}(config = {}) {
10
- const { url, mergedConfig } = buildPayload('{{{path}}}', {{{tag}}}DefaultConfig, {{{name}}}.name, config);
11
+ const { url, mergedConfig } = buildPayload('{{{path}}}', {{../currentTag.tag}}DefaultConfig, {{{name}}}.name, config);
11
12
  return fetchClient.request(url, { method: '{{method}}', ...mergedConfig{{#if (eq response "Blob")}}, blob: true{{/if}} });
12
13
  }
13
14
 
14
15
  {{/each}}
15
- {{/each}}
@@ -1,5 +1,9 @@
1
- /* tslint:disable */
2
1
  /* eslint-disable */
2
+ /* biome-ignore-all */
3
+ /* stylelint-disable */
4
+ /* editorconfig-checker-disable-file */
5
+ /* oxlint-disable */
6
+ /* oxcformat-ignore */
3
7
  /**
4
8
  * {{title}} - version {{version}}
5
9
  *
@@ -13,7 +17,12 @@
13
17
  *
14
18
  * NOTE: This file is auto generated by the alova's vscode plugin.
15
19
  *
16
- * https://alova.js.org/devtools/vscode
20
+ * https://worma.js.org
17
21
  *
22
+ {{#if noOverwrite}}
23
+ * NOTE: This file is generated only once and will NOT be overwritten on regeneration.
24
+ * You can safely customize it to fit your needs.
25
+ {{else}}
18
26
  * **Do not edit the file manually.**
27
+ {{/if}}
19
28
  */
@@ -1,4 +1,5 @@
1
1
  {{> comment}}
2
+
2
3
  export function buildPayload(url: string, defaultConfig: Record<string, any>, apiName: string, config: any) {
3
4
  const mergedConfig: any = { ...defaultConfig[apiName], ...config };
4
5
  const pathParams = mergedConfig.pathParams;
@@ -24,15 +25,19 @@ export function buildPayload(url: string, defaultConfig: Record<string, any>, ap
24
25
 
25
26
  export type ServicesMap = {
26
27
  {{#each tagedApis}}
27
- {{{tagName}}}: typeof import('./services/{{{tagName}}}');
28
+ {{{tag}}}: typeof import('./services/{{{tag}}}');
28
29
  {{/each}}
29
30
  };
30
31
 
31
- export const setDefaultConfig = <
32
+ export function setDefaultConfig<
32
33
  T extends keyof ServicesMap,
33
34
  TagedMap extends Record<string, (config: any) => any> = ServicesMap[T],
34
35
  ConfigMap = { [K in keyof TagedMap]?: Partial<Parameters<TagedMap[K]>[0]> }
35
- >(
36
- _: T,
37
- configMap: ConfigMap
38
- ) => configMap;
36
+ >(_: T, configMap: ConfigMap): ConfigMap {
37
+ return configMap;
38
+ }
39
+
40
+ export function resolveTagDefaultConfig<C extends object, Key extends string>(defaultConfig: C, tagName: Key) {
41
+ const raw = (defaultConfig as any)[tagName];
42
+ return (raw || {}) as C extends { [K in Key]: infer V } ? V : {};
43
+ }
@@ -2,5 +2,5 @@
2
2
  import { setDefaultConfig } from '../helper';
3
3
 
4
4
  {{#each tagedApis}}
5
- export const {{{tagName}}}DefaultConfig = setDefaultConfig('{{{tagName}}}', {});
5
+ export const {{{tag}}}DefaultConfig = setDefaultConfig('{{{tag}}}', {});
6
6
  {{/each}}