From 8a627090abe48a741425f522cbae8c688bd7a20f Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Mon, 17 Jun 2024 19:15:01 -0700 Subject: [PATCH 1/6] Fix generics --- src/index.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index a9f0233..4971a9a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,10 +10,13 @@ export class ModelInfo { } export interface ModelFactory { - getModel>(modelName: string): T; + getModel(modelName: string): T; } -export abstract class Model { +export abstract class Model< + TInput extends object = object, + TOutput extends object = object, +> { protected constructor( public readonly info: ModelInfo, protected invoker: ModelInvoker, From 8676541707fb9e57ff7f5ace78a1f9943859e013 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Mon, 17 Jun 2024 19:15:08 -0700 Subject: [PATCH 2/6] Bump version --- src/package-lock.json | 4 ++-- src/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/package-lock.json b/src/package-lock.json index c5139fe..de465d1 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -1,12 +1,12 @@ { "name": "@hypermode/models-as", - "version": "0.1.2", + "version": "0.1.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@hypermode/models-as", - "version": "0.1.2", + "version": "0.1.3", "license": "MIT", "dependencies": { "json-as": "^0.9.6" diff --git a/src/package.json b/src/package.json index 725d36c..3c8dca9 100644 --- a/src/package.json +++ b/src/package.json @@ -1,6 +1,6 @@ { "name": "@hypermode/models-as", - "version": "0.1.2", + "version": "0.1.3", "description": "Hypermode Model Interface Library for AssemblyScript", "author": "Hypermode, Inc.", "license": "MIT", From 8aca5e4b3f5624b1edc29f7cd0d4103d21796e39 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Tue, 18 Jun 2024 13:02:20 -0700 Subject: [PATCH 3/6] Update invoker location to fix generics issue --- src/index.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/index.ts b/src/index.ts index 4971a9a..c5ee2f3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,14 +13,11 @@ export interface ModelFactory { getModel(modelName: string): T; } -export abstract class Model< - TInput extends object = object, - TOutput extends object = object, -> { - protected constructor( - public readonly info: ModelInfo, - protected invoker: ModelInvoker, - ) {} +export abstract class Model { + static invoker: ModelInvoker | null = null; + protected constructor(public info: ModelInfo) {} + + foo: string = "bar"; debug: boolean = false; @@ -30,13 +27,17 @@ export abstract class Model< * @returns The output object from the model. */ invoke(input: TInput): TOutput { + if (!Model.invoker) { + throw new Error("Model invoker is not set."); + } + const modelName = this.info.name; const inputJson = JSON.stringify(input); if (this.debug) { console.debug(`Invoking ${modelName} model with input: ${inputJson}`); } - const outputJson = this.invoker(modelName, inputJson); + const outputJson = Model.invoker(modelName, inputJson); if (!outputJson) { throw new Error(`Failed to invoke ${modelName} model.`); } From 3e818d7422d7c145c690c550e49d8ec6beb380be Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Tue, 18 Jun 2024 13:02:35 -0700 Subject: [PATCH 4/6] Bump version --- src/package-lock.json | 12 ++++++------ src/package.json | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/package-lock.json b/src/package-lock.json index de465d1..9e125f5 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -1,18 +1,18 @@ { "name": "@hypermode/models-as", - "version": "0.1.3", + "version": "0.1.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@hypermode/models-as", - "version": "0.1.3", + "version": "0.1.4", "license": "MIT", "dependencies": { "json-as": "^0.9.6" }, "devDependencies": { - "@types/node": "^20.14.4", + "@types/node": "^20.14.5", "@typescript-eslint/eslint-plugin": "^7.13.1", "@typescript-eslint/parser": "^7.13.1", "assemblyscript": "^0.27.27", @@ -208,9 +208,9 @@ } }, "node_modules/@types/node": { - "version": "20.14.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.4.tgz", - "integrity": "sha512-1ChboN+57suCT2t/f8lwtPY/k3qTpuD/qnqQuYoBg6OQOcPyaw7PiZVdGpaZYAvhDDtqrt0oAaM8+oSu1xsUGw==", + "version": "20.14.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.5.tgz", + "integrity": "sha512-aoRR+fJkZT2l0aGOJhuA8frnCSoNX6W7U2mpNq63+BxBIj5BQFt8rHy627kijCmm63ijdSdwvGgpUsU6MBsZZA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/package.json b/src/package.json index 3c8dca9..b7f4957 100644 --- a/src/package.json +++ b/src/package.json @@ -1,6 +1,6 @@ { "name": "@hypermode/models-as", - "version": "0.1.3", + "version": "0.1.4", "description": "Hypermode Model Interface Library for AssemblyScript", "author": "Hypermode, Inc.", "license": "MIT", @@ -17,7 +17,7 @@ "json-as": "^0.9.6" }, "devDependencies": { - "@types/node": "^20.14.4", + "@types/node": "^20.14.5", "@typescript-eslint/eslint-plugin": "^7.13.1", "@typescript-eslint/parser": "^7.13.1", "assemblyscript": "^0.27.27", From 9d1309845b8c5055271bfb6b76b8edfa8453c305 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Tue, 18 Jun 2024 13:04:50 -0700 Subject: [PATCH 5/6] remove test code --- src/index.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index c5ee2f3..5a4554c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,8 +17,6 @@ export abstract class Model { static invoker: ModelInvoker | null = null; protected constructor(public info: ModelInfo) {} - foo: string = "bar"; - debug: boolean = false; /** From f1f4b978b0a9d8c45567eb643f5d0d662b4524b0 Mon Sep 17 00:00:00 2001 From: Matt Johnson-Pint Date: Tue, 18 Jun 2024 13:05:50 -0700 Subject: [PATCH 6/6] bump to 0.1.5 --- src/package-lock.json | 4 ++-- src/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/package-lock.json b/src/package-lock.json index 9e125f5..1f1a84d 100644 --- a/src/package-lock.json +++ b/src/package-lock.json @@ -1,12 +1,12 @@ { "name": "@hypermode/models-as", - "version": "0.1.4", + "version": "0.1.5", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@hypermode/models-as", - "version": "0.1.4", + "version": "0.1.5", "license": "MIT", "dependencies": { "json-as": "^0.9.6" diff --git a/src/package.json b/src/package.json index b7f4957..d0fc135 100644 --- a/src/package.json +++ b/src/package.json @@ -1,6 +1,6 @@ { "name": "@hypermode/models-as", - "version": "0.1.4", + "version": "0.1.5", "description": "Hypermode Model Interface Library for AssemblyScript", "author": "Hypermode, Inc.", "license": "MIT",