@axinom/mosaic-cli 0.18.4 → 0.18.5-rc.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.
@@ -1,4 +1,4 @@
1
- import { AsyncAPIDocument } from '@asyncapi/parser';
1
+ import { AsyncAPIDocumentInterface } from '@asyncapi/parser';
2
2
  import { MessageCodegenOptions } from './message-codegen-options';
3
3
  /**
4
4
  * Processes AsyncAPI document and generates Typescript classes from it.
@@ -45,19 +45,19 @@ export declare class Codegen {
45
45
  * @param asyncAPIDocument - AsyncAPI Document object
46
46
  * @param outputPath - output path for generated files
47
47
  */
48
- exportTsModels(asyncAPIDocument: AsyncAPIDocument, outputPath: string): Promise<void>;
48
+ exportTsModels(asyncAPIDocument: AsyncAPIDocumentInterface, outputPath: string): Promise<void>;
49
49
  /**
50
50
  * Export all JSON Schemas from AsyncAPI document
51
51
  * @param asyncAPIDocument - AsyncAPI Document object
52
52
  * @param outputPath - output path for generated files
53
53
  */
54
- exportSchemas(asyncAPIDocument: AsyncAPIDocument, outputPath: string): Promise<void>;
54
+ exportSchemas(asyncAPIDocument: AsyncAPIDocumentInterface, outputPath: string): Promise<void>;
55
55
  /**
56
56
  * Export all AsyncAPI document channels to Messaging Settings
57
57
  * @param asyncAPIDocument - AsyncAPI Document object
58
58
  * @param outputPath - output path for generated files
59
59
  */
60
- exportSettings(asyncAPIDocument: AsyncAPIDocument, outputPath: string): Promise<void>;
60
+ exportSettings(asyncAPIDocument: AsyncAPIDocumentInterface, outputPath: string): Promise<void>;
61
61
  /**
62
62
  * Generate Messaging Settings based on Channels data.
63
63
  * @param serviceId - service identifier
@@ -8,6 +8,8 @@ const parser_1 = require("@asyncapi/parser");
8
8
  const endent_1 = require("endent");
9
9
  const fs = require("fs");
10
10
  const path = require("path");
11
+ const presets_1 = require("./presets");
12
+ const utils_1 = require("./utils");
11
13
  /**
12
14
  * Processes AsyncAPI document and generates Typescript classes from it.
13
15
  * Generated output:
@@ -68,15 +70,15 @@ class Codegen {
68
70
  if (files.length === 0) {
69
71
  //Calculate correct TS output related directories for barrel exports.
70
72
  const tsDirs = dirs.map((d) => path.join(this.typesOutputRoot, path.relative(this.schemaRoot, d)));
71
- const tsIndexOutPath = path.join(this.typesOutputRoot, getRelativeDir(this.schemaRoot, dir), 'index.ts');
73
+ const tsIndexOutPath = path.join(this.typesOutputRoot, (0, utils_1.getRelativeDir)(this.schemaRoot, dir), 'index.ts');
72
74
  yield this.barrelExportTs([], tsDirs, tsIndexOutPath);
73
75
  // Calculate correct JSON schema output related directories for barrel exports.
74
76
  const schemaDirs = dirs.map((d) => path.join(this.schemasOutputRoot, path.relative(this.schemaRoot, d)));
75
- const schemaIndexOutPath = path.join(this.schemasOutputRoot, getRelativeDir(this.schemaRoot, dir), 'index.ts');
77
+ const schemaIndexOutPath = path.join(this.schemasOutputRoot, (0, utils_1.getRelativeDir)(this.schemaRoot, dir), 'index.ts');
76
78
  yield this.barrelExportSchema([], schemaDirs, schemaIndexOutPath);
77
79
  // Calculate correct Message Settings output related directories for barrel exports.
78
80
  const settingsDirs = dirs.map((d) => path.join(this.messagingSettingsOutputRoot, path.relative(this.schemaRoot, d)));
79
- const messagingIndexOutPath = path.join(this.messagingSettingsOutputRoot, getRelativeDir(this.schemaRoot, dir), 'index.ts');
81
+ const messagingIndexOutPath = path.join(this.messagingSettingsOutputRoot, (0, utils_1.getRelativeDir)(this.schemaRoot, dir), 'index.ts');
80
82
  yield this.barrelExportSettings([], settingsDirs, messagingIndexOutPath);
81
83
  }
82
84
  });
@@ -103,17 +105,22 @@ class Codegen {
103
105
  */
104
106
  processAsyncAPIDocument(asyncApiFile) {
105
107
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
106
- const schemaContent = fs.readFileSync(asyncApiFile, 'utf8');
107
- const asyncApiDocument = yield (0, parser_1.parse)(schemaContent, { path: asyncApiFile });
108
+ const parser = new parser_1.default();
109
+ const { document, diagnostics } = yield (0, parser_1.fromFile)(parser, asyncApiFile).parse();
110
+ if (document === undefined) {
111
+ console.error(`Failed to parse ${asyncApiFile}.`);
112
+ console.error(diagnostics);
113
+ process.exit(1);
114
+ }
108
115
  //export Typescript models
109
- const tsModelsOutputPath = path.join(this.typesOutputRoot, getRelativeDir(this.schemaRoot, asyncApiFile));
110
- yield this.exportTsModels(asyncApiDocument, tsModelsOutputPath);
116
+ const tsModelsOutputPath = path.join(this.typesOutputRoot, (0, utils_1.getRelativeDir)(this.schemaRoot, asyncApiFile));
117
+ yield this.exportTsModels(document, tsModelsOutputPath);
111
118
  //export JSON Schemas
112
- const schemasOutputPath = path.join(this.schemasOutputRoot, getRelativeDir(this.schemaRoot, asyncApiFile));
113
- yield this.exportSchemas(asyncApiDocument, schemasOutputPath);
119
+ const schemasOutputPath = path.join(this.schemasOutputRoot, (0, utils_1.getRelativeDir)(this.schemaRoot, asyncApiFile));
120
+ yield this.exportSchemas(document, schemasOutputPath);
114
121
  //export message settings
115
- const messagingSettingsOutputPath = path.join(this.messagingSettingsOutputRoot, getRelativeDir(this.schemaRoot, asyncApiFile));
116
- yield this.exportSettings(asyncApiDocument, messagingSettingsOutputPath);
122
+ const messagingSettingsOutputPath = path.join(this.messagingSettingsOutputRoot, (0, utils_1.getRelativeDir)(this.schemaRoot, asyncApiFile));
123
+ yield this.exportSettings(document, messagingSettingsOutputPath);
117
124
  });
118
125
  }
119
126
  /**
@@ -125,25 +132,36 @@ class Codegen {
125
132
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
126
133
  const generator = new modelina_1.TypeScriptGenerator({
127
134
  modelType: 'interface',
128
- namingConvention: CustomNamingConvention,
129
135
  enumType: 'union',
136
+ mapType: 'indexedObject',
137
+ constraints: {
138
+ propertyKey: (0, modelina_1.typeScriptDefaultPropertyKeyConstraints)({
139
+ NAMING_FORMATTER: (name) => modelina_1.FormatHelpers.toSnakeCase(name),
140
+ NO_RESERVED_KEYWORDS: (name) => {
141
+ // TODO: This is a hack to avoid reserved keywords in property names.
142
+ // Currently many non-reserved keywords are also being replaced: https://github.com/asyncapi/modelina/issues/1053
143
+ return name;
144
+ },
145
+ }),
146
+ },
147
+ // Order of presets matters!
130
148
  presets: [
131
- ADDITIONAL_PROPERTIES_PRESET,
132
- NULLABLE_PROPERTY_TO_UNION_PRESET,
133
- EXPORT_UNION_TYPE_PRESET,
134
- EXPORT_INTERFACE_PRESET,
135
- DESCRIPTION_PRESET,
136
- IMPORTS_PRESET,
149
+ presets_1.NULLABLE_PROPERTY_TO_UNION_PRESET,
150
+ presets_1.ANY_TO_UNKNOWN_PRESET,
151
+ presets_1.ADDITIONAL_PROPERTIES_PRESET,
152
+ presets_1.EXPORT_TYPES_PRESET,
153
+ modelina_1.TS_DESCRIPTION_PRESET,
154
+ presets_1.IMPORTS_PRESET,
137
155
  ],
138
156
  });
139
- let outputModels = yield yield generator.generate(asyncAPIDocument);
140
- for (const key in asyncAPIDocument.components().schemas()) {
141
- const referencedModels = yield generator.generate(asyncAPIDocument.components().schemas()[key].json());
157
+ let outputModels = yield generator.generate(asyncAPIDocument);
158
+ for (const schema of asyncAPIDocument.components().schemas()) {
159
+ const referencedModels = yield generator.generate(schema.json());
142
160
  outputModels = outputModels.map((om) => referencedModels.find((rm) => om.modelName === rm.modelName) || om);
143
161
  }
144
162
  const groupedModels = {};
145
163
  outputModels.map((outModel) => {
146
- const modelPathPrefix = getModelPathPrefix(outModel.modelName);
164
+ const modelPathPrefix = (0, utils_1.getModelPathPrefix)(outModel.modelName);
147
165
  if (groupedModels[modelPathPrefix] === undefined) {
148
166
  groupedModels[modelPathPrefix] = [];
149
167
  }
@@ -183,8 +201,8 @@ class Codegen {
183
201
  exportSchemas(asyncAPIDocument, outputPath) {
184
202
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
185
203
  const groupedSchemas = {};
186
- for (const [, message] of asyncAPIDocument.allMessages()) {
187
- const schemaPathPrefix = getModelPathPrefix(getMessageTitle(message));
204
+ for (const message of asyncAPIDocument.messages()) {
205
+ const schemaPathPrefix = (0, utils_1.getModelPathPrefix)((0, utils_1.getMessageTitle)(message));
188
206
  if (groupedSchemas[schemaPathPrefix] === undefined) {
189
207
  groupedSchemas[schemaPathPrefix] = [];
190
208
  }
@@ -202,9 +220,13 @@ class Codegen {
202
220
  recursive: true,
203
221
  });
204
222
  for (const msg of messages) {
205
- const outputSchemaPath = this.buildSchemaOutPath(groupOutPutPath, getMessageTitle(msg));
206
- yield this.bundleSchema(msg.originalPayload(), outputSchemaPath);
207
- schemaFiles.push(outputSchemaPath);
223
+ const payload = msg.payload();
224
+ if (payload !== undefined && payload.json() !== undefined) {
225
+ const filteredPayload = (0, utils_1.removeXParserProperties)(payload.json());
226
+ const outputSchemaPath = this.buildSchemaOutPath(groupOutPutPath, (0, utils_1.getMessageTitle)(msg));
227
+ yield this.bundleSchema(filteredPayload, outputSchemaPath);
228
+ schemaFiles.push(outputSchemaPath);
229
+ }
208
230
  }
209
231
  //generate barrel export for all model in AsyncAPI document
210
232
  const schemasIndexOutPath = path.join(groupOutPutPath, 'index.ts');
@@ -220,24 +242,22 @@ class Codegen {
220
242
  * @param outputPath - output path for generated files
221
243
  */
222
244
  exportSettings(asyncAPIDocument, outputPath) {
245
+ var _a, _b;
223
246
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
224
- const serviceTitle = getServiceTitle(asyncAPIDocument);
225
- const serviceId = getServiceId(asyncAPIDocument);
247
+ const serviceTitle = (0, utils_1.getServiceTitle)(asyncAPIDocument);
248
+ const serviceId = (0, utils_1.getServiceId)(asyncAPIDocument);
226
249
  const channelsData = [];
227
- for (const routingKey of asyncAPIDocument.channelNames()) {
228
- const channel = asyncAPIDocument.channel(routingKey);
229
- if (channel.hasBinding('amqp')) {
230
- const queueName = channel.binding('amqp')['queue']['name'];
231
- const payloadName = channel.hasSubscribe()
232
- ? channel.subscribe().message().payload().title()
233
- : channel.hasPublish()
234
- ? channel.publish().message().payload().title()
235
- : 'undefined';
250
+ for (const channel of asyncAPIDocument.channels()) {
251
+ const queueName = (_a = channel.bindings().get('amqp')) === null || _a === void 0 ? void 0 : _a.value().queue.name;
252
+ if (queueName !== undefined) {
253
+ const routingKey = channel.address();
254
+ const action = (0, utils_1.getChannelAction)(channel);
255
+ const payloadName = (_b = (0, utils_1.getPayloadTitle)(channel)) !== null && _b !== void 0 ? _b : 'undefined';
236
256
  channelsData.push({
237
- routingKey: routingKey,
238
- queueName: queueName,
239
- payloadName: payloadName,
240
- acceptedAction: channel.hasSubscribe() ? 'subscribe' : `publish`,
257
+ routingKey,
258
+ queueName,
259
+ payloadName,
260
+ acceptedAction: action,
241
261
  isMultiTenant: routingKey.includes('*.*'),
242
262
  });
243
263
  }
@@ -369,18 +389,18 @@ class Codegen {
369
389
  const file = files[0];
370
390
  schemaEnum = (0, endent_1.default) `
371
391
  export enum MessageEnvelopeSchema {
372
- MessageEnvelope = '${toPosixPath(this.tsPathToSchemaPath(file))}'
392
+ MessageEnvelope = '${(0, utils_1.toPosixPath)(this.tsPathToSchemaPath(file))}'
373
393
  }
374
394
  `;
375
395
  }
376
396
  else {
377
- let enumNameBase = modelina_1.FormatHelpers.toPascalCase(getRelativeDir(this.typesOutputRoot, path.dirname(outPath)));
397
+ let enumNameBase = modelina_1.FormatHelpers.toPascalCase((0, utils_1.getRelativeDir)(this.typesOutputRoot, path.dirname(outPath)));
378
398
  if (!enumNameBase.includes('Types')) {
379
399
  enumNameBase = enumNameBase.replace('Payloads', ''); // Remove the Payloads prefix to reduce noise
380
400
  schemaEnum = (0, endent_1.default) `
381
401
  export enum ${enumNameBase}Schemas {
382
402
  ${sortedFiles
383
- .map((f) => `${modelina_1.FormatHelpers.toPascalCase(path.basename(f, '.ts'))} = '${toPosixPath(this.tsPathToSchemaPath(f))}'`)
403
+ .map((f) => `${modelina_1.FormatHelpers.toPascalCase(path.basename(f, '.ts'))} = '${(0, utils_1.toPosixPath)(this.tsPathToSchemaPath(f))}'`)
384
404
  .join(',\n')}
385
405
  }`;
386
406
  typeNamesEnum = (0, endent_1.default) `
@@ -477,191 +497,8 @@ class Codegen {
477
497
  * @param tsFile - Path to a generated TS file.
478
498
  */
479
499
  tsPathToSchemaPath(tsFile) {
480
- return path.join(getRelativeDir(this.typesOutputRoot, tsFile), `${path.basename(tsFile, '.ts')}.json`);
500
+ return path.join((0, utils_1.getRelativeDir)(this.typesOutputRoot, tsFile), `${path.basename(tsFile, '.ts')}.json`);
481
501
  }
482
502
  }
483
503
  exports.Codegen = Codegen;
484
- function getRelativeDir(from, to) {
485
- return fs.statSync(to).isFile()
486
- ? path.dirname(path.relative(from, to))
487
- : path.relative(from, to);
488
- }
489
- function getMessageTitle(message) {
490
- var _a, _b;
491
- return ((_b = (_a = message.payload().title()) !== null && _a !== void 0 ? _a : message.extension('x-parser-message-name')) !== null && _b !== void 0 ? _b : message.payload().extension('x-parser-schema-id'));
492
- }
493
- /**
494
- * Retrieve Service Title from AsyncAPI document.
495
- * As Title returned value set in info.title property of document.
496
- * @param asyncAPIDocument - AsyncAPI document.
497
- */
498
- function getServiceTitle(asyncAPIDocument) {
499
- return asyncAPIDocument.info().title();
500
- }
501
- /**
502
- * Retrieve Service Id from AsyncAPI document.
503
- * As Id returned value set in extension property `x-service-id`.
504
- * If extension property is not set - returned Service Title in lower-kebab-case.
505
- * @param asyncAPIDocument - AsyncAPI document.
506
- */
507
- function getServiceId(asyncAPIDocument) {
508
- var _a;
509
- return ((_a = asyncAPIDocument.extension('x-service-id')) !== null && _a !== void 0 ? _a : modelina_1.FormatHelpers.toParamCase(getServiceTitle(asyncAPIDocument)));
510
- }
511
- /**
512
- * Converts a path into a POSIX path by replacing current path separator with `/`.
513
- * @param p - Path to convert.
514
- */
515
- function toPosixPath(p) {
516
- return path.posix.join(...p.split(path.sep));
517
- }
518
- /**
519
- * Generating the path prefix for model.
520
- * model name ends with "command" - prefix "commands"
521
- * model name ends with "event" - prefix "events"
522
- * default prefix "types"
523
- * @param modelName - name of the model, defined in json schema, or AsyncAPI document
524
- */
525
- function getModelPathPrefix(modelName) {
526
- return modelName
527
- ? modelName.toLowerCase().endsWith('command')
528
- ? 'commands'
529
- : modelName.toLowerCase().endsWith('event')
530
- ? 'events'
531
- : 'types'
532
- : 'types';
533
- }
534
- /**
535
- * Adding 'export' for interfaces
536
- */
537
- const EXPORT_INTERFACE_PRESET = {
538
- interface: {
539
- self({ content }) {
540
- return `export ${content}`;
541
- },
542
- property({ content }) {
543
- return content;
544
- },
545
- },
546
- };
547
- /**
548
- * Adding 'export' for union enumeration types
549
- */
550
- const EXPORT_UNION_TYPE_PRESET = {
551
- type: {
552
- self({ renderer }) {
553
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
554
- return `export ${yield renderer.defaultSelf()}`;
555
- });
556
- },
557
- },
558
- };
559
- /**
560
- * Preset for TypeScriptGenerator, adds descriptions to types and properties.
561
- */
562
- const DESCRIPTION_PRESET = {
563
- interface: {
564
- self({ renderer, content, model }) {
565
- const desc = model.getFromOriginalInput('description');
566
- if (desc) {
567
- const renderedDesc = renderer.renderComments(desc);
568
- return `${renderedDesc}\n${content}`;
569
- }
570
- return content;
571
- },
572
- property({ renderer, model, content, propertyName }) {
573
- if (model.getFromOriginalInput('properties') !== undefined) {
574
- const property = model.getFromOriginalInput('properties')[propertyName];
575
- if (property !== undefined) {
576
- const desc = property['description'];
577
- if (desc) {
578
- const renderedDesc = renderer.renderComments(desc);
579
- return `${renderedDesc}\n${content}`;
580
- }
581
- }
582
- }
583
- return content;
584
- },
585
- },
586
- };
587
- /**
588
- * Preset for TypeScriptGenerator, additionalProperties added to models as "[k: string]: unknown;"
589
- */
590
- const ADDITIONAL_PROPERTIES_PRESET = {
591
- interface: {
592
- self({ content }) {
593
- return content;
594
- },
595
- property({ renderer, propertyName, property, type }) {
596
- if (type === modelina_1.PropertyType.additionalProperty) {
597
- return property.originalInput === true
598
- ? `\n[k: string]: unknown;`
599
- : renderer
600
- .renderProperty(propertyName, property)
601
- .replace('additionalProperties?:', '[k: string]:');
602
- }
603
- return renderer.renderProperty(propertyName, property, type);
604
- },
605
- },
606
- };
607
- /**
608
- * Preset for TypeScriptGenerator, adds imports to resulting model.
609
- */
610
- const IMPORTS_PRESET = {
611
- interface: {
612
- self({ content, model }) {
613
- const interfaceName = model.getFromOriginalInput('title');
614
- const interfacePrefix = getModelPathPrefix(interfaceName);
615
- const dependencies = model.getNearestDependencies(model);
616
- const imports = dependencies.map((dep) => ({
617
- class: modelina_1.FormatHelpers.toPascalCase(dep),
618
- location: interfacePrefix !== getModelPathPrefix(dep)
619
- ? `../${getModelPathPrefix(dep)}/${modelina_1.FormatHelpers.toParamCase(dep)}`
620
- : `./${modelina_1.FormatHelpers.toParamCase(dep)}`,
621
- }));
622
- return (0, endent_1.default) `
623
- ${imports
624
- .sort((a, b) => a.location.localeCompare(b.location))
625
- .map((i) => `import { ${i.class} } from '${i.location}';`)
626
- .join('\n')}
627
- ${content}`;
628
- },
629
- property({ content }) {
630
- return content;
631
- },
632
- },
633
- };
634
- /**
635
- * Preset for TypeScriptGenerator, sets nullable properties as unions in resulted models(compatibility with zapatos generated models).
636
- */
637
- const NULLABLE_PROPERTY_TO_UNION_PRESET = {
638
- interface: {
639
- self({ content }) {
640
- return content;
641
- },
642
- property({ renderer, model, content, propertyName }) {
643
- if (model.getFromOriginalInput('properties') !== undefined) {
644
- const property = model.getFromOriginalInput('properties')[propertyName];
645
- if (property !== undefined) {
646
- if (Array.isArray(property['type'])) {
647
- const renderProp = renderer.renderProperty(propertyName, property);
648
- return renderProp.replace('object', content.split(':')[1].replace(';', ''));
649
- }
650
- }
651
- }
652
- return content;
653
- },
654
- },
655
- };
656
- /**
657
- * Extension for @asyncapi/modelina, to make sure that the type name is in pascal.
658
- */
659
- const CustomNamingConvention = {
660
- type: (name) => {
661
- if (!name) {
662
- return '';
663
- }
664
- return modelina_1.FormatHelpers.toPascalCase(name);
665
- },
666
- };
667
504
  //# sourceMappingURL=codegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/commands/msg-codegen/codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../../src/commands/msg-codegen/codegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { TypeScriptPreset } from '@asyncapi/modelina';
2
+ /**
3
+ * Exports types.
4
+ */
5
+ export declare const EXPORT_TYPES_PRESET: TypeScriptPreset;
6
+ /**
7
+ * Preset for TypeScriptGenerator, additionalProperties added to models as "[k: string]: unknown;"
8
+ */
9
+ export declare const ADDITIONAL_PROPERTIES_PRESET: TypeScriptPreset;
10
+ /**
11
+ * Preset for TypeScriptGenerator, adds imports to resulting model.
12
+ */
13
+ export declare const IMPORTS_PRESET: TypeScriptPreset;
14
+ /**
15
+ * Preset for TypeScriptGenerator, sets nullable properties as unions in resulted models(compatibility with zapatos generated models).
16
+ */
17
+ export declare const NULLABLE_PROPERTY_TO_UNION_PRESET: TypeScriptPreset;
18
+ /**
19
+ * Converts all occurrences of 'any' to 'unknown'.
20
+ */
21
+ export declare const ANY_TO_UNKNOWN_PRESET: TypeScriptPreset;
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ANY_TO_UNKNOWN_PRESET = exports.NULLABLE_PROPERTY_TO_UNION_PRESET = exports.IMPORTS_PRESET = exports.ADDITIONAL_PROPERTIES_PRESET = exports.EXPORT_TYPES_PRESET = void 0;
4
+ const modelina_1 = require("@asyncapi/modelina");
5
+ const endent_1 = require("endent");
6
+ const utils_1 = require("./utils");
7
+ /**
8
+ * Exports types.
9
+ */
10
+ exports.EXPORT_TYPES_PRESET = {
11
+ interface: {
12
+ self({ content }) {
13
+ return `export ${content}`;
14
+ },
15
+ },
16
+ enum: {
17
+ self({ content }) {
18
+ return `export ${content}`;
19
+ },
20
+ },
21
+ type: {
22
+ self({ content }) {
23
+ return `export ${content}`;
24
+ },
25
+ },
26
+ };
27
+ /**
28
+ * Preset for TypeScriptGenerator, additionalProperties added to models as "[k: string]: unknown;"
29
+ */
30
+ exports.ADDITIONAL_PROPERTIES_PRESET = {
31
+ interface: {
32
+ self({ content }) {
33
+ return content;
34
+ },
35
+ property({ property, content }) {
36
+ if (property.unconstrainedPropertyName === 'additionalProperties') {
37
+ return `\n[k: string]: unknown;`;
38
+ }
39
+ return content;
40
+ },
41
+ },
42
+ };
43
+ /**
44
+ * Preset for TypeScriptGenerator, adds imports to resulting model.
45
+ */
46
+ exports.IMPORTS_PRESET = {
47
+ interface: {
48
+ self({ content, model }) {
49
+ const interfacePrefix = (0, utils_1.getModelPathPrefix)(model.name);
50
+ const dependencies = model.getNearestDependencies();
51
+ const imports = dependencies.map((dep) => ({
52
+ class: modelina_1.FormatHelpers.toPascalCase(dep.name),
53
+ location: interfacePrefix !== (0, utils_1.getModelPathPrefix)(dep.name)
54
+ ? `../${(0, utils_1.getModelPathPrefix)(dep.name)}/${modelina_1.FormatHelpers.toParamCase(dep.name)}`
55
+ : `./${modelina_1.FormatHelpers.toParamCase(dep.name)}`,
56
+ }));
57
+ return (0, endent_1.default) `
58
+ ${imports
59
+ .sort((a, b) => a.location.localeCompare(b.location))
60
+ .map((i) => `import { ${i.class} } from '${i.location}';`)
61
+ .join('\n')}
62
+ ${content}`;
63
+ },
64
+ property({ content }) {
65
+ return content;
66
+ },
67
+ },
68
+ };
69
+ /**
70
+ * Preset for TypeScriptGenerator, sets nullable properties as unions in resulted models(compatibility with zapatos generated models).
71
+ */
72
+ exports.NULLABLE_PROPERTY_TO_UNION_PRESET = {
73
+ interface: {
74
+ self({ content }) {
75
+ return content;
76
+ },
77
+ property({ renderer, property, content }) {
78
+ var _a, _b, _c;
79
+ let index = (0, utils_1.indexOfNullObjectProperty)(property);
80
+ // Regular object property, not array.
81
+ if (index > -1) {
82
+ property.property.type = (0, utils_1.ensureNullable)(property.property.type, index);
83
+ return renderer.renderProperty(property);
84
+ }
85
+ // Array property.
86
+ index = (0, utils_1.indexOfNullArrayProperty)(property);
87
+ if (index > -1) {
88
+ // This pattern is not perfect but it's good enough for this use case.
89
+ const regex = /((?<single>\w+)|\((?<multiple>[\w\s|]+)\))\[\]/;
90
+ const match = regex.exec(property.property.type);
91
+ if (match && (((_a = match === null || match === void 0 ? void 0 : match.groups) === null || _a === void 0 ? void 0 : _a.single) || ((_b = match === null || match === void 0 ? void 0 : match.groups) === null || _b === void 0 ? void 0 : _b.multiple))) {
92
+ const newType = (0, utils_1.ensureNullable)((_c = match.groups.single) !== null && _c !== void 0 ? _c : match.groups.multiple, index);
93
+ // At this point we assume that the type will be a union of at least two types - null and something else.
94
+ property.property.type = `(${newType})[]`;
95
+ return renderer.renderProperty(property);
96
+ }
97
+ }
98
+ return content;
99
+ },
100
+ },
101
+ };
102
+ /**
103
+ * Converts all occurrences of 'any' to 'unknown'.
104
+ */
105
+ exports.ANY_TO_UNKNOWN_PRESET = {
106
+ interface: {
107
+ property({ renderer, property }) {
108
+ property.property.type = (0, utils_1.replaceAnyType)(property.property.type, 'unknown');
109
+ return renderer.renderProperty(property);
110
+ },
111
+ },
112
+ type: {
113
+ self({ content }) {
114
+ // TODO: This is inconsistent with interface but not sure how to use type renderer.
115
+ return (0, utils_1.replaceAnyType)(content, 'unknown');
116
+ },
117
+ },
118
+ };
119
+ //# sourceMappingURL=presets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.js","sourceRoot":"","sources":["../../../src/commands/msg-codegen/presets.ts"],"names":[],"mappings":"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"}