@skmtc/core 0.0.785 → 0.0.786

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 (47) hide show
  1. package/esm/dsl/Identifier.d.ts +152 -0
  2. package/esm/dsl/Identifier.d.ts.map +1 -1
  3. package/esm/dsl/Identifier.js +152 -0
  4. package/esm/dsl/Import.d.ts +221 -0
  5. package/esm/dsl/Import.d.ts.map +1 -1
  6. package/esm/dsl/Import.js +202 -0
  7. package/esm/dsl/operation/OperationBase.d.ts +181 -1
  8. package/esm/dsl/operation/OperationBase.d.ts.map +1 -1
  9. package/esm/dsl/operation/OperationBase.js +181 -1
  10. package/esm/oas/document/Document.d.ts +155 -1
  11. package/esm/oas/document/Document.d.ts.map +1 -1
  12. package/esm/oas/document/Document.js +141 -2
  13. package/esm/oas/object/Object.d.ts +255 -10
  14. package/esm/oas/object/Object.d.ts.map +1 -1
  15. package/esm/oas/object/Object.js +229 -10
  16. package/esm/types/GeneratorKeys.d.ts +336 -0
  17. package/esm/types/GeneratorKeys.d.ts.map +1 -1
  18. package/esm/types/GeneratorKeys.js +243 -0
  19. package/esm/types/GeneratorType.d.ts +119 -0
  20. package/esm/types/GeneratorType.d.ts.map +1 -1
  21. package/esm/types/Method.d.ts +109 -0
  22. package/esm/types/Method.d.ts.map +1 -1
  23. package/esm/types/Method.js +84 -0
  24. package/package.json +1 -1
  25. package/script/dsl/Identifier.d.ts +152 -0
  26. package/script/dsl/Identifier.d.ts.map +1 -1
  27. package/script/dsl/Identifier.js +152 -0
  28. package/script/dsl/Import.d.ts +221 -0
  29. package/script/dsl/Import.d.ts.map +1 -1
  30. package/script/dsl/Import.js +202 -0
  31. package/script/dsl/operation/OperationBase.d.ts +181 -1
  32. package/script/dsl/operation/OperationBase.d.ts.map +1 -1
  33. package/script/dsl/operation/OperationBase.js +181 -1
  34. package/script/oas/document/Document.d.ts +155 -1
  35. package/script/oas/document/Document.d.ts.map +1 -1
  36. package/script/oas/document/Document.js +141 -2
  37. package/script/oas/object/Object.d.ts +255 -10
  38. package/script/oas/object/Object.d.ts.map +1 -1
  39. package/script/oas/object/Object.js +229 -10
  40. package/script/types/GeneratorKeys.d.ts +336 -0
  41. package/script/types/GeneratorKeys.d.ts.map +1 -1
  42. package/script/types/GeneratorKeys.js +243 -0
  43. package/script/types/GeneratorType.d.ts +119 -0
  44. package/script/types/GeneratorType.d.ts.map +1 -1
  45. package/script/types/Method.d.ts +109 -0
  46. package/script/types/Method.d.ts.map +1 -1
  47. package/script/types/Method.js +84 -0
@@ -1,11 +1,163 @@
1
1
  import { EntityType } from './EntityType.js';
2
+ /**
3
+ * Represents a TypeScript identifier in the SKMTC DSL system.
4
+ *
5
+ * The `Identifier` class encapsulates named entities in generated code,
6
+ * providing type-safe creation and management of variables, types, and other
7
+ * identifiers. It distinguishes between different kinds of identifiers and
8
+ * optionally tracks type information.
9
+ *
10
+ * This class uses factory methods instead of direct construction to ensure
11
+ * proper entity type classification and to provide a cleaner API.
12
+ *
13
+ * ## Key Features
14
+ *
15
+ * - **Type Safety**: Distinguishes between variables, types, and other entities
16
+ * - **Factory Methods**: Provides semantic constructors for different identifier types
17
+ * - **Optional Typing**: Can associate type information with variable identifiers
18
+ * - **String Conversion**: Clean string representation for code generation
19
+ *
20
+ * @example Creating variable identifiers
21
+ * ```typescript
22
+ * import { Identifier } from '@skmtc/core';
23
+ *
24
+ * // Simple variable without type
25
+ * const userName = Identifier.createVariable('userName');
26
+ * console.log(userName.toString()); // 'userName'
27
+ *
28
+ * // Typed variable
29
+ * const userId = Identifier.createVariable('userId', 'string');
30
+ * console.log(userId.name); // 'userId'
31
+ * console.log(userId.typeName); // 'string'
32
+ * ```
33
+ *
34
+ * @example Creating type identifiers
35
+ * ```typescript
36
+ * // Type identifier
37
+ * const userType = Identifier.createType('User');
38
+ * console.log(userType.toString()); // 'User'
39
+ * console.log(userType.entityType.value); // 'type'
40
+ * ```
41
+ *
42
+ * @example Using in code generation
43
+ * ```typescript
44
+ * import { Definition, Identifier } from '@skmtc/core';
45
+ *
46
+ * class ApiGenerator {
47
+ * generateFunction(name: string) {
48
+ * const funcId = Identifier.createVariable(name);
49
+ * const requestType = Identifier.createType('RequestType');
50
+ *
51
+ * return new Definition({
52
+ * name: funcId.name,
53
+ * content: `function ${funcId}(data: ${requestType}) {
54
+ * // Implementation
55
+ * }`
56
+ * });
57
+ * }
58
+ * }
59
+ * ```
60
+ */
2
61
  export declare class Identifier {
62
+ /** The identifier name */
3
63
  name: string;
64
+ /** The entity type (variable, type, etc.) */
4
65
  entityType: EntityType;
66
+ /** Optional type name for typed variables */
5
67
  typeName?: string;
68
+ /**
69
+ * Creates a new Identifier instance.
70
+ *
71
+ * This constructor is private to enforce the use of factory methods
72
+ * that provide better semantic clarity and type safety.
73
+ *
74
+ * @param args - Identifier configuration
75
+ */
6
76
  private constructor();
77
+ /**
78
+ * Creates a variable identifier with optional type information.
79
+ *
80
+ * This factory method creates an identifier for variables, constants,
81
+ * function parameters, and other value-based entities. Optionally
82
+ * associates type information for typed variables.
83
+ *
84
+ * @param name - The variable name
85
+ * @param typeName - Optional type name for the variable
86
+ * @returns A new variable Identifier instance
87
+ *
88
+ * @example Untyped variable
89
+ * ```typescript
90
+ * const count = Identifier.createVariable('count');
91
+ * console.log(count.name); // 'count'
92
+ * console.log(count.typeName); // undefined
93
+ * ```
94
+ *
95
+ * @example Typed variable
96
+ * ```typescript
97
+ * const userId = Identifier.createVariable('userId', 'string');
98
+ * console.log(userId.name); // 'userId'
99
+ * console.log(userId.typeName); // 'string'
100
+ * ```
101
+ *
102
+ * @example In function generation
103
+ * ```typescript
104
+ * const param = Identifier.createVariable('data', 'RequestData');
105
+ * const funcDef = `function processRequest(${param.name}: ${param.typeName}) {}`;
106
+ * ```
107
+ */
7
108
  static createVariable(name: string, typeName?: string): Identifier;
109
+ /**
110
+ * Creates a type identifier for TypeScript types.
111
+ *
112
+ * This factory method creates an identifier for type entities like
113
+ * interfaces, type aliases, classes, and other type-level constructs.
114
+ * Type identifiers don't have associated type information since they
115
+ * represent types themselves.
116
+ *
117
+ * @param name - The type name
118
+ * @returns A new type Identifier instance
119
+ *
120
+ * @example Interface type
121
+ * ```typescript
122
+ * const userInterface = Identifier.createType('User');
123
+ * console.log(userInterface.name); // 'User'
124
+ * console.log(userInterface.entityType.value); // 'type'
125
+ * ```
126
+ *
127
+ * @example Type alias
128
+ * ```typescript
129
+ * const statusType = Identifier.createType('Status');
130
+ * const typeDef = `type ${statusType} = 'pending' | 'complete'`;
131
+ * ```
132
+ *
133
+ * @example Generic type
134
+ * ```typescript
135
+ * const responseType = Identifier.createType('ApiResponse');
136
+ * const genericDef = `interface ${responseType}<T> { data: T; success: boolean; }`;
137
+ * ```
138
+ */
8
139
  static createType(name: string): Identifier;
140
+ /**
141
+ * Returns the string representation of the identifier.
142
+ *
143
+ * This method simply returns the identifier name, which is the most
144
+ * common usage when generating code. The name can be used directly
145
+ * in code generation contexts.
146
+ *
147
+ * @returns The identifier name as a string
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * const variable = Identifier.createVariable('userName');
152
+ * const typeId = Identifier.createType('User');
153
+ *
154
+ * console.log(variable.toString()); // 'userName'
155
+ * console.log(typeId.toString()); // 'User'
156
+ *
157
+ * // Can be used directly in template strings
158
+ * const code = `const ${variable}: ${typeId} = getUserData();`;
159
+ * ```
160
+ */
9
161
  toString(): string;
10
162
  }
11
163
  //# sourceMappingURL=Identifier.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Identifier.d.ts","sourceRoot":"","sources":["../../src/dsl/Identifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAQ5C,qBAAa,UAAU;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,UAAU,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB,OAAO;IAMP,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU;IAelE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAO3C,QAAQ,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"Identifier.d.ts","sourceRoot":"","sources":["../../src/dsl/Identifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAc5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,qBAAa,UAAU;IACrB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;IAEZ,6CAA6C;IAC7C,UAAU,EAAE,UAAU,CAAA;IAEtB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAA;IAEjB;;;;;;;OAOG;IACH,OAAO;IAMP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU;IAelE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IAO3C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,IAAI,MAAM;CAGnB"}
@@ -1,18 +1,88 @@
1
1
  import { EntityType } from './EntityType.js';
2
+ /**
3
+ * Represents a TypeScript identifier in the SKMTC DSL system.
4
+ *
5
+ * The `Identifier` class encapsulates named entities in generated code,
6
+ * providing type-safe creation and management of variables, types, and other
7
+ * identifiers. It distinguishes between different kinds of identifiers and
8
+ * optionally tracks type information.
9
+ *
10
+ * This class uses factory methods instead of direct construction to ensure
11
+ * proper entity type classification and to provide a cleaner API.
12
+ *
13
+ * ## Key Features
14
+ *
15
+ * - **Type Safety**: Distinguishes between variables, types, and other entities
16
+ * - **Factory Methods**: Provides semantic constructors for different identifier types
17
+ * - **Optional Typing**: Can associate type information with variable identifiers
18
+ * - **String Conversion**: Clean string representation for code generation
19
+ *
20
+ * @example Creating variable identifiers
21
+ * ```typescript
22
+ * import { Identifier } from '@skmtc/core';
23
+ *
24
+ * // Simple variable without type
25
+ * const userName = Identifier.createVariable('userName');
26
+ * console.log(userName.toString()); // 'userName'
27
+ *
28
+ * // Typed variable
29
+ * const userId = Identifier.createVariable('userId', 'string');
30
+ * console.log(userId.name); // 'userId'
31
+ * console.log(userId.typeName); // 'string'
32
+ * ```
33
+ *
34
+ * @example Creating type identifiers
35
+ * ```typescript
36
+ * // Type identifier
37
+ * const userType = Identifier.createType('User');
38
+ * console.log(userType.toString()); // 'User'
39
+ * console.log(userType.entityType.value); // 'type'
40
+ * ```
41
+ *
42
+ * @example Using in code generation
43
+ * ```typescript
44
+ * import { Definition, Identifier } from '@skmtc/core';
45
+ *
46
+ * class ApiGenerator {
47
+ * generateFunction(name: string) {
48
+ * const funcId = Identifier.createVariable(name);
49
+ * const requestType = Identifier.createType('RequestType');
50
+ *
51
+ * return new Definition({
52
+ * name: funcId.name,
53
+ * content: `function ${funcId}(data: ${requestType}) {
54
+ * // Implementation
55
+ * }`
56
+ * });
57
+ * }
58
+ * }
59
+ * ```
60
+ */
2
61
  export class Identifier {
62
+ /**
63
+ * Creates a new Identifier instance.
64
+ *
65
+ * This constructor is private to enforce the use of factory methods
66
+ * that provide better semantic clarity and type safety.
67
+ *
68
+ * @param args - Identifier configuration
69
+ */
3
70
  constructor({ name, typeName, entityType }) {
71
+ /** The identifier name */
4
72
  Object.defineProperty(this, "name", {
5
73
  enumerable: true,
6
74
  configurable: true,
7
75
  writable: true,
8
76
  value: void 0
9
77
  });
78
+ /** The entity type (variable, type, etc.) */
10
79
  Object.defineProperty(this, "entityType", {
11
80
  enumerable: true,
12
81
  configurable: true,
13
82
  writable: true,
14
83
  value: void 0
15
84
  });
85
+ /** Optional type name for typed variables */
16
86
  Object.defineProperty(this, "typeName", {
17
87
  enumerable: true,
18
88
  configurable: true,
@@ -23,6 +93,37 @@ export class Identifier {
23
93
  this.typeName = typeName;
24
94
  this.entityType = entityType;
25
95
  }
96
+ /**
97
+ * Creates a variable identifier with optional type information.
98
+ *
99
+ * This factory method creates an identifier for variables, constants,
100
+ * function parameters, and other value-based entities. Optionally
101
+ * associates type information for typed variables.
102
+ *
103
+ * @param name - The variable name
104
+ * @param typeName - Optional type name for the variable
105
+ * @returns A new variable Identifier instance
106
+ *
107
+ * @example Untyped variable
108
+ * ```typescript
109
+ * const count = Identifier.createVariable('count');
110
+ * console.log(count.name); // 'count'
111
+ * console.log(count.typeName); // undefined
112
+ * ```
113
+ *
114
+ * @example Typed variable
115
+ * ```typescript
116
+ * const userId = Identifier.createVariable('userId', 'string');
117
+ * console.log(userId.name); // 'userId'
118
+ * console.log(userId.typeName); // 'string'
119
+ * ```
120
+ *
121
+ * @example In function generation
122
+ * ```typescript
123
+ * const param = Identifier.createVariable('data', 'RequestData');
124
+ * const funcDef = `function processRequest(${param.name}: ${param.typeName}) {}`;
125
+ * ```
126
+ */
26
127
  static createVariable(name, typeName) {
27
128
  if (typeName) {
28
129
  return new Identifier({
@@ -36,12 +137,63 @@ export class Identifier {
36
137
  entityType: new EntityType('variable')
37
138
  });
38
139
  }
140
+ /**
141
+ * Creates a type identifier for TypeScript types.
142
+ *
143
+ * This factory method creates an identifier for type entities like
144
+ * interfaces, type aliases, classes, and other type-level constructs.
145
+ * Type identifiers don't have associated type information since they
146
+ * represent types themselves.
147
+ *
148
+ * @param name - The type name
149
+ * @returns A new type Identifier instance
150
+ *
151
+ * @example Interface type
152
+ * ```typescript
153
+ * const userInterface = Identifier.createType('User');
154
+ * console.log(userInterface.name); // 'User'
155
+ * console.log(userInterface.entityType.value); // 'type'
156
+ * ```
157
+ *
158
+ * @example Type alias
159
+ * ```typescript
160
+ * const statusType = Identifier.createType('Status');
161
+ * const typeDef = `type ${statusType} = 'pending' | 'complete'`;
162
+ * ```
163
+ *
164
+ * @example Generic type
165
+ * ```typescript
166
+ * const responseType = Identifier.createType('ApiResponse');
167
+ * const genericDef = `interface ${responseType}<T> { data: T; success: boolean; }`;
168
+ * ```
169
+ */
39
170
  static createType(name) {
40
171
  return new Identifier({
41
172
  name,
42
173
  entityType: new EntityType('type')
43
174
  });
44
175
  }
176
+ /**
177
+ * Returns the string representation of the identifier.
178
+ *
179
+ * This method simply returns the identifier name, which is the most
180
+ * common usage when generating code. The name can be used directly
181
+ * in code generation contexts.
182
+ *
183
+ * @returns The identifier name as a string
184
+ *
185
+ * @example
186
+ * ```typescript
187
+ * const variable = Identifier.createVariable('userName');
188
+ * const typeId = Identifier.createType('User');
189
+ *
190
+ * console.log(variable.toString()); // 'userName'
191
+ * console.log(typeId.toString()); // 'User'
192
+ *
193
+ * // Can be used directly in template strings
194
+ * const code = `const ${variable}: ${typeId} = getUserData();`;
195
+ * ```
196
+ */
45
197
  toString() {
46
198
  return this.name;
47
199
  }
@@ -1,21 +1,242 @@
1
+ /**
2
+ * Constructor arguments for {@link Import}.
3
+ */
1
4
  type ConstructorArgs = {
5
+ /** The module path to import from */
2
6
  module: string;
7
+ /** Array of import names (can be strings or alias objects) */
3
8
  importNames: ImportNameArg[];
4
9
  };
10
+ /**
11
+ * Represents a TypeScript import statement in the SKMTC DSL system.
12
+ *
13
+ * The `Import` class generates properly formatted import statements for TypeScript
14
+ * files, handling named imports with optional aliases. It's used throughout the
15
+ * code generation pipeline to manage module dependencies.
16
+ *
17
+ * This class supports both simple string imports and aliased imports, making it
18
+ * easy to avoid naming conflicts and provide cleaner import statements.
19
+ *
20
+ * @example Basic named imports
21
+ * ```typescript
22
+ * import { Import } from '@skmtc/core';
23
+ *
24
+ * const basicImport = new Import({
25
+ * module: './types',
26
+ * importNames: ['User', 'Product', 'Order']
27
+ * });
28
+ *
29
+ * console.log(basicImport.toString());
30
+ * // import { User, Product, Order } from './types'
31
+ * ```
32
+ *
33
+ * @example Imports with aliases
34
+ * ```typescript
35
+ * const aliasedImport = new Import({
36
+ * module: 'react',
37
+ * importNames: [
38
+ * 'useState',
39
+ * 'useEffect',
40
+ * { 'default': 'React' } // Import default as React
41
+ * ]
42
+ * });
43
+ *
44
+ * console.log(aliasedImport.toString());
45
+ * // import { useState, useEffect, default as React } from 'react'
46
+ * ```
47
+ *
48
+ * @example Mixed imports
49
+ * ```typescript
50
+ * const mixedImport = new Import({
51
+ * module: './api/client',
52
+ * importNames: [
53
+ * 'ApiClient',
54
+ * { 'RequestOptions': 'Options' }, // Alias to avoid conflicts
55
+ * 'ResponseType'
56
+ * ]
57
+ * });
58
+ *
59
+ * console.log(mixedImport.toString());
60
+ * // import { ApiClient, RequestOptions as Options, ResponseType } from './api/client'
61
+ * ```
62
+ *
63
+ * @example Using in File generation
64
+ * ```typescript
65
+ * import { File, Import } from '@skmtc/core';
66
+ *
67
+ * const file = new File({ path: './generated.ts', settings: undefined });
68
+ *
69
+ * // Add import to file
70
+ * file.imports.set('./types', new Set(['User', 'Product']));
71
+ *
72
+ * // Or create Import directly for more control
73
+ * const customImport = new Import({
74
+ * module: './helpers',
75
+ * importNames: [{ 'validateEmail': 'emailValidator' }]
76
+ * });
77
+ * ```
78
+ */
5
79
  export declare class Import {
80
+ /** The module path to import from */
6
81
  module: string;
82
+ /** Array of parsed import names with potential aliases */
7
83
  importNames: ImportName[];
84
+ /**
85
+ * Creates a new Import instance.
86
+ *
87
+ * @param args - Import configuration
88
+ * @param args.module - The module path to import from (e.g., './types', 'react')
89
+ * @param args.importNames - Array of import names, can be strings or alias objects
90
+ *
91
+ * @example
92
+ * ```typescript
93
+ * const importStatement = new Import({
94
+ * module: './models/User',
95
+ * importNames: [
96
+ * 'User', // Simple import
97
+ * { 'UserType': 'IUser' }, // Aliased import
98
+ * 'createUser' // Another simple import
99
+ * ]
100
+ * });
101
+ * ```
102
+ */
8
103
  constructor({ module, importNames }: ConstructorArgs);
104
+ /**
105
+ * Converts the import to a record format.
106
+ *
107
+ * This method creates a record representation where the module path is the key
108
+ * and the import names are the value. Useful for serialization or when working
109
+ * with import maps.
110
+ *
111
+ * @returns A record with module as key and import names as value
112
+ *
113
+ * @example
114
+ * ```typescript
115
+ * const importStatement = new Import({
116
+ * module: './types',
117
+ * importNames: ['User', { 'Product': 'IProduct' }]
118
+ * });
119
+ *
120
+ * const record = importStatement.toRecord();
121
+ * console.log(record);
122
+ * // {
123
+ * // './types': ['User', { 'Product': 'IProduct' }]
124
+ * // }
125
+ * ```
126
+ */
9
127
  toRecord(): Record<string, ImportNameArg[]>;
128
+ /**
129
+ * Generates the TypeScript import statement string.
130
+ *
131
+ * This method produces a properly formatted ES6 import statement that can be
132
+ * written directly to a TypeScript file. It handles both simple and aliased
133
+ * imports correctly.
134
+ *
135
+ * @returns The formatted import statement string
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * const basicImport = new Import({
140
+ * module: './utils',
141
+ * importNames: ['formatDate', 'parseJson']
142
+ * });
143
+ *
144
+ * console.log(basicImport.toString());
145
+ * // import { formatDate, parseJson } from './utils'
146
+ *
147
+ * const aliasedImport = new Import({
148
+ * module: 'lodash',
149
+ * importNames: [{ 'isEqual': 'deepEqual' }, 'cloneDeep']
150
+ * });
151
+ *
152
+ * console.log(aliasedImport.toString());
153
+ * // import { isEqual as deepEqual, cloneDeep } from 'lodash'
154
+ * ```
155
+ *
156
+ * @todo Move syntax to typescript package to enable language-agnostic use
157
+ */
10
158
  toString(): string;
11
159
  }
160
+ /**
161
+ * Argument type for import names - can be a simple string or an alias object.
162
+ *
163
+ * @example String import
164
+ * ```typescript
165
+ * const simpleImport: ImportNameArg = 'User';
166
+ * ```
167
+ *
168
+ * @example Aliased import
169
+ * ```typescript
170
+ * const aliasedImport: ImportNameArg = { 'User': 'IUser' };
171
+ * // This creates: User as IUser
172
+ * ```
173
+ */
12
174
  export type ImportNameArg = string | {
13
175
  [name: string]: string;
14
176
  };
177
+ /**
178
+ * Represents a single import name with optional aliasing.
179
+ *
180
+ * This class handles the parsing and formatting of individual import specifiers,
181
+ * supporting both simple imports and aliased imports. It's used internally by
182
+ * the {@link Import} class to manage import statement components.
183
+ *
184
+ * @example Simple import name
185
+ * ```typescript
186
+ * const simple = new ImportName('useState');
187
+ * console.log(simple.toString()); // 'useState'
188
+ * ```
189
+ *
190
+ * @example Aliased import name
191
+ * ```typescript
192
+ * const aliased = new ImportName({ 'React': 'ReactLib' });
193
+ * console.log(aliased.toString()); // 'React as ReactLib'
194
+ * ```
195
+ */
15
196
  export declare class ImportName {
197
+ /** The original name being imported */
16
198
  name: string;
199
+ /** The alias to use (if any) */
17
200
  alias?: string;
201
+ /**
202
+ * Creates a new ImportName instance.
203
+ *
204
+ * @param name - Either a string for simple imports or an object for aliased imports
205
+ *
206
+ * @example Simple import
207
+ * ```typescript
208
+ * const importName = new ImportName('User');
209
+ * // Results in: User
210
+ * ```
211
+ *
212
+ * @example Aliased import
213
+ * ```typescript
214
+ * const importName = new ImportName({ 'UserInterface': 'IUser' });
215
+ * // Results in: UserInterface as IUser
216
+ * ```
217
+ */
18
218
  constructor(name: ImportNameArg);
219
+ /**
220
+ * Generates the string representation of the import name.
221
+ *
222
+ * This method creates the appropriate import specifier syntax,
223
+ * either a simple name or an aliased import using TypeScript's
224
+ * 'as' keyword.
225
+ *
226
+ * @returns The formatted import specifier string
227
+ *
228
+ * @example Simple import
229
+ * ```typescript
230
+ * const simple = new ImportName('useState');
231
+ * console.log(simple.toString()); // 'useState'
232
+ * ```
233
+ *
234
+ * @example Aliased import
235
+ * ```typescript
236
+ * const aliased = new ImportName({ 'Component': 'ReactComponent' });
237
+ * console.log(aliased.toString()); // 'Component as ReactComponent'
238
+ * ```
239
+ */
19
240
  toString(): string;
20
241
  }
21
242
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"Import.d.ts","sourceRoot":"","sources":["../../src/dsl/Import.ts"],"names":[],"mappings":"AAAA,KAAK,eAAe,GAAG;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,aAAa,EAAE,CAAA;CAC7B,CAAA;AAED,qBAAa,MAAM;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,UAAU,EAAE,CAAA;gBAEb,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,eAAe;IAKpD,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IAQ3C,QAAQ,IAAI,MAAM;CAKnB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE/D,qBAAa,UAAU;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;gBAEF,IAAI,EAAE,aAAa;IAW/B,QAAQ,IAAI,MAAM;CAGnB"}
1
+ {"version":3,"file":"Import.d.ts","sourceRoot":"","sources":["../../src/dsl/Import.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,KAAK,eAAe,GAAG;IACrB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,8DAA8D;IAC9D,WAAW,EAAE,aAAa,EAAE,CAAA;CAC7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AACH,qBAAa,MAAM;IACjB,qCAAqC;IACrC,MAAM,EAAE,MAAM,CAAA;IAEd,0DAA0D;IAC1D,WAAW,EAAE,UAAU,EAAE,CAAA;IAEzB;;;;;;;;;;;;;;;;;;OAkBG;gBACS,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,eAAe;IAKpD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IAQ3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACH,QAAQ,IAAI,MAAM;CAKnB;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAA;AAE/D;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,UAAU;IACrB,uCAAuC;IACvC,IAAI,EAAE,MAAM,CAAA;IAEZ,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd;;;;;;;;;;;;;;;;OAgBG;gBACS,IAAI,EAAE,aAAa;IAW/B;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,QAAQ,IAAI,MAAM;CAGnB"}