From d5fcd46beae58d65fdcc07ea5997d5b29ce0db13 Mon Sep 17 00:00:00 2001 From: Ayush1404 Date: Mon, 2 Dec 2024 16:00:31 +0530 Subject: [PATCH 1/3] fix : Modify code generation script to include DCS Concerto model types Signed-off-by: Ayush1404 --- .../concerto-core/lib/decoratormanager.js | 2 +- packages/concerto-types/scripts/codegen.js | 2 + .../src/generated/unions/concerto@1.0.0.ts | 14 +++++- ...g.accordproject.decoratorcommands@0.4.0.ts | 47 +++++++++++++++++++ 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 packages/concerto-types/src/generated/unions/org.accordproject.decoratorcommands@0.4.0.ts diff --git a/packages/concerto-core/lib/decoratormanager.js b/packages/concerto-core/lib/decoratormanager.js index f45966fe6..30b65615c 100644 --- a/packages/concerto-core/lib/decoratormanager.js +++ b/packages/concerto-core/lib/decoratormanager.js @@ -812,4 +812,4 @@ class DecoratorManager { } } -module.exports = DecoratorManager; +module.exports = {DecoratorManager,DCS_MODEL}; diff --git a/packages/concerto-types/scripts/codegen.js b/packages/concerto-types/scripts/codegen.js index 6e551b09d..9ddc26a07 100644 --- a/packages/concerto-types/scripts/codegen.js +++ b/packages/concerto-types/scripts/codegen.js @@ -4,12 +4,14 @@ const { ModelManager } = require('@accordproject/concerto-core'); const { CodeGen: { TypescriptVisitor }} = require('@accordproject/concerto-codegen'); const { FileWriter } = require('@accordproject/concerto-util'); const path = require('path'); +const {DCS_MODEL }= require('@accordproject/concerto-core/lib/decoratormanager'); /** * Generate TypeScript files from the metamodel. */ async function main() { const modelManager = new ModelManager({addMetamodel:true, strict: true}); + modelManager.addCTOModel(DCS_MODEL, 'decoratorcommands@0.4.0.cto'); const visitor = new TypescriptVisitor(); const fileWriter = new FileWriter(path.resolve(__dirname, '..', 'src', 'generated')); diff --git a/packages/concerto-types/src/generated/unions/concerto@1.0.0.ts b/packages/concerto-types/src/generated/unions/concerto@1.0.0.ts index 5a81da532..b0826b3ec 100644 --- a/packages/concerto-types/src/generated/unions/concerto@1.0.0.ts +++ b/packages/concerto-types/src/generated/unions/concerto@1.0.0.ts @@ -26,6 +26,14 @@ import type { IModel, IModels } from './concerto.metamodel@1.0.0'; +import type { + IDecoratorCommandSetReference, + CommandType, + ICommandTarget, + MapElement, + ICommand, + IDecoratorCommandSet +} from './org.accordproject.decoratorcommands@0.4.0'; // interfaces export interface IConcept { @@ -51,7 +59,11 @@ ILongDomainValidator | IAliasedType | IImport | IModel | -IModels; +IModels | +IDecoratorCommandSetReference | +ICommandTarget | +ICommand | +IDecoratorCommandSet; export interface IAsset extends IConcept { $identifier: string; diff --git a/packages/concerto-types/src/generated/unions/org.accordproject.decoratorcommands@0.4.0.ts b/packages/concerto-types/src/generated/unions/org.accordproject.decoratorcommands@0.4.0.ts new file mode 100644 index 000000000..7f97a946e --- /dev/null +++ b/packages/concerto-types/src/generated/unions/org.accordproject.decoratorcommands@0.4.0.ts @@ -0,0 +1,47 @@ +/* eslint-disable @typescript-eslint/no-empty-interface */ +// Generated code for namespace: org.accordproject.decoratorcommands@0.4.0 + +// imports +import {IDecorator} from './concerto.metamodel@1.0.0'; +import {IConcept} from './concerto@1.0.0'; + +// interfaces +export interface IDecoratorCommandSetReference extends IConcept { + name: string; + version: string; +} + +export enum CommandType { + UPSERT = 'UPSERT', + APPEND = 'APPEND', +} + +export interface ICommandTarget extends IConcept { + namespace?: string; + declaration?: string; + property?: string; + properties?: string[]; + type?: string; + mapElement?: MapElement; +} + +export enum MapElement { + KEY = 'KEY', + VALUE = 'VALUE', + KEY_VALUE = 'KEY_VALUE', +} + +export interface ICommand extends IConcept { + target: ICommandTarget; + decorator: IDecorator; + type: CommandType; + decoratorNamespace?: string; +} + +export interface IDecoratorCommandSet extends IConcept { + name: string; + version: string; + includes?: IDecoratorCommandSetReference[]; + commands: ICommand[]; +} + From 8034908ad94f5b2ba9274198a5011c493a1a6f1e Mon Sep 17 00:00:00 2001 From: Ayush1404 Date: Tue, 3 Dec 2024 20:10:38 +0530 Subject: [PATCH 2/3] fixed export conflict Signed-off-by: Ayush1404 --- packages/concerto-core/lib/decoratormanager.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/concerto-core/lib/decoratormanager.js b/packages/concerto-core/lib/decoratormanager.js index 30b65615c..f115841c0 100644 --- a/packages/concerto-core/lib/decoratormanager.js +++ b/packages/concerto-core/lib/decoratormanager.js @@ -812,4 +812,5 @@ class DecoratorManager { } } -module.exports = {DecoratorManager,DCS_MODEL}; +module.exports = DecoratorManager; +module.exports.DCS_MODEL = DCS_MODEL; \ No newline at end of file From 65b3e12f2623793d14abff4e1f018f2bc1e47a95 Mon Sep 17 00:00:00 2001 From: Ayush Kadam Date: Wed, 4 Dec 2024 16:16:21 +0530 Subject: [PATCH 3/3] Update packages/concerto-types/scripts/codegen.js Co-authored-by: Sanket Shevkar <43399522+sanketshevkar@users.noreply.github.com> Signed-off-by: Ayush Kadam --- packages/concerto-types/scripts/codegen.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/concerto-types/scripts/codegen.js b/packages/concerto-types/scripts/codegen.js index 9ddc26a07..fd35f1b69 100644 --- a/packages/concerto-types/scripts/codegen.js +++ b/packages/concerto-types/scripts/codegen.js @@ -4,7 +4,7 @@ const { ModelManager } = require('@accordproject/concerto-core'); const { CodeGen: { TypescriptVisitor }} = require('@accordproject/concerto-codegen'); const { FileWriter } = require('@accordproject/concerto-util'); const path = require('path'); -const {DCS_MODEL }= require('@accordproject/concerto-core/lib/decoratormanager'); +const { DCS_MODEL }= require('@accordproject/concerto-core'); /** * Generate TypeScript files from the metamodel.