@goast/core 0.4.0-beta1 → 0.4.0-beta2

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 (45) hide show
  1. package/esm/lib/codegen/endpoints-generator.d.ts +5 -3
  2. package/esm/lib/codegen/endpoints-generator.d.ts.map +1 -1
  3. package/esm/lib/codegen/endpoints-generator.js +9 -4
  4. package/esm/lib/codegen/generator.d.ts +3 -3
  5. package/esm/lib/codegen/generator.d.ts.map +1 -1
  6. package/esm/lib/codegen/generator.js +4 -4
  7. package/esm/lib/codegen/schemas-generator.d.ts +5 -3
  8. package/esm/lib/codegen/schemas-generator.d.ts.map +1 -1
  9. package/esm/lib/codegen/schemas-generator.js +11 -5
  10. package/esm/lib/codegen/services-generator.d.ts +5 -3
  11. package/esm/lib/codegen/services-generator.d.ts.map +1 -1
  12. package/esm/lib/codegen/services-generator.js +9 -4
  13. package/esm/lib/codegen/types.d.ts +2 -1
  14. package/esm/lib/codegen/types.d.ts.map +1 -1
  15. package/esm/lib/utils/asset-manager.d.ts +8 -0
  16. package/esm/lib/utils/asset-manager.d.ts.map +1 -0
  17. package/esm/lib/utils/asset-manager.js +49 -0
  18. package/esm/lib/utils/index.d.ts +1 -0
  19. package/esm/lib/utils/index.d.ts.map +1 -1
  20. package/esm/lib/utils/index.js +1 -0
  21. package/esm/lib/utils/type.utils.d.ts +1 -0
  22. package/esm/lib/utils/type.utils.d.ts.map +1 -1
  23. package/package.json +2 -2
  24. package/script/lib/codegen/endpoints-generator.d.ts +5 -3
  25. package/script/lib/codegen/endpoints-generator.d.ts.map +1 -1
  26. package/script/lib/codegen/endpoints-generator.js +9 -4
  27. package/script/lib/codegen/generator.d.ts +3 -3
  28. package/script/lib/codegen/generator.d.ts.map +1 -1
  29. package/script/lib/codegen/generator.js +4 -4
  30. package/script/lib/codegen/schemas-generator.d.ts +5 -3
  31. package/script/lib/codegen/schemas-generator.d.ts.map +1 -1
  32. package/script/lib/codegen/schemas-generator.js +11 -5
  33. package/script/lib/codegen/services-generator.d.ts +5 -3
  34. package/script/lib/codegen/services-generator.d.ts.map +1 -1
  35. package/script/lib/codegen/services-generator.js +9 -4
  36. package/script/lib/codegen/types.d.ts +2 -1
  37. package/script/lib/codegen/types.d.ts.map +1 -1
  38. package/script/lib/utils/asset-manager.d.ts +8 -0
  39. package/script/lib/utils/asset-manager.d.ts.map +1 -0
  40. package/script/lib/utils/asset-manager.js +54 -0
  41. package/script/lib/utils/index.d.ts +1 -0
  42. package/script/lib/utils/index.d.ts.map +1 -1
  43. package/script/lib/utils/index.js +1 -0
  44. package/script/lib/utils/type.utils.d.ts +1 -0
  45. package/script/lib/utils/type.utils.d.ts.map +1 -1
@@ -1,16 +1,18 @@
1
1
  import { type DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator.js';
2
2
  import type { AnyConfig, OpenApiGenerationProviderContext, OpenApiGeneratorContext, OpenApiGeneratorInput, OpenApiGeneratorOutput } from './types.js';
3
3
  import type { ApiEndpoint } from '../transform/index.js';
4
+ import type { MaybePromise } from '../utils/type.utils.js';
4
5
  export type OpenApiEndpointsGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TEndpointOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
5
6
  existingEndpointResults: Map<string, TEndpointOutput>;
6
7
  output: TOutput;
7
8
  };
8
9
  export declare abstract class OpenApiEndpointsGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TEndpointOutput extends OpenApiGeneratorOutput, TContext extends OpenApiEndpointsGenerationProviderContext<TInput, TOutput, TConfig, TEndpointOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
9
10
  protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiEndpointsGenerationProviderContext<TInput, TOutput, TConfig, TEndpointOutput>;
10
- protected onGenerate(ctx: TContext): TOutput;
11
- getEndpointResult(ctx: TContext, endpoint: ApiEndpoint): TEndpointOutput;
11
+ protected onGenerate(ctx: TContext): Promise<TOutput>;
12
+ getEndpointResult(ctx: TContext, endpoint: ApiEndpoint): Promise<TEndpointOutput>;
12
13
  protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
13
- protected abstract generateEndpoint(ctx: TContext, endpoint: ApiEndpoint): TEndpointOutput;
14
+ protected abstract generateEndpoint(ctx: TContext, endpoint: ApiEndpoint): Promise<TEndpointOutput>;
14
15
  protected abstract addEndpointResult(ctx: TContext, endpoint: ApiEndpoint, result: TEndpointOutput): void;
16
+ protected generateAdditionalFiles(ctx: TContext): MaybePromise<void>;
15
17
  }
16
18
  //# sourceMappingURL=endpoints-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/endpoints-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,MAAM,yCAAyC,CACnD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,eAAe,SAAS,sBAAsB,IAC5C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,sCAAsC,CAC1D,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,eAAe,SAAS,sBAAsB,EAC9C,QAAQ,SAAS,yCAAyC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CACrG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,yCAAyC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC;cAQpE,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAQ9C,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,eAAe;IAU/E,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,eAAe;IAE1F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;CAC1G"}
1
+ {"version":3,"file":"endpoints-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/endpoints-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,yCAAyC,CACnD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,eAAe,SAAS,sBAAsB,IAC5C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,sCAAsC,CAC1D,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,eAAe,SAAS,sBAAsB,EAC9C,QAAQ,SAAS,yCAAyC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CACrG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,yCAAyC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC;cAQ9D,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvD,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAU9F,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAEnG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAGzG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;CAGrE"}
@@ -8,19 +8,24 @@ export class OpenApiEndpointsGenerationProviderBase extends OpenApiGenerationPro
8
8
  output: this.initResult(ctx),
9
9
  });
10
10
  }
11
- onGenerate(ctx) {
11
+ async onGenerate(ctx) {
12
12
  for (const endpoint of ctx.data.endpoints) {
13
- this.getEndpointResult(ctx, endpoint);
13
+ await this.getEndpointResult(ctx, endpoint);
14
14
  }
15
+ await this.generateAdditionalFiles(ctx);
15
16
  return ctx.output;
16
17
  }
17
- getEndpointResult(ctx, endpoint) {
18
+ async getEndpointResult(ctx, endpoint) {
18
19
  const existingResult = ctx.existingEndpointResults.get(endpoint.id);
19
20
  if (existingResult)
20
21
  return existingResult;
21
- const result = this.generateEndpoint(ctx, endpoint);
22
+ const result = await this.generateEndpoint(ctx, endpoint);
22
23
  addSourceIfTest(ctx.config, result, () => `${endpoint.$src.file}#${endpoint.$src.path}`);
23
24
  this.addEndpointResult(ctx, endpoint, result);
24
25
  return result;
25
26
  }
27
+ // deno-lint-ignore no-unused-vars
28
+ generateAdditionalFiles(ctx) {
29
+ // Override if needed
30
+ }
26
31
  }
@@ -30,10 +30,10 @@ export declare class OpenApiGenerator extends _OpenApiGenerator<{}> {
30
30
  }
31
31
  export type DefaultGenerationProviderConfig<T extends AnyConfig> = Omit<T, keyof OpenApiGeneratorConfig> & Partial<Pick<T, keyof OpenApiGeneratorConfig>>;
32
32
  export declare abstract class OpenApiGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TContext extends OpenApiGenerationProviderContext<TInput, TConfig>> implements OpenApiGenerationProvider<TInput, TOutput, TConfig> {
33
- generate(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): TOutput;
33
+ generate(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): Promise<TOutput>;
34
34
  protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiGenerationProviderContext<TInput, TConfig>;
35
- protected abstract buildContext(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): TContext;
36
- protected abstract onGenerate(ctx: TContext): TOutput;
35
+ protected abstract buildContext(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): TContext | Promise<TContext>;
36
+ protected abstract onGenerate(ctx: TContext): TOutput | Promise<TOutput>;
37
37
  }
38
38
  export {};
39
39
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/generator.ts"],"names":[],"mappings":"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"}
@@ -56,7 +56,7 @@ class _OpenApiGenerator {
56
56
  input,
57
57
  config: this._config,
58
58
  };
59
- const result = generator.provider.run(context, generator.config);
59
+ const result = await generator.provider.run(context, generator.config);
60
60
  if (result) {
61
61
  input = mergeDeep(input, result);
62
62
  }
@@ -102,9 +102,9 @@ function mergeDeep(target, ...sources) {
102
102
  return mergeDeep(target, ...sources);
103
103
  }
104
104
  export class OpenApiGenerationProviderBase {
105
- generate(context, config) {
106
- const ctx = this.buildContext(context, config);
107
- return this.onGenerate(ctx);
105
+ async generate(context, config) {
106
+ const ctx = await this.buildContext(context, config);
107
+ return await this.onGenerate(ctx);
108
108
  }
109
109
  getProviderContext(context, config, defaultConfig) {
110
110
  const c = { ...context.config, ...defaultConfig, ...config };
@@ -1,17 +1,19 @@
1
1
  import { type DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator.js';
2
2
  import type { AnyConfig, OpenApiGenerationProviderContext, OpenApiGeneratorContext, OpenApiGeneratorInput, OpenApiGeneratorOutput } from './types.js';
3
3
  import type { ApiSchema } from '../transform/index.js';
4
+ import type { MaybePromise } from '../utils/type.utils.js';
4
5
  export type OpenApiSchemasGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TSchemaOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
5
6
  existingSchemaResults: Map<string, TSchemaOutput>;
6
7
  output: TOutput;
7
8
  };
8
9
  export declare abstract class OpenApiSchemasGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TSchemaOutput extends OpenApiGeneratorOutput, TContext extends OpenApiSchemasGenerationProviderContext<TInput, TOutput, TConfig, TSchemaOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
9
10
  protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiSchemasGenerationProviderContext<TInput, TOutput, TConfig, TSchemaOutput>;
10
- protected onGenerate(ctx: TContext): TOutput;
11
- getSchemaResult(ctx: TContext, schema: ApiSchema): TSchemaOutput;
11
+ protected onGenerate(ctx: TContext): Promise<TOutput>;
12
+ getSchemaResult(ctx: TContext, schema: ApiSchema): Promise<TSchemaOutput>;
12
13
  protected getSchemaReference(ctx: TContext, schema: ApiSchema): ApiSchema | undefined;
13
14
  protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
14
- protected abstract generateSchema(ctx: TContext, schema: ApiSchema): TSchemaOutput;
15
+ protected abstract generateSchema(ctx: TContext, schema: ApiSchema): MaybePromise<TSchemaOutput>;
15
16
  protected abstract addSchemaResult(ctx: TContext, schema: ApiSchema, result: TSchemaOutput): void;
17
+ protected generateAdditionalFiles(ctx: TContext): MaybePromise<void>;
16
18
  }
17
19
  //# sourceMappingURL=schemas-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/schemas-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,MAAM,uCAAuC,CACjD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,sBAAsB,IAC1C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,oCAAoC,CACxD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,sBAAsB,EAC5C,QAAQ,SAAS,uCAAuC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CACjG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,uCAAuC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;cAQhE,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAQ9C,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa;IAkBvE,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAKrF,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa;IAElF,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;CAClG"}
1
+ {"version":3,"file":"schemas-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/schemas-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,uCAAuC,CACjD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,sBAAsB,IAC1C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,oCAAoC,CACxD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,sBAAsB,EAC5C,QAAQ,SAAS,uCAAuC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CACjG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,uCAAuC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;cAQ1D,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvD,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBtF,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAKrF,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC;IAEhG,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAGjG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;CAGrE"}
@@ -9,31 +9,37 @@ export class OpenApiSchemasGenerationProviderBase extends OpenApiGenerationProvi
9
9
  output: this.initResult(ctx),
10
10
  });
11
11
  }
12
- onGenerate(ctx) {
12
+ async onGenerate(ctx) {
13
13
  for (const schema of ctx.data.schemas) {
14
- this.getSchemaResult(ctx, schema);
14
+ await this.getSchemaResult(ctx, schema);
15
15
  }
16
+ await this.generateAdditionalFiles(ctx);
16
17
  return ctx.output;
17
18
  }
18
- getSchemaResult(ctx, schema) {
19
+ async getSchemaResult(ctx, schema) {
19
20
  const existingResult = ctx.existingSchemaResults.get(schema.id);
20
21
  if (existingResult)
21
22
  return existingResult;
22
23
  let result;
23
24
  const reference = this.getSchemaReference(ctx, schema);
24
25
  if (reference) {
25
- result = this.getSchemaResult(ctx, reference);
26
+ result = await this.getSchemaResult(ctx, reference);
26
27
  }
27
28
  else {
28
- result = this.generateSchema(ctx, schema);
29
+ result = await this.generateSchema(ctx, schema);
29
30
  }
30
31
  addSourceIfTest(ctx.config, result, () => `${schema.$src.file}#${schema.$src.path}`);
31
32
  ctx.existingSchemaResults.set(schema.id, result);
32
33
  this.addSchemaResult(ctx, schema, result);
33
34
  return result;
34
35
  }
36
+ // deno-lint-ignore no-unused-vars
35
37
  getSchemaReference(ctx, schema) {
36
38
  const ref = getSchemaReference(schema, ['description']);
37
39
  return ref.id !== schema.id ? ref : undefined;
38
40
  }
41
+ // deno-lint-ignore no-unused-vars
42
+ generateAdditionalFiles(ctx) {
43
+ // Override if needed
44
+ }
39
45
  }
@@ -1,16 +1,18 @@
1
1
  import { type DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator.js';
2
2
  import type { AnyConfig, OpenApiGenerationProviderContext, OpenApiGeneratorContext, OpenApiGeneratorInput, OpenApiGeneratorOutput } from './types.js';
3
3
  import type { ApiService } from '../transform/index.js';
4
+ import type { MaybePromise } from '../utils/type.utils.js';
4
5
  export type OpenApiServicesGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TServiceOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
5
6
  existingServiceResults: Map<string, TServiceOutput>;
6
7
  output: TOutput;
7
8
  };
8
9
  export declare abstract class OpenApiServicesGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TServiceOutput extends OpenApiGeneratorOutput, TContext extends OpenApiServicesGenerationProviderContext<TInput, TOutput, TConfig, TServiceOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
9
10
  protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiServicesGenerationProviderContext<TInput, TOutput, TConfig, TServiceOutput>;
10
- onGenerate(ctx: TContext): TOutput;
11
- getServiceResult(ctx: TContext, service: ApiService): TServiceOutput;
11
+ protected onGenerate(ctx: TContext): Promise<TOutput>;
12
+ protected getServiceResult(ctx: TContext, service: ApiService): Promise<TServiceOutput>;
12
13
  protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
13
- protected abstract generateService(ctx: TContext, service: ApiService): TServiceOutput;
14
+ protected abstract generateService(ctx: TContext, service: ApiService): MaybePromise<TServiceOutput>;
14
15
  protected abstract addServiceResult(ctx: TContext, service: ApiService, result: TServiceOutput): void;
16
+ protected generateAdditionalFiles(ctx: TContext): MaybePromise<void>;
15
17
  }
16
18
  //# sourceMappingURL=services-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"services-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/services-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,wCAAwC,CAClD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,cAAc,SAAS,sBAAsB,IAC3C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,qCAAqC,CACzD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,cAAc,SAAS,sBAAsB,EAC7C,QAAQ,SAAS,wCAAwC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CACnG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,wCAAwC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC;IAQrE,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAQ3C,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,cAAc;IAe3E,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,cAAc;IAEtF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;CACtG"}
1
+ {"version":3,"file":"services-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/services-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,wCAAwC,CAClD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,cAAc,SAAS,sBAAsB,IAC3C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,qCAAqC,CACzD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,cAAc,SAAS,sBAAsB,EAC7C,QAAQ,SAAS,wCAAwC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CACnG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,wCAAwC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC;cAQ5D,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cAUpD,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAe7F,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC;IAEpG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAGrG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;CAGrE"}
@@ -8,19 +8,24 @@ export class OpenApiServicesGenerationProviderBase extends OpenApiGenerationProv
8
8
  output: this.initResult(ctx),
9
9
  });
10
10
  }
11
- onGenerate(ctx) {
11
+ async onGenerate(ctx) {
12
12
  for (const service of ctx.data.services) {
13
- this.getServiceResult(ctx, service);
13
+ await this.getServiceResult(ctx, service);
14
14
  }
15
+ await this.generateAdditionalFiles(ctx);
15
16
  return ctx.output;
16
17
  }
17
- getServiceResult(ctx, service) {
18
+ async getServiceResult(ctx, service) {
18
19
  const existingResult = ctx.existingServiceResults.get(service.id);
19
20
  if (existingResult)
20
21
  return existingResult;
21
- const result = this.generateService(ctx, service);
22
+ const result = await this.generateService(ctx, service);
22
23
  addSourceIfTest(ctx.config, result, () => service.$src ? `${service.$src.file}#${service.$src.path}` : `tag:${service.name}`);
23
24
  this.addServiceResult(ctx, service, result);
24
25
  return result;
25
26
  }
27
+ // deno-lint-ignore no-unused-vars
28
+ generateAdditionalFiles(ctx) {
29
+ // Override if needed
30
+ }
26
31
  }
@@ -1,5 +1,6 @@
1
1
  import type { OpenApiGeneratorConfig } from './config.js';
2
2
  import type { ApiData } from '../transform/index.js';
3
+ import type { MaybePromise } from '../utils/type.utils.js';
3
4
  export type AnyConfig = Readonly<Record<string, unknown>>;
4
5
  export type OpenApiGeneratorInput = Record<string, unknown>;
5
6
  export type OpenApiGeneratorOutput = Record<string, unknown> | undefined;
@@ -14,5 +15,5 @@ export type OpenApiGenerationProviderContext<TInput extends OpenApiGeneratorInpu
14
15
  export interface OpenApiGenerationProvider<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput, TConfig extends AnyConfig = AnyConfig> {
15
16
  generate(...args: Parameters<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>): ReturnType<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>;
16
17
  }
17
- export type OpenApiGenerationProviderFn<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput, TConfig extends AnyConfig = AnyConfig> = (context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig>) => TOutput;
18
+ export type OpenApiGenerationProviderFn<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput, TConfig extends AnyConfig = AnyConfig> = (context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig>) => MaybePromise<TOutput>;
18
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5D,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AACzE,MAAM,MAAM,uBAAuB,CAAC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,IAAI;IAClG,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gCAAgC,CAAC,MAAM,SAAS,qBAAqB,EAAE,OAAO,SAAS,SAAS,IACxG,IAAI,CACJ,uBAAuB,CAAC,MAAM,CAAC,EAC/B,QAAQ,CACT,GACC;IACA,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC;CAC1C,CAAC;AAEJ,MAAM,WAAW,yBAAyB,CACxC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,EAC5D,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,OAAO,SAAS,SAAS,GAAG,SAAS;IAErC,QAAQ,CACN,GAAG,IAAI,EAAE,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GACzE,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,2BAA2B,CACrC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,EAC5D,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,OAAO,SAAS,SAAS,GAAG,SAAS,IACnC,CAAC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5D,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AACzE,MAAM,MAAM,uBAAuB,CAAC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,IAAI;IAClG,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gCAAgC,CAAC,MAAM,SAAS,qBAAqB,EAAE,OAAO,SAAS,SAAS,IACxG,IAAI,CACJ,uBAAuB,CAAC,MAAM,CAAC,EAC/B,QAAQ,CACT,GACC;IACA,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC;CAC1C,CAAC;AAEJ,MAAM,WAAW,yBAAyB,CACxC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,EAC5D,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,OAAO,SAAS,SAAS,GAAG,SAAS;IAErC,QAAQ,CACN,GAAG,IAAI,EAAE,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GACzE,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,2BAA2B,CACrC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,EAC5D,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,OAAO,SAAS,SAAS,GAAG,SAAS,IACnC,CAAC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class AssetManager {
2
+ private readonly _assetsBaseUrl;
3
+ constructor(assetsBaseUrl: URL);
4
+ getAssetFileContent(relativePath: string): Promise<string>;
5
+ copyAssetFile(relativePath: string, destDir: string, logName?: string): Promise<void>;
6
+ private fetchAssetFile;
7
+ }
8
+ //# sourceMappingURL=asset-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/asset-manager.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAM;gBAEzB,aAAa,EAAE,GAAG;IAIjB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ1D,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAkBpF,cAAc;CAO7B"}
@@ -0,0 +1,49 @@
1
+ import * as dntShim from "../../_dnt.shims.js";
2
+ import { basename, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import fs from 'fs-extra';
5
+ export class AssetManager {
6
+ constructor(assetsBaseUrl) {
7
+ Object.defineProperty(this, "_assetsBaseUrl", {
8
+ enumerable: true,
9
+ configurable: true,
10
+ writable: true,
11
+ value: void 0
12
+ });
13
+ this._assetsBaseUrl = assetsBaseUrl;
14
+ }
15
+ async getAssetFileContent(relativePath) {
16
+ if (this._assetsBaseUrl.protocol === 'file:') {
17
+ return await fs.readFile(resolve(fileURLToPath(this._assetsBaseUrl), relativePath), 'utf8');
18
+ }
19
+ else {
20
+ return await this.fetchAssetFile(relativePath);
21
+ }
22
+ }
23
+ async copyAssetFile(relativePath, destDir, logName) {
24
+ const targetPath = resolve(destDir, basename(relativePath));
25
+ if (logName !== undefined) {
26
+ if (logName) {
27
+ console.log(`Copying ${logName} to "${targetPath}"`);
28
+ }
29
+ else {
30
+ console.log(`Copying asset file "${relativePath}" to "${targetPath}"`);
31
+ }
32
+ }
33
+ if (this._assetsBaseUrl.protocol === 'file:') {
34
+ const srcPath = resolve(fileURLToPath(this._assetsBaseUrl), relativePath);
35
+ await fs.copyFile(srcPath, targetPath);
36
+ }
37
+ else {
38
+ const fileContent = await this.fetchAssetFile(relativePath);
39
+ await fs.outputFile(targetPath, fileContent);
40
+ }
41
+ }
42
+ async fetchAssetFile(relativePath) {
43
+ const response = await dntShim.fetch(new URL(relativePath, this._assetsBaseUrl));
44
+ if (!response.ok) {
45
+ throw new Error(`Failed to fetch asset file "${relativePath}: ${response.statusText} (${response.status})`);
46
+ }
47
+ return await response.text();
48
+ }
49
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './array.utils.js';
2
+ export * from './asset-manager.js';
2
3
  export * from './class.utils.js';
3
4
  export * from './common.utils.js';
4
5
  export * from './endpoint.utils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './array.utils.js';
2
+ export * from './asset-manager.js';
2
3
  export * from './class.utils.js';
3
4
  export * from './common.utils.js';
4
5
  export * from './endpoint.utils.js';
@@ -52,5 +52,6 @@ export type ParametersWithOverloads<T extends (...args: any[]) => any> = T exten
52
52
  } ? A1 : never;
53
53
  type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _TupleOf<T, N, [T, ...R]>;
54
54
  export type TupleWithCount<T, N extends number | number[]> = N extends number ? number extends N ? T[] : _TupleOf<T, N, []> : N extends [infer A, ...infer R] ? A extends number ? R extends number[] ? TupleWithCount<T, A> | TupleWithCount<T, R> : never : never : N extends [] ? never : T[];
55
+ export type MaybePromise<T> = T | Promise<T>;
55
56
  export {};
56
57
  //# sourceMappingURL=type.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/type.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/type.utils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AAE7F,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxF,MAAM,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEzF,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAC7D,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AAC1C,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAE5D,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;AAG/C,MAAM,WAAW,WAAW,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,CAAE,SAAQ,QAAQ;IAC3E,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC;CACzB;AAED,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAErD,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI;KAC5B,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK;CACjE,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,MAAM,MAAM,QAAQ,CAAC,CAAC,IAClB;KACC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACrB,GACC,EAAE,CAAC;AAEP,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEpC,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAE3C,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC1E,wBAAgB,kBAAkB,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,aAAa,CAAC,CAAC,CAAC,EAClE,GAAG,QAAQ,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,KAC3B,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAErB;AAED,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;AACtE,wBAAgB,mBAAmB,CAAC,CAAC,EACnC,KAAK,EAAE,CAAC,GACP,CAAC,SAAS,iBAAiB,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,CAEtF;AAED,MAAM,MAAM,uBAAuB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,IAAI,CAAC,SAAS;IACjF,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CAC1B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAC3B,CAAC,SAAS;IACV,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CAC1B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GACxB,CAAC,SAAS;IACV,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CAC1B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GACnB,CAAC,SAAS;IACV,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CAC1B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GACd,CAAC,SAAS;IACV,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACzB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CAC1B,GAAG,EAAE,GAAG,EAAE,GACT,CAAC,SAAS;IACV,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;CAC1B,GAAG,EAAE,GACJ,KAAK,CAAC;AAEV,KAAK,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,OAAO,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAChH,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,SAAS,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,EAAE,GAClG,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAClB,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,GAC7B,CAAC,SAAS,MAAM,GAAG,CAAC,SAAS,MAAM,EAAE,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,GACjF,KAAK,GACP,KAAK,GACP,CAAC,SAAS,EAAE,GAAG,KAAK,GACpB,CAAC,EAAE,CAAC;AAER,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goast/core",
3
- "version": "0.4.0-beta1",
3
+ "version": "0.4.0-beta2",
4
4
  "description": "A tool designed to transform OpenAPI specifications into various forms with flexibility and extensibility at its core.",
5
5
  "author": {
6
6
  "name": "Marc Schmidt (MaSch0212)",
@@ -36,4 +36,4 @@
36
36
  "@types/fs-extra": "^11.0.4"
37
37
  },
38
38
  "_generatedBy": "dnt@dev"
39
- }
39
+ }
@@ -1,16 +1,18 @@
1
1
  import { type DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator.js';
2
2
  import type { AnyConfig, OpenApiGenerationProviderContext, OpenApiGeneratorContext, OpenApiGeneratorInput, OpenApiGeneratorOutput } from './types.js';
3
3
  import type { ApiEndpoint } from '../transform/index.js';
4
+ import type { MaybePromise } from '../utils/type.utils.js';
4
5
  export type OpenApiEndpointsGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TEndpointOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
5
6
  existingEndpointResults: Map<string, TEndpointOutput>;
6
7
  output: TOutput;
7
8
  };
8
9
  export declare abstract class OpenApiEndpointsGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TEndpointOutput extends OpenApiGeneratorOutput, TContext extends OpenApiEndpointsGenerationProviderContext<TInput, TOutput, TConfig, TEndpointOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
9
10
  protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiEndpointsGenerationProviderContext<TInput, TOutput, TConfig, TEndpointOutput>;
10
- protected onGenerate(ctx: TContext): TOutput;
11
- getEndpointResult(ctx: TContext, endpoint: ApiEndpoint): TEndpointOutput;
11
+ protected onGenerate(ctx: TContext): Promise<TOutput>;
12
+ getEndpointResult(ctx: TContext, endpoint: ApiEndpoint): Promise<TEndpointOutput>;
12
13
  protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
13
- protected abstract generateEndpoint(ctx: TContext, endpoint: ApiEndpoint): TEndpointOutput;
14
+ protected abstract generateEndpoint(ctx: TContext, endpoint: ApiEndpoint): Promise<TEndpointOutput>;
14
15
  protected abstract addEndpointResult(ctx: TContext, endpoint: ApiEndpoint, result: TEndpointOutput): void;
16
+ protected generateAdditionalFiles(ctx: TContext): MaybePromise<void>;
15
17
  }
16
18
  //# sourceMappingURL=endpoints-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"endpoints-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/endpoints-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,MAAM,yCAAyC,CACnD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,eAAe,SAAS,sBAAsB,IAC5C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,sCAAsC,CAC1D,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,eAAe,SAAS,sBAAsB,EAC9C,QAAQ,SAAS,yCAAyC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CACrG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,yCAAyC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC;cAQpE,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAQ9C,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,eAAe;IAU/E,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,eAAe;IAE1F,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;CAC1G"}
1
+ {"version":3,"file":"endpoints-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/endpoints-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,yCAAyC,CACnD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,eAAe,SAAS,sBAAsB,IAC5C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,uBAAuB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACtD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,sCAAsC,CAC1D,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,eAAe,SAAS,sBAAsB,EAC9C,QAAQ,SAAS,yCAAyC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CACrG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,yCAAyC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC;cAQ9D,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvD,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAU9F,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAEnG,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI;IAGzG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;CAGrE"}
@@ -11,20 +11,25 @@ class OpenApiEndpointsGenerationProviderBase extends generator_js_1.OpenApiGener
11
11
  output: this.initResult(ctx),
12
12
  });
13
13
  }
14
- onGenerate(ctx) {
14
+ async onGenerate(ctx) {
15
15
  for (const endpoint of ctx.data.endpoints) {
16
- this.getEndpointResult(ctx, endpoint);
16
+ await this.getEndpointResult(ctx, endpoint);
17
17
  }
18
+ await this.generateAdditionalFiles(ctx);
18
19
  return ctx.output;
19
20
  }
20
- getEndpointResult(ctx, endpoint) {
21
+ async getEndpointResult(ctx, endpoint) {
21
22
  const existingResult = ctx.existingEndpointResults.get(endpoint.id);
22
23
  if (existingResult)
23
24
  return existingResult;
24
- const result = this.generateEndpoint(ctx, endpoint);
25
+ const result = await this.generateEndpoint(ctx, endpoint);
25
26
  (0, internal_utils_js_1.addSourceIfTest)(ctx.config, result, () => `${endpoint.$src.file}#${endpoint.$src.path}`);
26
27
  this.addEndpointResult(ctx, endpoint, result);
27
28
  return result;
28
29
  }
30
+ // deno-lint-ignore no-unused-vars
31
+ generateAdditionalFiles(ctx) {
32
+ // Override if needed
33
+ }
29
34
  }
30
35
  exports.OpenApiEndpointsGenerationProviderBase = OpenApiEndpointsGenerationProviderBase;
@@ -30,10 +30,10 @@ export declare class OpenApiGenerator extends _OpenApiGenerator<{}> {
30
30
  }
31
31
  export type DefaultGenerationProviderConfig<T extends AnyConfig> = Omit<T, keyof OpenApiGeneratorConfig> & Partial<Pick<T, keyof OpenApiGeneratorConfig>>;
32
32
  export declare abstract class OpenApiGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TContext extends OpenApiGenerationProviderContext<TInput, TConfig>> implements OpenApiGenerationProvider<TInput, TOutput, TConfig> {
33
- generate(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): TOutput;
33
+ generate(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): Promise<TOutput>;
34
34
  protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiGenerationProviderContext<TInput, TConfig>;
35
- protected abstract buildContext(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): TContext;
36
- protected abstract onGenerate(ctx: TContext): TOutput;
35
+ protected abstract buildContext(context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig> | undefined): TContext | Promise<TContext>;
36
+ protected abstract onGenerate(ctx: TContext): TOutput | Promise<TOutput>;
37
37
  }
38
38
  export {};
39
39
  //# sourceMappingURL=generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/generator.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ class _OpenApiGenerator {
60
60
  input,
61
61
  config: this._config,
62
62
  };
63
- const result = generator.provider.run(context, generator.config);
63
+ const result = await generator.provider.run(context, generator.config);
64
64
  if (result) {
65
65
  input = mergeDeep(input, result);
66
66
  }
@@ -107,9 +107,9 @@ function mergeDeep(target, ...sources) {
107
107
  return mergeDeep(target, ...sources);
108
108
  }
109
109
  class OpenApiGenerationProviderBase {
110
- generate(context, config) {
111
- const ctx = this.buildContext(context, config);
112
- return this.onGenerate(ctx);
110
+ async generate(context, config) {
111
+ const ctx = await this.buildContext(context, config);
112
+ return await this.onGenerate(ctx);
113
113
  }
114
114
  getProviderContext(context, config, defaultConfig) {
115
115
  const c = { ...context.config, ...defaultConfig, ...config };
@@ -1,17 +1,19 @@
1
1
  import { type DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator.js';
2
2
  import type { AnyConfig, OpenApiGenerationProviderContext, OpenApiGeneratorContext, OpenApiGeneratorInput, OpenApiGeneratorOutput } from './types.js';
3
3
  import type { ApiSchema } from '../transform/index.js';
4
+ import type { MaybePromise } from '../utils/type.utils.js';
4
5
  export type OpenApiSchemasGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TSchemaOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
5
6
  existingSchemaResults: Map<string, TSchemaOutput>;
6
7
  output: TOutput;
7
8
  };
8
9
  export declare abstract class OpenApiSchemasGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TSchemaOutput extends OpenApiGeneratorOutput, TContext extends OpenApiSchemasGenerationProviderContext<TInput, TOutput, TConfig, TSchemaOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
9
10
  protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiSchemasGenerationProviderContext<TInput, TOutput, TConfig, TSchemaOutput>;
10
- protected onGenerate(ctx: TContext): TOutput;
11
- getSchemaResult(ctx: TContext, schema: ApiSchema): TSchemaOutput;
11
+ protected onGenerate(ctx: TContext): Promise<TOutput>;
12
+ getSchemaResult(ctx: TContext, schema: ApiSchema): Promise<TSchemaOutput>;
12
13
  protected getSchemaReference(ctx: TContext, schema: ApiSchema): ApiSchema | undefined;
13
14
  protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
14
- protected abstract generateSchema(ctx: TContext, schema: ApiSchema): TSchemaOutput;
15
+ protected abstract generateSchema(ctx: TContext, schema: ApiSchema): MaybePromise<TSchemaOutput>;
15
16
  protected abstract addSchemaResult(ctx: TContext, schema: ApiSchema, result: TSchemaOutput): void;
17
+ protected generateAdditionalFiles(ctx: TContext): MaybePromise<void>;
16
18
  }
17
19
  //# sourceMappingURL=schemas-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/schemas-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGvD,MAAM,MAAM,uCAAuC,CACjD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,sBAAsB,IAC1C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,oCAAoC,CACxD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,sBAAsB,EAC5C,QAAQ,SAAS,uCAAuC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CACjG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,uCAAuC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;cAQhE,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAQ9C,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa;IAkBvE,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAKrF,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,aAAa;IAElF,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;CAClG"}
1
+ {"version":3,"file":"schemas-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/schemas-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,uCAAuC,CACjD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,sBAAsB,IAC1C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,oCAAoC,CACxD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,aAAa,SAAS,sBAAsB,EAC5C,QAAQ,SAAS,uCAAuC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CACjG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,uCAAuC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC;cAQ1D,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;IAUvD,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBtF,SAAS,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS;IAKrF,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAG,YAAY,CAAC,aAAa,CAAC;IAEhG,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI;IAGjG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;CAGrE"}
@@ -12,32 +12,38 @@ class OpenApiSchemasGenerationProviderBase extends generator_js_1.OpenApiGenerat
12
12
  output: this.initResult(ctx),
13
13
  });
14
14
  }
15
- onGenerate(ctx) {
15
+ async onGenerate(ctx) {
16
16
  for (const schema of ctx.data.schemas) {
17
- this.getSchemaResult(ctx, schema);
17
+ await this.getSchemaResult(ctx, schema);
18
18
  }
19
+ await this.generateAdditionalFiles(ctx);
19
20
  return ctx.output;
20
21
  }
21
- getSchemaResult(ctx, schema) {
22
+ async getSchemaResult(ctx, schema) {
22
23
  const existingResult = ctx.existingSchemaResults.get(schema.id);
23
24
  if (existingResult)
24
25
  return existingResult;
25
26
  let result;
26
27
  const reference = this.getSchemaReference(ctx, schema);
27
28
  if (reference) {
28
- result = this.getSchemaResult(ctx, reference);
29
+ result = await this.getSchemaResult(ctx, reference);
29
30
  }
30
31
  else {
31
- result = this.generateSchema(ctx, schema);
32
+ result = await this.generateSchema(ctx, schema);
32
33
  }
33
34
  (0, internal_utils_js_1.addSourceIfTest)(ctx.config, result, () => `${schema.$src.file}#${schema.$src.path}`);
34
35
  ctx.existingSchemaResults.set(schema.id, result);
35
36
  this.addSchemaResult(ctx, schema, result);
36
37
  return result;
37
38
  }
39
+ // deno-lint-ignore no-unused-vars
38
40
  getSchemaReference(ctx, schema) {
39
41
  const ref = (0, index_js_1.getSchemaReference)(schema, ['description']);
40
42
  return ref.id !== schema.id ? ref : undefined;
41
43
  }
44
+ // deno-lint-ignore no-unused-vars
45
+ generateAdditionalFiles(ctx) {
46
+ // Override if needed
47
+ }
42
48
  }
43
49
  exports.OpenApiSchemasGenerationProviderBase = OpenApiSchemasGenerationProviderBase;
@@ -1,16 +1,18 @@
1
1
  import { type DefaultGenerationProviderConfig, OpenApiGenerationProviderBase } from './generator.js';
2
2
  import type { AnyConfig, OpenApiGenerationProviderContext, OpenApiGeneratorContext, OpenApiGeneratorInput, OpenApiGeneratorOutput } from './types.js';
3
3
  import type { ApiService } from '../transform/index.js';
4
+ import type { MaybePromise } from '../utils/type.utils.js';
4
5
  export type OpenApiServicesGenerationProviderContext<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TServiceOutput extends OpenApiGeneratorOutput> = OpenApiGenerationProviderContext<TInput, TConfig> & {
5
6
  existingServiceResults: Map<string, TServiceOutput>;
6
7
  output: TOutput;
7
8
  };
8
9
  export declare abstract class OpenApiServicesGenerationProviderBase<TInput extends OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput, TConfig extends AnyConfig, TServiceOutput extends OpenApiGeneratorOutput, TContext extends OpenApiServicesGenerationProviderContext<TInput, TOutput, TConfig, TServiceOutput>> extends OpenApiGenerationProviderBase<TInput, TOutput, TConfig, TContext> {
9
10
  protected getProviderContext(context: OpenApiGeneratorContext<TInput>, config: Partial<TConfig> | undefined, defaultConfig: DefaultGenerationProviderConfig<TConfig>): OpenApiServicesGenerationProviderContext<TInput, TOutput, TConfig, TServiceOutput>;
10
- onGenerate(ctx: TContext): TOutput;
11
- getServiceResult(ctx: TContext, service: ApiService): TServiceOutput;
11
+ protected onGenerate(ctx: TContext): Promise<TOutput>;
12
+ protected getServiceResult(ctx: TContext, service: ApiService): Promise<TServiceOutput>;
12
13
  protected abstract initResult(ctx: OpenApiGenerationProviderContext<TInput, TConfig>): TOutput;
13
- protected abstract generateService(ctx: TContext, service: ApiService): TServiceOutput;
14
+ protected abstract generateService(ctx: TContext, service: ApiService): MaybePromise<TServiceOutput>;
14
15
  protected abstract addServiceResult(ctx: TContext, service: ApiService, result: TServiceOutput): void;
16
+ protected generateAdditionalFiles(ctx: TContext): MaybePromise<void>;
15
17
  }
16
18
  //# sourceMappingURL=services-generator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"services-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/services-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,MAAM,wCAAwC,CAClD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,cAAc,SAAS,sBAAsB,IAC3C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,qCAAqC,CACzD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,cAAc,SAAS,sBAAsB,EAC7C,QAAQ,SAAS,wCAAwC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CACnG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,wCAAwC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC;IAQrE,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO;IAQ3C,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,cAAc;IAe3E,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,cAAc;IAEtF,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;CACtG"}
1
+ {"version":3,"file":"services-generator.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/services-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,+BAA+B,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAErG,OAAO,KAAK,EACV,SAAS,EACT,gCAAgC,EAChC,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,wCAAwC,CAClD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,cAAc,SAAS,sBAAsB,IAC3C,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACtD,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACpD,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,8BAAsB,qCAAqC,CACzD,MAAM,SAAS,qBAAqB,EACpC,OAAO,SAAS,sBAAsB,EACtC,OAAO,SAAS,SAAS,EACzB,cAAc,SAAS,sBAAsB,EAC7C,QAAQ,SAAS,wCAAwC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CACnG,SAAQ,6BAA6B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;cACtD,kBAAkB,CACnC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EACxC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,SAAS,EACpC,aAAa,EAAE,+BAA+B,CAAC,OAAO,CAAC,GACtD,wCAAwC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC;cAQ5D,UAAU,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC;cAUpD,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAe7F,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,gCAAgC,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IAE9F,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC;IAEpG,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI;IAGrG,SAAS,CAAC,uBAAuB,CAAC,GAAG,EAAE,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC;CAGrE"}
@@ -11,20 +11,25 @@ class OpenApiServicesGenerationProviderBase extends generator_js_1.OpenApiGenera
11
11
  output: this.initResult(ctx),
12
12
  });
13
13
  }
14
- onGenerate(ctx) {
14
+ async onGenerate(ctx) {
15
15
  for (const service of ctx.data.services) {
16
- this.getServiceResult(ctx, service);
16
+ await this.getServiceResult(ctx, service);
17
17
  }
18
+ await this.generateAdditionalFiles(ctx);
18
19
  return ctx.output;
19
20
  }
20
- getServiceResult(ctx, service) {
21
+ async getServiceResult(ctx, service) {
21
22
  const existingResult = ctx.existingServiceResults.get(service.id);
22
23
  if (existingResult)
23
24
  return existingResult;
24
- const result = this.generateService(ctx, service);
25
+ const result = await this.generateService(ctx, service);
25
26
  (0, internal_utils_js_1.addSourceIfTest)(ctx.config, result, () => service.$src ? `${service.$src.file}#${service.$src.path}` : `tag:${service.name}`);
26
27
  this.addServiceResult(ctx, service, result);
27
28
  return result;
28
29
  }
30
+ // deno-lint-ignore no-unused-vars
31
+ generateAdditionalFiles(ctx) {
32
+ // Override if needed
33
+ }
29
34
  }
30
35
  exports.OpenApiServicesGenerationProviderBase = OpenApiServicesGenerationProviderBase;
@@ -1,5 +1,6 @@
1
1
  import type { OpenApiGeneratorConfig } from './config.js';
2
2
  import type { ApiData } from '../transform/index.js';
3
+ import type { MaybePromise } from '../utils/type.utils.js';
3
4
  export type AnyConfig = Readonly<Record<string, unknown>>;
4
5
  export type OpenApiGeneratorInput = Record<string, unknown>;
5
6
  export type OpenApiGeneratorOutput = Record<string, unknown> | undefined;
@@ -14,5 +15,5 @@ export type OpenApiGenerationProviderContext<TInput extends OpenApiGeneratorInpu
14
15
  export interface OpenApiGenerationProvider<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput, TConfig extends AnyConfig = AnyConfig> {
15
16
  generate(...args: Parameters<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>): ReturnType<OpenApiGenerationProviderFn<TInput, TOutput, TConfig>>;
16
17
  }
17
- export type OpenApiGenerationProviderFn<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput, TConfig extends AnyConfig = AnyConfig> = (context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig>) => TOutput;
18
+ export type OpenApiGenerationProviderFn<TInput extends OpenApiGeneratorInput = OpenApiGeneratorInput, TOutput extends OpenApiGeneratorOutput = OpenApiGeneratorOutput, TConfig extends AnyConfig = AnyConfig> = (context: OpenApiGeneratorContext<TInput>, config?: Partial<TConfig>) => MaybePromise<TOutput>;
18
19
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5D,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AACzE,MAAM,MAAM,uBAAuB,CAAC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,IAAI;IAClG,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gCAAgC,CAAC,MAAM,SAAS,qBAAqB,EAAE,OAAO,SAAS,SAAS,IACxG,IAAI,CACJ,uBAAuB,CAAC,MAAM,CAAC,EAC/B,QAAQ,CACT,GACC;IACA,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC;CAC1C,CAAC;AAEJ,MAAM,WAAW,yBAAyB,CACxC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,EAC5D,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,OAAO,SAAS,SAAS,GAAG,SAAS;IAErC,QAAQ,CACN,GAAG,IAAI,EAAE,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GACzE,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,2BAA2B,CACrC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,EAC5D,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,OAAO,SAAS,SAAS,GAAG,SAAS,IACnC,CAAC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/lib/codegen/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1D,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC5D,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;AACzE,MAAM,MAAM,uBAAuB,CAAC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,IAAI;IAClG,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gCAAgC,CAAC,MAAM,SAAS,qBAAqB,EAAE,OAAO,SAAS,SAAS,IACxG,IAAI,CACJ,uBAAuB,CAAC,MAAM,CAAC,EAC/B,QAAQ,CACT,GACC;IACA,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC;CAC1C,CAAC;AAEJ,MAAM,WAAW,yBAAyB,CACxC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,EAC5D,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,OAAO,SAAS,SAAS,GAAG,SAAS;IAErC,QAAQ,CACN,GAAG,IAAI,EAAE,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,GACzE,UAAU,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;CACtE;AAED,MAAM,MAAM,2BAA2B,CACrC,MAAM,SAAS,qBAAqB,GAAG,qBAAqB,EAC5D,OAAO,SAAS,sBAAsB,GAAG,sBAAsB,EAC/D,OAAO,SAAS,SAAS,GAAG,SAAS,IACnC,CAAC,OAAO,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export declare class AssetManager {
2
+ private readonly _assetsBaseUrl;
3
+ constructor(assetsBaseUrl: URL);
4
+ getAssetFileContent(relativePath: string): Promise<string>;
5
+ copyAssetFile(relativePath: string, destDir: string, logName?: string): Promise<void>;
6
+ private fetchAssetFile;
7
+ }
8
+ //# sourceMappingURL=asset-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/asset-manager.ts"],"names":[],"mappings":"AAOA,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAM;gBAEzB,aAAa,EAAE,GAAG;IAIjB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQ1D,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAkBpF,cAAc;CAO7B"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssetManager = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const dntShim = tslib_1.__importStar(require("../../_dnt.shims.js"));
6
+ const node_path_1 = require("node:path");
7
+ const node_url_1 = require("node:url");
8
+ const fs_extra_1 = tslib_1.__importDefault(require("fs-extra"));
9
+ class AssetManager {
10
+ constructor(assetsBaseUrl) {
11
+ Object.defineProperty(this, "_assetsBaseUrl", {
12
+ enumerable: true,
13
+ configurable: true,
14
+ writable: true,
15
+ value: void 0
16
+ });
17
+ this._assetsBaseUrl = assetsBaseUrl;
18
+ }
19
+ async getAssetFileContent(relativePath) {
20
+ if (this._assetsBaseUrl.protocol === 'file:') {
21
+ return await fs_extra_1.default.readFile((0, node_path_1.resolve)((0, node_url_1.fileURLToPath)(this._assetsBaseUrl), relativePath), 'utf8');
22
+ }
23
+ else {
24
+ return await this.fetchAssetFile(relativePath);
25
+ }
26
+ }
27
+ async copyAssetFile(relativePath, destDir, logName) {
28
+ const targetPath = (0, node_path_1.resolve)(destDir, (0, node_path_1.basename)(relativePath));
29
+ if (logName !== undefined) {
30
+ if (logName) {
31
+ console.log(`Copying ${logName} to "${targetPath}"`);
32
+ }
33
+ else {
34
+ console.log(`Copying asset file "${relativePath}" to "${targetPath}"`);
35
+ }
36
+ }
37
+ if (this._assetsBaseUrl.protocol === 'file:') {
38
+ const srcPath = (0, node_path_1.resolve)((0, node_url_1.fileURLToPath)(this._assetsBaseUrl), relativePath);
39
+ await fs_extra_1.default.copyFile(srcPath, targetPath);
40
+ }
41
+ else {
42
+ const fileContent = await this.fetchAssetFile(relativePath);
43
+ await fs_extra_1.default.outputFile(targetPath, fileContent);
44
+ }
45
+ }
46
+ async fetchAssetFile(relativePath) {
47
+ const response = await dntShim.fetch(new URL(relativePath, this._assetsBaseUrl));
48
+ if (!response.ok) {
49
+ throw new Error(`Failed to fetch asset file "${relativePath}: ${response.statusText} (${response.status})`);
50
+ }
51
+ return await response.text();
52
+ }
53
+ }
54
+ exports.AssetManager = AssetManager;
@@ -1,4 +1,5 @@
1
1
  export * from './array.utils.js';
2
+ export * from './asset-manager.js';
2
3
  export * from './class.utils.js';
3
4
  export * from './common.utils.js';
4
5
  export * from './endpoint.utils.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./array.utils.js"), exports);
5
+ tslib_1.__exportStar(require("./asset-manager.js"), exports);
5
6
  tslib_1.__exportStar(require("./class.utils.js"), exports);
6
7
  tslib_1.__exportStar(require("./common.utils.js"), exports);
7
8
  tslib_1.__exportStar(require("./endpoint.utils.js"), exports);
@@ -52,5 +52,6 @@ export type ParametersWithOverloads<T extends (...args: any[]) => any> = T exten
52
52
  } ? A1 : never;
53
53
  type _TupleOf<T, N extends number, R extends unknown[]> = R['length'] extends N ? R : _TupleOf<T, N, [T, ...R]>;
54
54
  export type TupleWithCount<T, N extends number | number[]> = N extends number ? number extends N ? T[] : _TupleOf<T, N, []> : N extends [infer A, ...infer R] ? A extends number ? R extends number[] ? TupleWithCount<T, A> | TupleWithCount<T, R> : never : never : N extends [] ? never : T[];
55
+ export type MaybePromise<T> = T | Promise<T>;
55
56
  export {};
56
57
  //# sourceMappingURL=type.utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type.utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/type.utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type.utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/type.utils.ts"],"names":[],"mappings":"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"}