@goast/typescript 0.5.3 → 0.6.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/LICENSE +21 -21
  2. package/esm/src/file-builder.d.ts.map +1 -1
  3. package/esm/src/file-builder.js +2 -5
  4. package/esm/src/generators/models/model-generator.d.ts.map +1 -1
  5. package/esm/src/generators/models/model-generator.js +6 -2
  6. package/esm/src/generators/services/k6-clients/k6-client-generator.d.ts.map +1 -1
  7. package/esm/src/generators/services/k6-clients/k6-client-generator.js +2 -1
  8. package/package.json +3 -3
  9. package/script/src/file-builder.d.ts.map +1 -1
  10. package/script/src/file-builder.js +1 -5
  11. package/script/src/generators/models/model-generator.d.ts.map +1 -1
  12. package/script/src/generators/models/model-generator.js +5 -1
  13. package/script/src/generators/services/k6-clients/k6-client-generator.d.ts.map +1 -1
  14. package/script/src/generators/services/k6-clients/k6-client-generator.js +2 -1
  15. package/src/mod.ts +0 -7
  16. package/src/src/assets.ts +0 -9
  17. package/src/src/ast/_index.ts +0 -54
  18. package/src/src/ast/common.ts +0 -1
  19. package/src/src/ast/index.ts +0 -1
  20. package/src/src/ast/node.ts +0 -10
  21. package/src/src/ast/nodes/argument.ts +0 -40
  22. package/src/src/ast/nodes/array-type.ts +0 -49
  23. package/src/src/ast/nodes/arrow-function.ts +0 -91
  24. package/src/src/ast/nodes/call.ts +0 -55
  25. package/src/src/ast/nodes/class.ts +0 -133
  26. package/src/src/ast/nodes/constructor-parameter.ts +0 -70
  27. package/src/src/ast/nodes/constructor.ts +0 -77
  28. package/src/src/ast/nodes/decorator.ts +0 -76
  29. package/src/src/ast/nodes/doc-tag.ts +0 -291
  30. package/src/src/ast/nodes/doc.ts +0 -102
  31. package/src/src/ast/nodes/enum-value.ts +0 -72
  32. package/src/src/ast/nodes/enum.ts +0 -77
  33. package/src/src/ast/nodes/export.ts +0 -54
  34. package/src/src/ast/nodes/function-type.ts +0 -60
  35. package/src/src/ast/nodes/function.ts +0 -107
  36. package/src/src/ast/nodes/generic-parameter.ts +0 -71
  37. package/src/src/ast/nodes/indexer.ts +0 -60
  38. package/src/src/ast/nodes/interface.ts +0 -117
  39. package/src/src/ast/nodes/intersection-type.ts +0 -67
  40. package/src/src/ast/nodes/lookup-type.ts +0 -53
  41. package/src/src/ast/nodes/method.ts +0 -138
  42. package/src/src/ast/nodes/object-type.ts +0 -52
  43. package/src/src/ast/nodes/object.ts +0 -48
  44. package/src/src/ast/nodes/parameter.ts +0 -85
  45. package/src/src/ast/nodes/property-accessor.ts +0 -173
  46. package/src/src/ast/nodes/property.ts +0 -192
  47. package/src/src/ast/nodes/reference.ts +0 -194
  48. package/src/src/ast/nodes/string.ts +0 -49
  49. package/src/src/ast/nodes/tuple.ts +0 -53
  50. package/src/src/ast/nodes/type-alias.ts +0 -75
  51. package/src/src/ast/nodes/typeof.ts +0 -42
  52. package/src/src/ast/nodes/types.ts +0 -40
  53. package/src/src/ast/nodes/union-type.ts +0 -62
  54. package/src/src/ast/nodes/variable.ts +0 -73
  55. package/src/src/ast/references/angular.ts +0 -24
  56. package/src/src/ast/references/easy-network-stub.ts +0 -21
  57. package/src/src/ast/references/index.ts +0 -5
  58. package/src/src/ast/references/k6.ts +0 -8
  59. package/src/src/ast/references/rxjs.ts +0 -7
  60. package/src/src/ast/references/typescript.ts +0 -35
  61. package/src/src/ast/utils/get-type-script-builder-options.ts +0 -19
  62. package/src/src/ast/utils/to-ts-node.ts +0 -27
  63. package/src/src/ast/utils/write-ts-generic-parameters.ts +0 -25
  64. package/src/src/ast/utils/write-ts-members.ts +0 -28
  65. package/src/src/ast/utils/write-ts-nodes.ts +0 -35
  66. package/src/src/ast/utils/write-ts-parameters.ts +0 -25
  67. package/src/src/common-results.ts +0 -26
  68. package/src/src/config.ts +0 -89
  69. package/src/src/file-builder.ts +0 -136
  70. package/src/src/generators/file-generator.ts +0 -15
  71. package/src/src/generators/index.ts +0 -6
  72. package/src/src/generators/models/index.ts +0 -3
  73. package/src/src/generators/models/model-generator.ts +0 -469
  74. package/src/src/generators/models/models-generator.ts +0 -108
  75. package/src/src/generators/models/models.ts +0 -121
  76. package/src/src/generators/services/angular-services/angular-service-generator.ts +0 -406
  77. package/src/src/generators/services/angular-services/angular-services-generator.ts +0 -295
  78. package/src/src/generators/services/angular-services/index.ts +0 -3
  79. package/src/src/generators/services/angular-services/models.ts +0 -277
  80. package/src/src/generators/services/angular-services/refs.ts +0 -54
  81. package/src/src/generators/services/easy-network-stub/easy-network-stub-generator.ts +0 -242
  82. package/src/src/generators/services/easy-network-stub/easy-network-stubs-generator.ts +0 -211
  83. package/src/src/generators/services/easy-network-stub/index.ts +0 -3
  84. package/src/src/generators/services/easy-network-stub/models.ts +0 -124
  85. package/src/src/generators/services/easy-network-stub/refs.ts +0 -45
  86. package/src/src/generators/services/fetch-clients/fetch-client-generator.ts +0 -275
  87. package/src/src/generators/services/fetch-clients/fetch-clients-generator.ts +0 -163
  88. package/src/src/generators/services/fetch-clients/index.ts +0 -3
  89. package/src/src/generators/services/fetch-clients/models.ts +0 -130
  90. package/src/src/generators/services/fetch-clients/refs.ts +0 -21
  91. package/src/src/generators/services/k6-clients/index.ts +0 -3
  92. package/src/src/generators/services/k6-clients/k6-client-generator.ts +0 -465
  93. package/src/src/generators/services/k6-clients/k6-clients-generator.ts +0 -171
  94. package/src/src/generators/services/k6-clients/models.ts +0 -247
  95. package/src/src/generators/services/k6-clients/refs.ts +0 -16
  96. package/src/src/import-collection.ts +0 -236
  97. package/src/src/utils.ts +0 -72
package/src/src/config.ts DELETED
@@ -1,89 +0,0 @@
1
- import type { DefaultGenerationProviderConfig, ExtendedStringCasing, OpenApiGeneratorConfig } from '@goast/core';
2
-
3
- import type { ImportModuleTransformer } from './utils.js';
4
-
5
- export type TypeScriptGeneratorConfig = OpenApiGeneratorConfig & {
6
- /**
7
- * The transformer to use for transforming import module paths.
8
- * @default 'omit-extension'
9
- */
10
- importModuleTransformer: ImportModuleTransformer;
11
-
12
- /**
13
- * The casing to use for file names.
14
- * @default 'kebab'
15
- */
16
- fileNameCasing: ExtendedStringCasing;
17
-
18
- /**
19
- * The casing to use for type names.
20
- * @default 'pascal'
21
- */
22
- typeNameCasing: ExtendedStringCasing;
23
-
24
- /**
25
- * The casing to use for function names.
26
- * @default 'camel'
27
- */
28
- functionNameCasing: ExtendedStringCasing;
29
-
30
- /**
31
- * The casing to use for property names.
32
- * @default 'camel'
33
- */
34
- propertyNameCasing: ExtendedStringCasing;
35
-
36
- /**
37
- * The casing to use for enum value names.
38
- * @default 'pascal'
39
- */
40
- enumValueNameCasing: ExtendedStringCasing;
41
-
42
- /**
43
- * The casing to use for constant names.
44
- * @default { casing: 'snake', wordCasing: 'all-upper' }
45
- */
46
- constantNameCasing: ExtendedStringCasing;
47
-
48
- /**
49
- * The casing to use for generic parameter names.
50
- * @default { casing: 'pascal', prefix: 'T' }
51
- */
52
- genericParamNameCasing: ExtendedStringCasing;
53
-
54
- /**
55
- * The casing to use for parameter names.
56
- * @default 'camel'
57
- */
58
- paramNameCasing: ExtendedStringCasing;
59
-
60
- /**
61
- * Whether to prefer `unknown` over `any`.
62
- * @default true
63
- */
64
- preferUnknown: boolean;
65
-
66
- /**
67
- * Whether to use single quotes for strings.
68
- * @default true
69
- */
70
- useSingleQuotes: boolean;
71
- };
72
-
73
- export const defaultTypeScriptGeneratorConfig: DefaultGenerationProviderConfig<TypeScriptGeneratorConfig> = {
74
- indent: { type: 'spaces', count: 2 },
75
-
76
- importModuleTransformer: 'omit-extension',
77
-
78
- fileNameCasing: 'kebab',
79
- typeNameCasing: 'pascal',
80
- functionNameCasing: 'camel',
81
- propertyNameCasing: 'camel',
82
- enumValueNameCasing: 'pascal',
83
- constantNameCasing: { casing: 'snake', wordCasing: 'all-upper' },
84
- genericParamNameCasing: { casing: 'pascal', prefix: 'T' },
85
- paramNameCasing: 'camel',
86
-
87
- preferUnknown: true,
88
- useSingleQuotes: true,
89
- };
@@ -1,136 +0,0 @@
1
- import { dirname } from 'node:path';
2
-
3
-
4
- import fs from 'fs-extra';
5
-
6
- import { type AppendParam, type AppendValue, isAppendValue, type Nullable, SourceBuilder } from '@goast/core';
7
-
8
- import { TsNode } from './ast/node.js';
9
- import { defaultTypeScriptGeneratorConfig, type TypeScriptGeneratorConfig } from './config.js';
10
- import type { TypeScriptModelGeneratorOutput } from './generators/index.js';
11
- import {
12
- ImportExportCollection,
13
- type TypeScriptExportOptions,
14
- type TypeScriptImportOptions,
15
- } from './import-collection.js';
16
-
17
- export type TypeScriptAppends<TAdditionalAppends> = TsNode<TypeScriptFileBuilder> | TAdditionalAppends;
18
- export type TypeScriptAppendParam<TBuilder extends TypeScriptFileBuilder, TAdditionalAppends> = AppendParam<
19
- TBuilder,
20
- TypeScriptAppends<TAdditionalAppends>
21
- >;
22
-
23
- export function isTypeScriptAppendValue<TBuilder extends TypeScriptFileBuilder = TypeScriptFileBuilder>(
24
- value: unknown,
25
- ): value is AppendValue<TBuilder> {
26
- return isAppendValue(value) || value instanceof TsNode;
27
- }
28
-
29
- export class TypeScriptFileBuilder<TAdditionalAppends = never>
30
- extends SourceBuilder<TypeScriptAppends<TAdditionalAppends>> {
31
- public readonly filePath: string | undefined;
32
- public readonly imports: ImportExportCollection;
33
-
34
- public override get options(): TypeScriptGeneratorConfig {
35
- return super.options as TypeScriptGeneratorConfig;
36
- }
37
-
38
- constructor(filePath?: string, options?: TypeScriptGeneratorConfig) {
39
- super(options ?? defaultTypeScriptGeneratorConfig);
40
- this.filePath = filePath;
41
- this.imports = new ImportExportCollection({
42
- filePath: filePath,
43
- importModuleTransformer: this.options.importModuleTransformer,
44
- useSingleQuotes: this.options.useSingleQuotes,
45
- });
46
- }
47
-
48
- public addImport(name: string, moduleNameOrfilePath: string, options?: TypeScriptImportOptions): this {
49
- this.imports.addImport(name, moduleNameOrfilePath, options);
50
- return this;
51
- }
52
-
53
- public addExport(name: string, filePath: string, options?: TypeScriptExportOptions): this {
54
- this.imports.addExport(name, filePath, options);
55
- return this;
56
- }
57
-
58
- public override clear(): void {
59
- super.clear();
60
- this.imports.clear();
61
- }
62
-
63
- public override toString(addPadding: boolean = true): string {
64
- const builder = new SourceBuilder(this.options);
65
- if (this.filePath?.match(/\.[cm]?js$/)) {
66
- builder.appendLine('// @ts-check');
67
- }
68
-
69
- builder.ensurePreviousLineEmpty();
70
- this.imports.writeTo(builder);
71
-
72
- const baseString = super.toString();
73
- if (baseString && addPadding) {
74
- builder.ensurePreviousLineEmpty();
75
- }
76
-
77
- builder.append(baseString);
78
-
79
- if (addPadding) {
80
- builder.ensureCurrentLineEmpty();
81
- }
82
-
83
- return builder.toString();
84
- }
85
-
86
- protected override appendSingle(value: TypeScriptAppendParam<this, TAdditionalAppends>) {
87
- super.appendSingle(value);
88
- if (value instanceof TsNode) {
89
- value.write(this);
90
- }
91
- }
92
-
93
- public appendModelUsage(type: TypeScriptModelGeneratorOutput, options?: TypeScriptImportOptions): this {
94
- this.append(options?.type === 'js-doc' ? type.component.replace(/\/\*\*.*\*\/\s*/gs, '') : type.component);
95
- for (const i of type.imports) {
96
- this.addImport(i.name, i.modulePath, { ...i, ...options });
97
- }
98
- return this;
99
- }
100
-
101
- public writeToFile(filePath?: string): void {
102
- if (!filePath) filePath = this.filePath;
103
- if (!filePath) throw new Error('File path is required');
104
- fs.ensureDirSync(dirname(filePath));
105
- fs.writeFileSync(filePath, this.toString());
106
- }
107
-
108
- public static generate(options: {
109
- filePath: string;
110
- logName?: Nullable<string>;
111
- options?: TypeScriptGeneratorConfig;
112
- generator: (builder: TypeScriptFileBuilder) => void;
113
- }): void {
114
- TypeScriptFileBuilder.tryGenerate(options);
115
- }
116
-
117
- public static tryGenerate({
118
- filePath,
119
- generator,
120
- options,
121
- logName,
122
- }: {
123
- filePath: Nullable<string>;
124
- logName?: Nullable<string>;
125
- options?: TypeScriptGeneratorConfig;
126
- generator: (builder: TypeScriptFileBuilder) => void;
127
- }) {
128
- if (!filePath) return;
129
- if (logName) {
130
- console.log(`Generating ${logName} to ${filePath}...`);
131
- }
132
- const builder = new TypeScriptFileBuilder(filePath, options);
133
- generator(builder);
134
- builder.writeToFile();
135
- }
136
- }
@@ -1,15 +0,0 @@
1
- import type { MaybePromise, OpenApiGenerationProviderContext, OpenApiGeneratorInput, SourceBuilder } from '@goast/core';
2
-
3
- import { ts } from '../ast/index.js';
4
- import type { TypeScriptGeneratorConfig } from '../config.js';
5
-
6
- export abstract class TypeScriptFileGenerator<
7
- TContext extends OpenApiGenerationProviderContext<OpenApiGeneratorInput, TypeScriptGeneratorConfig>,
8
- TOutput,
9
- > {
10
- public abstract generate(context: TContext): MaybePromise<TOutput>;
11
-
12
- protected getAnyType(context: TContext): ts.Reference<SourceBuilder> {
13
- return context.config.preferUnknown ? ts.refs.unknown() : ts.refs.any();
14
- }
15
- }
@@ -1,6 +0,0 @@
1
- export * from './file-generator.js';
2
- export * from './models/index.js';
3
- export * from './services/angular-services/index.js';
4
- export * from './services/easy-network-stub/index.js';
5
- export * from './services/fetch-clients/index.js';
6
- export * from './services/k6-clients/index.js';
@@ -1,3 +0,0 @@
1
- export * from './model-generator.js';
2
- export * from './models-generator.js';
3
- export * from './models.js';