From bccdc2eeb66c2d12594fccceefc4a7c47d0ad6f4 Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Tue, 30 Sep 2025 16:13:26 -0700 Subject: [PATCH 1/2] fix: ts compilation issue with generated model meta --- packages/runtime/src/cross/model-meta.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/runtime/src/cross/model-meta.ts b/packages/runtime/src/cross/model-meta.ts index e125eec8b..805b3d6d1 100644 --- a/packages/runtime/src/cross/model-meta.ts +++ b/packages/runtime/src/cross/model-meta.ts @@ -12,7 +12,7 @@ export type RuntimeAttribute = { /** * Attribute arguments */ - args: Array<{ name?: string; value: unknown }>; + args: Array<{ name?: string; value?: unknown }>; }; /** From 21546c64e4cb72cbb3c52744de7c72e82cbf3432 Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Tue, 30 Sep 2025 16:13:30 -0700 Subject: [PATCH 2/2] update --- packages/sdk/src/model-meta-generator.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/sdk/src/model-meta-generator.ts b/packages/sdk/src/model-meta-generator.ts index 84ea5ff2e..26e518782 100644 --- a/packages/sdk/src/model-meta-generator.ts +++ b/packages/sdk/src/model-meta-generator.ts @@ -80,13 +80,20 @@ export function generate( ) { const sf = project.createSourceFile(options.output, undefined, { overwrite: true }); + // generate: import type { ModelMeta } from '@zenstackhq/runtime'; + sf.addImportDeclaration({ + isTypeOnly: true, + namedImports: ['ModelMeta'], + moduleSpecifier: '@zenstackhq/runtime', + }); + const writer = new FastWriter(); const extraFunctions: OptionalKind[] = []; generateModelMetadata(models, typeDefs, writer, options, extraFunctions); sf.addVariableStatement({ declarationKind: VariableDeclarationKind.Const, - declarations: [{ name: 'metadata', initializer: writer.result }], + declarations: [{ name: 'metadata', type: 'ModelMeta', initializer: writer.result }], }); if (extraFunctions.length > 0) { @@ -364,7 +371,7 @@ function writeFields( function getAttributes(target: DataModelField | DataModel | TypeDefField): RuntimeAttribute[] { return target.attributes .map((attr) => { - const args: Array<{ name?: string; value: unknown }> = []; + const args: Array<{ name?: string; value?: unknown }> = []; for (const arg of attr.args) { const argName = arg.$resolvedParam?.name ?? arg.name; const argValue = exprToValue(arg.value);