@axinom/mosaic-cli 0.3.10-rc.2 → 0.4.0-rc.0

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,14 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ### [0.3.10](https://dev.azure.com/axinom/CMS/_git/Navy/branchCompare?baseVersion=GT@axinom/mosaic-cli@0.3.8&targetVersion=GT@axinom/mosaic-cli@0.3.10) (2021-10-25)
7
+
8
+ **Note:** Version bump only for package @axinom/mosaic-cli
9
+
10
+
11
+
12
+
13
+
6
14
  ### [0.3.9](https://dev.azure.com/axinom/CMS/_git/Navy/branchCompare?baseVersion=GT@axinom/mosaic-cli@0.3.8&targetVersion=GT@axinom/mosaic-cli@0.3.9) (2021-10-13)
7
15
 
8
16
  **Note:** Version bump only for package @axinom/mosaic-cli
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ts-node-script
2
+ import { AsyncAPIDocument } from '@asyncapi/parser';
2
3
  import { MessageCodegenOptions } from './message-codegen-options';
3
4
  export declare class Codegen {
4
5
  private readonly schemaRoot;
@@ -15,26 +16,39 @@ export declare class Codegen {
15
16
  walk(dir: string): Promise<void>;
16
17
  /**
17
18
  * Builds a path for the generated TS file from an input JSON schema path, retains directory structure.
18
- * @param schemaPath - Input JSON schema path.
19
+ * @param outputPath - output directory.
20
+ * @param typeName - Name of the type.
19
21
  */
20
- buildTsOutPath(schemaPath: string): string;
22
+ buildTsOutPath(outputPath: string, typeName: string): string;
21
23
  /**
22
24
  * Builds a path for the bundled JSON schema file from an input JSON schema path, retains directory structure.
23
- * @param schemaPath - Input JSON schema path.
25
+ * @param outputPath - output directory.
26
+ * @param typeName - Name of the type.
24
27
  */
25
- buildSchemaOutPath(schemaPath: string): string;
28
+ buildSchemaOutPath(outputPath: string, typeName: string): string;
26
29
  /**
27
- * Generates TS interfaces from JSON schema.
28
- * @param schemaPath - Input JSON schema path.
29
- * @param outPath - Output file path.
30
+ * Generates TS interfaces and JSON schemas from AsyncAPI schema.
31
+ * @param asyncApiFile - path to AsyncAPI document
30
32
  */
31
- generateTs(schemaPath: string, outPath: string): Promise<void>;
33
+ processAsyncAPIDocument(asyncApiFile: string): Promise<void>;
34
+ /**
35
+ * Export all TS models from AsyncAPI document
36
+ * @param asyncAPIDocument - AsyncAPI Document object
37
+ * @param outputPath - output path for generated files
38
+ */
39
+ exportTsModels(asyncAPIDocument: AsyncAPIDocument, outputPath: string): Promise<void>;
40
+ /**
41
+ * Export all JSON Schemas from AsyncAPI document
42
+ * @param asyncAPIDocument - AsyncAPI Document object
43
+ * @param outputPath - output path for generated files
44
+ */
45
+ exportSchemas(asyncAPIDocument: AsyncAPIDocument, outputPath: string): Promise<void>;
32
46
  /**
33
47
  * Bundles a JSON schema into a self-contained file by including all external refs.
34
- * @param schemaPath - Input JSON schema path.
48
+ * @param jsonSchema - Schema object.
35
49
  * @param outPath - Output JSON schema path.
36
50
  */
37
- bundleSchema(schemaPath: string, outPath: string): Promise<void>;
51
+ bundleSchema(jsonSchema: unknown, outPath: string): Promise<void>;
38
52
  /**
39
53
  * Generates a barrel index.ts for all modules inside `outPath`.
40
54
  * In addition it generates a schemas enum for the included modules to make it easier to map them to bundled JSON schemas.
@@ -4,19 +4,11 @@
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.Codegen = void 0;
6
6
  const tslib_1 = require("tslib");
7
+ const modelina_1 = require("@asyncapi/modelina");
8
+ const parser_1 = require("@asyncapi/parser");
7
9
  const endent_1 = require("endent");
8
10
  const fs = require("fs");
9
- const json_schema_ref_parser_1 = require("json-schema-ref-parser");
10
- const json_schema_to_typescript_1 = require("json-schema-to-typescript");
11
11
  const path = require("path");
12
- // Need to specify 'title' for all schemas - this is used to name generated TS interfaces/types:
13
- // https://github.com/bcherny/json-schema-to-typescript/issues/214
14
- // allOf (kind of) broken:
15
- // https://github.com/bcherny/json-schema-to-typescript/issues/96
16
- // Duplicate interfaces/types generated if description differs from the one in $ref:
17
- // https://github.com/bcherny/json-schema-to-typescript/issues/193
18
- // Shared references currently not supported:
19
- // https://github.com/bcherny/json-schema-to-typescript/issues/258
20
12
  class Codegen {
21
13
  constructor(options) {
22
14
  this.schemaRoot = path.resolve(options.inputDir);
@@ -31,10 +23,6 @@ class Codegen {
31
23
  this.typesOutputRoot = path.join(this.outputRoot, 'types');
32
24
  this.schemasOutputRoot = path.join(this.outputRoot, 'schemas');
33
25
  }
34
- // TODO: Add schema info for validation
35
- // TODO: Namespaces for better grouping of generated code?
36
- // TODO: Consider using TS AST API to build the source files.
37
- // TODO: Don't regenerate the whole dir tree on each change - update only what's needed, see https://github.com/mikeal/watch#watchwatchtreeroot-options-callback.
38
26
  run() {
39
27
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
40
28
  console.log('Running message cogegen.');
@@ -57,66 +45,162 @@ class Codegen {
57
45
  if ([...files, ...dirs].length === 0) {
58
46
  return;
59
47
  }
60
- for (const schemaFile of files) {
61
- console.log(`Processing ${schemaFile}.`);
62
- yield this.generateTs(schemaFile, this.buildTsOutPath(schemaFile));
63
- yield this.bundleSchema(schemaFile, this.buildSchemaOutPath(schemaFile));
48
+ for (const asyncApiFile of files) {
49
+ console.log(`Processing ${asyncApiFile}.`);
50
+ yield this.processAsyncAPIDocument(asyncApiFile);
64
51
  }
65
52
  for (const directory of dirs) {
66
53
  yield this.walk(directory);
67
54
  }
68
- // Calculate correct TS output related directories for barrel exports.
69
- const tsFiles = files.map((f) => this.buildTsOutPath(f));
70
- 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');
72
- yield this.barrelExportTs(tsFiles, tsDirs, tsIndexOutPath);
73
- // Calculate correct JSON schema output related directories for barrel exports.
74
- const schemaFiles = files.map((f) => this.buildSchemaOutPath(f));
75
- const schemaDirs = dirs.map((d) => path.join(this.schemasOutputRoot, path.relative(this.schemaRoot, d)));
76
- const schemaIndexOutPath = path.join(this.schemasOutputRoot, getRelativeDir(this.schemaRoot, dir), 'index.ts');
77
- yield this.barrelExportSchema(schemaFiles, schemaDirs, schemaIndexOutPath);
55
+ if (files.length === 0) {
56
+ //Calculate correct TS output related directories for barrel exports.
57
+ const tsDirs = dirs.map((d) => path.join(this.typesOutputRoot, path.relative(this.schemaRoot, d)));
58
+ const tsIndexOutPath = path.join(this.typesOutputRoot, getRelativeDir(this.schemaRoot, dir), 'index.ts');
59
+ yield this.barrelExportTs([], tsDirs, tsIndexOutPath);
60
+ // Calculate correct JSON schema output related directories for barrel exports.
61
+ const schemaDirs = dirs.map((d) => path.join(this.schemasOutputRoot, path.relative(this.schemaRoot, d)));
62
+ const schemaIndexOutPath = path.join(this.schemasOutputRoot, getRelativeDir(this.schemaRoot, dir), 'index.ts');
63
+ yield this.barrelExportSchema([], schemaDirs, schemaIndexOutPath);
64
+ }
78
65
  });
79
66
  }
80
67
  /**
81
68
  * Builds a path for the generated TS file from an input JSON schema path, retains directory structure.
82
- * @param schemaPath - Input JSON schema path.
69
+ * @param outputPath - output directory.
70
+ * @param typeName - Name of the type.
83
71
  */
84
- buildTsOutPath(schemaPath) {
85
- return path.join(this.typesOutputRoot, getRelativeDir(this.schemaRoot, schemaPath), `${path.basename(schemaPath, '.json')}.ts`);
72
+ buildTsOutPath(outputPath, typeName) {
73
+ return path.join(outputPath, `${modelina_1.FormatHelpers.toParamCase(typeName)}.ts`);
86
74
  }
87
75
  /**
88
76
  * Builds a path for the bundled JSON schema file from an input JSON schema path, retains directory structure.
89
- * @param schemaPath - Input JSON schema path.
77
+ * @param outputPath - output directory.
78
+ * @param typeName - Name of the type.
90
79
  */
91
- buildSchemaOutPath(schemaPath) {
92
- const relPath = path.relative(this.schemaRoot, schemaPath);
93
- return path.join(this.schemasOutputRoot, relPath);
80
+ buildSchemaOutPath(outputPath, typeName) {
81
+ return path.join(outputPath, `${modelina_1.FormatHelpers.toParamCase(typeName)}.json`);
94
82
  }
95
83
  /**
96
- * Generates TS interfaces from JSON schema.
97
- * @param schemaPath - Input JSON schema path.
98
- * @param outPath - Output file path.
84
+ * Generates TS interfaces and JSON schemas from AsyncAPI schema.
85
+ * @param asyncApiFile - path to AsyncAPI document
99
86
  */
100
- generateTs(schemaPath, outPath) {
87
+ processAsyncAPIDocument(asyncApiFile) {
101
88
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
102
- yield fs.promises.mkdir(path.dirname(outPath), { recursive: true });
103
- const ts = yield json_schema_to_typescript_1.compileFromFile(schemaPath, {
104
- cwd: path.dirname(schemaPath),
105
- unknownAny: true,
89
+ const schemaContent = fs.readFileSync(asyncApiFile, 'utf8');
90
+ const asyncApiDocument = yield parser_1.parse(schemaContent, { path: asyncApiFile });
91
+ //export Typescript models
92
+ const tsModelsOutputPath = path.join(this.typesOutputRoot, getRelativeDir(this.schemaRoot, asyncApiFile));
93
+ yield this.exportTsModels(asyncApiDocument, tsModelsOutputPath);
94
+ //export JSON Schemas
95
+ const schemasOutputPath = path.join(this.schemasOutputRoot, getRelativeDir(this.schemaRoot, asyncApiFile));
96
+ yield this.exportSchemas(asyncApiDocument, schemasOutputPath);
97
+ });
98
+ }
99
+ /**
100
+ * Export all TS models from AsyncAPI document
101
+ * @param asyncAPIDocument - AsyncAPI Document object
102
+ * @param outputPath - output path for generated files
103
+ */
104
+ exportTsModels(asyncAPIDocument, outputPath) {
105
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
106
+ const generator = new modelina_1.TypeScriptGenerator({
107
+ modelType: 'interface',
108
+ namingConvention: CustomNamingConvention,
109
+ enumType: 'union',
110
+ presets: [
111
+ ADDITIONAL_PROPERTIES_PRESET,
112
+ NULLABLE_PROPERTY_TO_UNION_PRESET,
113
+ DESCRIPTION_PRESET,
114
+ IMPORTS_PRESET,
115
+ ],
106
116
  });
107
- yield fs.promises.writeFile(outPath, ts);
117
+ let outputModels = yield yield generator.generate(asyncAPIDocument);
118
+ for (const key in asyncAPIDocument.components().schemas()) {
119
+ const referencedModels = yield generator.generate(asyncAPIDocument.components().schemas()[key].json());
120
+ outputModels = outputModels.map((om) => referencedModels.find((rm) => om.modelName === rm.modelName) || om);
121
+ }
122
+ const groupedModels = {};
123
+ outputModels.map((outModel) => {
124
+ const modelPathPrefix = getModelPathPrefix(outModel.modelName);
125
+ if (groupedModels[modelPathPrefix] === undefined) {
126
+ groupedModels[modelPathPrefix] = [];
127
+ }
128
+ groupedModels[modelPathPrefix].push(outModel);
129
+ });
130
+ const tsDirs = [];
131
+ for (const pathPrefix in groupedModels) {
132
+ const models = groupedModels[pathPrefix];
133
+ const groupOutPutPath = path.join(outputPath, pathPrefix);
134
+ if (pathPrefix) {
135
+ tsDirs.push(groupOutPutPath);
136
+ }
137
+ yield fs.promises.mkdir(groupOutPutPath, {
138
+ recursive: true,
139
+ });
140
+ const tsFiles = [];
141
+ for (const outputModel of models) {
142
+ const outputFilePath = this.buildTsOutPath(groupOutPutPath, outputModel.modelName);
143
+ yield fs.promises.writeFile(outputFilePath, outputModel.result);
144
+ tsFiles.push(outputFilePath);
145
+ }
146
+ //generate barrel export for all model in AsyncAPI document
147
+ const tsIndexOutPath = path.join(groupOutPutPath, 'index.ts');
148
+ yield this.barrelExportTs(tsFiles, [], tsIndexOutPath);
149
+ }
150
+ if (tsDirs.length > 0) {
151
+ const tsIndexOutPath = path.join(outputPath, 'index.ts');
152
+ yield this.barrelExportTs([], tsDirs, tsIndexOutPath);
153
+ }
154
+ });
155
+ }
156
+ /**
157
+ * Export all JSON Schemas from AsyncAPI document
158
+ * @param asyncAPIDocument - AsyncAPI Document object
159
+ * @param outputPath - output path for generated files
160
+ */
161
+ exportSchemas(asyncAPIDocument, outputPath) {
162
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
163
+ const groupedSchemas = {};
164
+ for (const [, message] of asyncAPIDocument.allMessages()) {
165
+ const schemaPathPrefix = getModelPathPrefix(getMessageTitle(message));
166
+ if (groupedSchemas[schemaPathPrefix] === undefined) {
167
+ groupedSchemas[schemaPathPrefix] = [];
168
+ }
169
+ groupedSchemas[schemaPathPrefix].push(message);
170
+ }
171
+ const schemaDirs = [];
172
+ for (const pathPrefix in groupedSchemas) {
173
+ const messages = groupedSchemas[pathPrefix];
174
+ const schemaFiles = [];
175
+ const groupOutPutPath = path.join(outputPath, pathPrefix);
176
+ if (pathPrefix) {
177
+ schemaDirs.push(groupOutPutPath);
178
+ }
179
+ yield fs.promises.mkdir(groupOutPutPath, {
180
+ recursive: true,
181
+ });
182
+ for (const msg of messages) {
183
+ const outputSchemaPath = this.buildSchemaOutPath(groupOutPutPath, getMessageTitle(msg));
184
+ yield this.bundleSchema(msg.originalPayload(), outputSchemaPath);
185
+ schemaFiles.push(outputSchemaPath);
186
+ }
187
+ //generate barrel export for all model in AsyncAPI document
188
+ const schemasIndexOutPath = path.join(groupOutPutPath, 'index.ts');
189
+ yield this.barrelExportSchema(schemaFiles, [], schemasIndexOutPath);
190
+ }
191
+ const schemaIndexOutPath = path.join(outputPath, 'index.ts');
192
+ yield this.barrelExportSchema([], schemaDirs, schemaIndexOutPath);
108
193
  });
109
194
  }
110
195
  /**
111
196
  * Bundles a JSON schema into a self-contained file by including all external refs.
112
- * @param schemaPath - Input JSON schema path.
197
+ * @param jsonSchema - Schema object.
113
198
  * @param outPath - Output JSON schema path.
114
199
  */
115
- bundleSchema(schemaPath, outPath) {
200
+ bundleSchema(jsonSchema, outPath) {
116
201
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
117
202
  yield fs.promises.mkdir(path.dirname(outPath), { recursive: true });
118
- const schema = yield json_schema_ref_parser_1.bundle(schemaPath);
119
- yield fs.promises.writeFile(outPath, JSON.stringify(schema, null, 2));
203
+ yield fs.promises.writeFile(outPath, JSON.stringify(jsonSchema, null, 2));
120
204
  });
121
205
  }
122
206
  // TODO: Consider doing named exports based on message groups to not just put all messages in one namespace.
@@ -159,20 +243,23 @@ class Codegen {
159
243
  `;
160
244
  }
161
245
  else {
162
- const enumNameBase = pathToPascalCase(getRelativeDir(this.typesOutputRoot, path.dirname(outPath))).replace('Payloads', ''); // Remove the Payloads prefix to reduce noise
163
- schemaEnum = endent_1.default `
246
+ let enumNameBase = modelina_1.FormatHelpers.toPascalCase(getRelativeDir(this.typesOutputRoot, path.dirname(outPath)));
247
+ if (!enumNameBase.includes('Types')) {
248
+ enumNameBase = enumNameBase.replace('Payloads', ''); // Remove the Payloads prefix to reduce noise
249
+ schemaEnum = endent_1.default `
164
250
  export enum ${enumNameBase}Schemas {
165
251
  ${sortedFiles
166
- .map((f) => `${pathToPascalCase(path.basename(f, '.ts'))} = '${toPosixPath(this.tsPathToSchemaPath(f))}'`)
167
- .join(',\n')}
252
+ .map((f) => `${modelina_1.FormatHelpers.toPascalCase(path.basename(f, '.ts'))} = '${toPosixPath(this.tsPathToSchemaPath(f))}'`)
253
+ .join(',\n')}
168
254
  }`;
169
- typeNamesEnum = endent_1.default `
255
+ typeNamesEnum = endent_1.default `
170
256
  export enum ${enumNameBase}Types {
171
257
  ${sortedFiles
172
- .sort()
173
- .map((f) => `${pathToPascalCase(path.basename(f, '.ts'))} = '${pathToPascalCase(path.basename(f, '.ts'))}'`)
174
- .join(',\n')}
258
+ .sort()
259
+ .map((f) => `${modelina_1.FormatHelpers.toPascalCase(path.basename(f, '.ts'))} = '${modelina_1.FormatHelpers.toPascalCase(path.basename(f, '.ts'))}'`)
260
+ .join(',\n')}
175
261
  }`;
262
+ }
176
263
  }
177
264
  }
178
265
  const contents = endent_1.default `
@@ -208,8 +295,8 @@ class Codegen {
208
295
  let contents = '';
209
296
  if (files.length > 0) {
210
297
  const baseNames = files.map((f) => path.basename(f, '.json')).sort();
211
- const schemaImports = baseNames.map((n) => `import * as ${pathToPascalCase(n)} from './${n}.json';`);
212
- const schemaExports = baseNames.map((n) => `export const ${pathToPascalCase(n)}Schema = ${pathToPascalCase(n)};`);
298
+ const schemaImports = baseNames.map((n) => `import * as ${modelina_1.FormatHelpers.toPascalCase(n)} from './${n}.json';`);
299
+ const schemaExports = baseNames.map((n) => `export const ${modelina_1.FormatHelpers.toPascalCase(n)}Schema = ${modelina_1.FormatHelpers.toPascalCase(n)};`);
213
300
  contents = endent_1.default `
214
301
  ${schemaImports.join('\n')}
215
302
 
@@ -235,14 +322,9 @@ function getRelativeDir(from, to) {
235
322
  ? path.dirname(path.relative(from, to))
236
323
  : path.relative(from, to);
237
324
  }
238
- /**
239
- * Converts a path or a file name to PascalCalse e.g. /some/long-ass/path becomes SomeLongAssPath
240
- * @param input - Path to convert to a PascalCase string.
241
- */
242
- function pathToPascalCase(input) {
243
- return input
244
- .split(/[-_/\\]/) // Assuming here that people use _ or - as the word separator in directory names.
245
- .reduce((res, word) => `${res}${word.charAt(0).toUpperCase()}${word.substr(1).toLowerCase()}`, '');
325
+ function getMessageTitle(message) {
326
+ var _a, _b;
327
+ 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'));
246
328
  }
247
329
  /**
248
330
  * Converts a path into a POSIX path by replacing current path separator with `/`.
@@ -251,4 +333,146 @@ function pathToPascalCase(input) {
251
333
  function toPosixPath(p) {
252
334
  return path.posix.join(...p.split(path.sep));
253
335
  }
336
+ /**
337
+ * Extension function for @asyncapi/modelina CommonModel type.
338
+ * @asyncapi/modelina CommonModel.getNearestDependencies method doesn't return dependency, if it is an array of items.
339
+ * @param model - object of type CommonModel, generated by @asyncapi/modelina library.
340
+ */
341
+ function getDependencies(model) {
342
+ const dependsOn = model.getNearestDependencies();
343
+ if (model.properties !== undefined && Object.keys(model.properties).length) {
344
+ Object.values(model.properties)
345
+ .filter((propertyModel) => propertyModel.items !== undefined &&
346
+ modelina_1.TypeHelpers.extractKind(propertyModel))
347
+ .map((propertyModel) => dependsOn.push(...getDependencies(propertyModel)));
348
+ }
349
+ return [...new Set(dependsOn)];
350
+ }
351
+ /**
352
+ * Generating the path prefix for model.
353
+ * model name ends with "command" - prefix "commands"
354
+ * model name ends with "event" - prefix "events"
355
+ * default prefix "types"
356
+ * @param modelName - name of the model, defined in json schema, or AsyncAPI document
357
+ */
358
+ function getModelPathPrefix(modelName) {
359
+ return modelName
360
+ ? modelName.endsWith('command')
361
+ ? 'commands'
362
+ : modelName.endsWith('event')
363
+ ? 'events'
364
+ : 'types'
365
+ : 'types';
366
+ }
367
+ /**
368
+ * Preset for TypeScriptGenerator, adds descriptions to types and properties.
369
+ */
370
+ const DESCRIPTION_PRESET = {
371
+ interface: {
372
+ self({ renderer, content, model }) {
373
+ const desc = model.getFromOriginalInput('description');
374
+ if (desc) {
375
+ const renderedDesc = renderer.renderComments(desc);
376
+ return `${renderedDesc}\n${content}`;
377
+ }
378
+ return content;
379
+ },
380
+ property({ renderer, model, content }) {
381
+ const propertyName = content
382
+ .split(':')[0]
383
+ .replace('?', '')
384
+ .replace('[', '');
385
+ if (model.getFromOriginalInput('properties') !== undefined) {
386
+ const property = model.getFromOriginalInput('properties')[propertyName];
387
+ if (property !== undefined) {
388
+ const desc = property['description'];
389
+ if (desc) {
390
+ const renderedDesc = renderer.renderComments(desc);
391
+ return `${renderedDesc}\n${content}`;
392
+ }
393
+ }
394
+ }
395
+ return content;
396
+ },
397
+ },
398
+ };
399
+ /**
400
+ * Preset for TypeScriptGenerator, additionalProperties added to models as "[k: string]: unknown;"
401
+ */
402
+ const ADDITIONAL_PROPERTIES_PRESET = {
403
+ interface: {
404
+ self({ content }) {
405
+ return content;
406
+ },
407
+ property({ content }) {
408
+ const propertyName = content
409
+ .split(':')[0]
410
+ .replace('?', '')
411
+ .replace('[', '');
412
+ if (propertyName === 'additionalProperties') {
413
+ return `\n[k: string]: unknown;`;
414
+ }
415
+ return content;
416
+ },
417
+ },
418
+ };
419
+ /**
420
+ * Preset for TypeScriptGenerator, adds imports to resulting model.
421
+ */
422
+ const IMPORTS_PRESET = {
423
+ interface: {
424
+ self({ content, model }) {
425
+ const modelName = model.getFromOriginalInput('title');
426
+ const modelPrefix = getModelPathPrefix(modelName);
427
+ const modelDependencies = getDependencies(model);
428
+ const modelImports = modelDependencies.map((modelDependency) => `import { ${modelina_1.FormatHelpers.toPascalCase(modelDependency)} } from '${modelPrefix !== getModelPathPrefix(modelDependency)
429
+ ? `../${getModelPathPrefix(modelDependency)}/${modelina_1.FormatHelpers.toParamCase(modelDependency)}`
430
+ : `./${modelina_1.FormatHelpers.toParamCase(modelDependency)}`}'`);
431
+ return endent_1.default `
432
+ ${modelImports.join('\n')}
433
+ ${content}`;
434
+ },
435
+ property({ content }) {
436
+ return content;
437
+ },
438
+ },
439
+ };
440
+ /**
441
+ * Preset for TypeScriptGenerator, sets nullable properties as unions in resulted models(compatibility with zapatos generated models).
442
+ */
443
+ const NULLABLE_PROPERTY_TO_UNION_PRESET = {
444
+ interface: {
445
+ self({ content }) {
446
+ return content;
447
+ },
448
+ property({ renderer, model, content }) {
449
+ const propertyName = content
450
+ .split(':')[0]
451
+ .replace('?', '')
452
+ .replace('[', '');
453
+ if (model.getFromOriginalInput('properties') !== undefined) {
454
+ const property = model.getFromOriginalInput('properties')[propertyName];
455
+ if (property !== undefined) {
456
+ const type = property['type'];
457
+ if (Array.isArray(type)) {
458
+ const renderProp = renderer.renderProperty(propertyName, property);
459
+ return renderProp.replace('object', content.split(':')[1].replace(';', ''));
460
+ }
461
+ }
462
+ }
463
+ return content;
464
+ },
465
+ },
466
+ };
467
+ /**
468
+ * Extension for @asyncapi/modelina, to make sure that the type name is in pascal.
469
+ */
470
+ const CustomNamingConvention = {
471
+ type: (name) => {
472
+ if (!name) {
473
+ return '';
474
+ }
475
+ return modelina_1.FormatHelpers.toPascalCase(name);
476
+ },
477
+ };
254
478
  //# 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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"}
@@ -6,11 +6,11 @@ const codegen_1 = require("./codegen");
6
6
  const lint_1 = require("./lint");
7
7
  exports.msgCodegen = {
8
8
  command: 'msg-codegen',
9
- describe: 'Generates code from message JSON schemas.',
9
+ describe: 'Generates code from AsyncAPI document.',
10
10
  builder: (yargs) => yargs
11
11
  .option('inputDir', {
12
12
  alias: 'i',
13
- describe: 'Path to input directory - schemas root.',
13
+ describe: 'Path to input directory - AsyncAPI document root.',
14
14
  type: 'string',
15
15
  demandOption: true,
16
16
  })
@@ -18,7 +18,7 @@ exports.msgCodegen = {
18
18
  alias: 'p',
19
19
  describe: 'Regular expression that matches suitable input files.',
20
20
  type: 'string',
21
- default: '^.*(-event|-command).json$',
21
+ default: '^.*(-payloads).(json|yaml|yml)$',
22
22
  })
23
23
  .option('outputDir', {
24
24
  alias: 'o',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/msg-codegen/index.ts"],"names":[],"mappings":";;;;AACA,uCAAoC;AACpC,iCAA8B;AAGjB,QAAA,UAAU,GAAkD;IACvE,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,2CAA2C;IACrD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,MAAM,CAAC,UAAU,EAAE;QAClB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,yCAAyC;QACnD,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,uDAAuD;QACjE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,4BAA4B;KACtC,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,yCAAyC;QACnD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;KACzB,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,QAAQ,EAAE,6CAA6C;QACvD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,8CAA8C;QACxD,IAAI,EAAE,QAAQ;KACf,CAAC;IACN,OAAO,EAAE,CAAO,IAAI,EAAE,EAAE;QACtB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,WAAI,CAAC,IAAI,CAAC,CAAC;SAClB;aAAM;YACL,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;SACrB;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAA;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/msg-codegen/index.ts"],"names":[],"mappings":";;;;AACA,uCAAoC;AACpC,iCAA8B;AAGjB,QAAA,UAAU,GAAkD;IACvE,OAAO,EAAE,aAAa;IACtB,QAAQ,EAAE,wCAAwC;IAClD,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,MAAM,CAAC,UAAU,EAAE;QAClB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,mDAAmD;QAC7D,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,uDAAuD;QACjE,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,iCAAiC;KAC3C,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,yCAAyC;QACnD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,eAAe;KACzB,CAAC;SACD,MAAM,CAAC,MAAM,EAAE;QACd,QAAQ,EAAE,6CAA6C;QACvD,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,aAAa,EAAE;QACrB,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,8CAA8C;QACxD,IAAI,EAAE,QAAQ;KACf,CAAC;IACN,OAAO,EAAE,CAAO,IAAI,EAAE,EAAE;QACtB,IAAI,IAAI,CAAC,IAAI,EAAE;YACb,MAAM,WAAI,CAAC,IAAI,CAAC,CAAC;SAClB;aAAM;YACL,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;SACrB;QACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC,CAAA;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@axinom/mosaic-cli",
3
- "version": "0.3.10-rc.2",
3
+ "version": "0.4.0-rc.0",
4
4
  "description": "The Axinom Mosaic CLI",
5
5
  "author": "Axinom",
6
6
  "license": "PROPRIETARY",
@@ -25,8 +25,10 @@
25
25
  "test:ci": "jest --reporters=default --reporters=jest-junit --coverage --coverageReporters=cobertura --coverageReporters=html"
26
26
  },
27
27
  "dependencies": {
28
- "@axinom/mosaic-id-link-be": "^0.3.10-rc.2",
29
- "@axinom/mosaic-service-common": "^0.8.0-rc.2",
28
+ "@asyncapi/modelina": "^0.39.0",
29
+ "@asyncapi/parser": "^1.10.0",
30
+ "@axinom/mosaic-id-link-be": "^0.3.9-rc.4",
31
+ "@axinom/mosaic-service-common": "^0.7.0-rc.23",
30
32
  "@stoplight/spectral": "^5.9.1",
31
33
  "chalk": "^4.1.0",
32
34
  "diff": "^5.0.0",
@@ -38,7 +40,6 @@
38
40
  "graphql": "^15.4.0",
39
41
  "json-schema": "^0.3.0",
40
42
  "json-schema-ref-parser": "^9.0.7",
41
- "json-schema-to-typescript": "^9.1.1",
42
43
  "json5": "^2.2.0",
43
44
  "pg": "^8.5.1",
44
45
  "sql-formatter": "^4.0.2",
@@ -56,5 +57,5 @@
56
57
  "publishConfig": {
57
58
  "access": "public"
58
59
  },
59
- "gitHead": "a5b81d6d2e09515421e809d297e69ad2459f90f1"
60
+ "gitHead": "5bb6a0a701912547ba31c2cc1b33f63f5128e1c6"
60
61
  }