From 3d88a5511c188fb4420aacab8eaf968fb9f00e08 Mon Sep 17 00:00:00 2001 From: Yiming Cao Date: Wed, 13 Aug 2025 21:00:22 +0800 Subject: [PATCH 1/2] fix: improve plugin config typing (#161) * fix: improve plugin config typing * update --- README.md | 4 ++-- .../src/client/executor/zenstack-query-executor.ts | 10 +++++----- packages/runtime/src/client/plugin.ts | 10 +++++----- packages/runtime/test/plugin/mutation-hooks.test.ts | 12 ++++++------ 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 949162d8..967c00ab 100644 --- a/README.md +++ b/README.md @@ -351,9 +351,9 @@ db.$use({ return { intercept: model === 'User', // load entities affected before the mutation (defaults to false) - loadBeforeMutationEntity: true, + loadBeforeMutationEntities: true, // load entities affected after the mutation (defaults to false) - loadAfterMutationEntity: true, + loadAfterMutationEntities: true, }; }, beforeEntityMutation({ model, action, entities }) { diff --git a/packages/runtime/src/client/executor/zenstack-query-executor.ts b/packages/runtime/src/client/executor/zenstack-query-executor.ts index 454c0a82..8aff9505 100644 --- a/packages/runtime/src/client/executor/zenstack-query-executor.ts +++ b/packages/runtime/src/client/executor/zenstack-query-executor.ts @@ -72,7 +72,7 @@ export class ZenStackQueryExecutor extends DefaultQuer const oldQueryNode = queryNode; if ( (InsertQueryNode.is(queryNode) || UpdateQueryNode.is(queryNode)) && - mutationInterceptionInfo?.loadAfterMutationEntity + mutationInterceptionInfo?.loadAfterMutationEntities ) { // need to make sure the query node has "returnAll" // for insert and update queries @@ -283,13 +283,13 @@ export class ZenStackQueryExecutor extends DefaultQuer queryNode, }); result.intercept ||= filterResult.intercept; - result.loadBeforeMutationEntity ||= filterResult.loadBeforeMutationEntity; - result.loadAfterMutationEntity ||= filterResult.loadAfterMutationEntity; + result.loadBeforeMutationEntities ||= filterResult.loadBeforeMutationEntities; + result.loadAfterMutationEntities ||= filterResult.loadAfterMutationEntities; } } let beforeMutationEntities: Record[] | undefined; - if (result.loadBeforeMutationEntity && (UpdateQueryNode.is(queryNode) || DeleteQueryNode.is(queryNode))) { + if (result.loadBeforeMutationEntities && (UpdateQueryNode.is(queryNode) || DeleteQueryNode.is(queryNode))) { beforeMutationEntities = await this.loadEntities(mutationModel, where); } @@ -354,7 +354,7 @@ export class ZenStackQueryExecutor extends DefaultQuer for (const hook of hooks) { let afterMutationEntities: Record[] | undefined = undefined; - if (mutationInterceptionInfo.loadAfterMutationEntity) { + if (mutationInterceptionInfo.loadAfterMutationEntities) { if (InsertQueryNode.is(queryNode) || UpdateQueryNode.is(queryNode)) { afterMutationEntities = queryResult.rows as Record[]; } diff --git a/packages/runtime/src/client/plugin.ts b/packages/runtime/src/client/plugin.ts index 3b006862..8ae24be6 100644 --- a/packages/runtime/src/client/plugin.ts +++ b/packages/runtime/src/client/plugin.ts @@ -39,12 +39,12 @@ export type MutationInterceptionFilterResult = { /** * Whether entities should be loaded before the mutation. */ - loadBeforeMutationEntity?: boolean; + loadBeforeMutationEntities?: boolean; /** * Whether entities should be loaded after the mutation. */ - loadAfterMutationEntity?: boolean; + loadAfterMutationEntities?: boolean; }; type MutationHooksArgs = { @@ -149,16 +149,16 @@ export interface RuntimePlugin { /** * Called before an entity is mutated. - * @param args.entity Only available if `loadBeforeMutationEntity` is set to true in the + * @param args.entity Only available if `loadBeforeMutationEntities` is set to true in the * return value of {@link RuntimePlugin.mutationInterceptionFilter}. */ beforeEntityMutation?: BeforeEntityMutationCallback; /** * Called after an entity is mutated. - * @param args.beforeMutationEntity Only available if `loadBeforeMutationEntity` is set to true in the + * @param args.beforeMutationEntity Only available if `loadBeforeMutationEntities` is set to true in the * return value of {@link RuntimePlugin.mutationInterceptionFilter}. - * @param args.afterMutationEntity Only available if `loadAfterMutationEntity` is set to true in the + * @param args.afterMutationEntity Only available if `loadAfterMutationEntities` is set to true in the * return value of {@link RuntimePlugin.mutationInterceptionFilter}. */ afterEntityMutation?: AfterEntityMutationCallback; diff --git a/packages/runtime/test/plugin/mutation-hooks.test.ts b/packages/runtime/test/plugin/mutation-hooks.test.ts index 3feb595a..c249e0a6 100644 --- a/packages/runtime/test/plugin/mutation-hooks.test.ts +++ b/packages/runtime/test/plugin/mutation-hooks.test.ts @@ -112,7 +112,7 @@ describe('Entity lifecycle tests', () => { mutationInterceptionFilter: () => { return { intercept: true, - loadBeforeMutationEntity: true, + loadBeforeMutationEntities: true, }; }, beforeEntityMutation(args) { @@ -159,7 +159,7 @@ describe('Entity lifecycle tests', () => { mutationInterceptionFilter: () => { return { intercept: true, - loadAfterMutationEntity: true, + loadAfterMutationEntities: true, }; }, afterEntityMutation(args) { @@ -205,7 +205,7 @@ describe('Entity lifecycle tests', () => { mutationInterceptionFilter: () => { return { intercept: true, - loadAfterMutationEntity: true, + loadAfterMutationEntities: true, }; }, afterEntityMutation(args) { @@ -263,7 +263,7 @@ describe('Entity lifecycle tests', () => { mutationInterceptionFilter: (args) => { return { intercept: args.action === 'create' || args.action === 'update', - loadAfterMutationEntity: true, + loadAfterMutationEntities: true, }; }, afterEntityMutation(args) { @@ -350,8 +350,8 @@ describe('Entity lifecycle tests', () => { mutationInterceptionFilter: () => { return { intercept: true, - loadBeforeMutationEntity: true, - loadAfterMutationEntity: true, + loadBeforeMutationEntities: true, + loadAfterMutationEntities: true, }; }, afterEntityMutation(args) { From ac43d58a548d2613e5777c1563d169e443e6be7a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 13 Aug 2025 22:27:36 +0800 Subject: [PATCH 2/2] chore: bump version 3.0.0-alpha.23 (#162) Co-authored-by: ymc9 <104139426+ymc9@users.noreply.github.com> --- package.json | 2 +- packages/cli/package.json | 2 +- packages/common-helpers/package.json | 2 +- packages/create-zenstack/package.json | 2 +- packages/dialects/sql.js/package.json | 2 +- packages/eslint-config/package.json | 2 +- packages/ide/vscode/package.json | 2 +- packages/language/package.json | 2 +- packages/runtime/package.json | 2 +- packages/sdk/package.json | 2 +- packages/tanstack-query/package.json | 2 +- packages/testtools/package.json | 2 +- packages/typescript-config/package.json | 2 +- packages/vitest-config/package.json | 2 +- packages/zod/package.json | 2 +- samples/blog/package.json | 2 +- tests/e2e/package.json | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/package.json b/package.json index 389a40dd..05d02903 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zenstack-v3", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "ZenStack", "packageManager": "pnpm@10.12.1", "scripts": { diff --git a/packages/cli/package.json b/packages/cli/package.json index e3f9f8f7..66412a3c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -3,7 +3,7 @@ "publisher": "zenstack", "displayName": "ZenStack CLI", "description": "FullStack database toolkit with built-in access control and automatic API generation.", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "type": "module", "author": { "name": "ZenStack Team" diff --git a/packages/common-helpers/package.json b/packages/common-helpers/package.json index 4d94bf5f..d8f4330f 100644 --- a/packages/common-helpers/package.json +++ b/packages/common-helpers/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/common-helpers", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "ZenStack Common Helpers", "type": "module", "scripts": { diff --git a/packages/create-zenstack/package.json b/packages/create-zenstack/package.json index 248e7104..e2107357 100644 --- a/packages/create-zenstack/package.json +++ b/packages/create-zenstack/package.json @@ -1,6 +1,6 @@ { "name": "create-zenstack", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "Create a new ZenStack project", "type": "module", "scripts": { diff --git a/packages/dialects/sql.js/package.json b/packages/dialects/sql.js/package.json index 4f938de5..70c72273 100644 --- a/packages/dialects/sql.js/package.json +++ b/packages/dialects/sql.js/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/kysely-sql-js", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "Kysely dialect for sql.js", "type": "module", "scripts": { diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 3395da97..cb30249e 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/eslint-config", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "type": "module", "private": true, "license": "MIT" diff --git a/packages/ide/vscode/package.json b/packages/ide/vscode/package.json index 74b326e1..ad9027ca 100644 --- a/packages/ide/vscode/package.json +++ b/packages/ide/vscode/package.json @@ -1,7 +1,7 @@ { "name": "zenstack", "publisher": "zenstack", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "displayName": "ZenStack Language Tools", "description": "VSCode extension for ZenStack ZModel language", "private": true, diff --git a/packages/language/package.json b/packages/language/package.json index ab590aca..1650c808 100644 --- a/packages/language/package.json +++ b/packages/language/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/language", "description": "ZenStack ZModel language specification", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "license": "MIT", "author": "ZenStack Team", "files": [ diff --git a/packages/runtime/package.json b/packages/runtime/package.json index 8c768bc0..76dde63f 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/runtime", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "ZenStack Runtime", "type": "module", "scripts": { diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 2b8f185b..57415ab2 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/sdk", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "ZenStack SDK", "type": "module", "scripts": { diff --git a/packages/tanstack-query/package.json b/packages/tanstack-query/package.json index 0a2aeeb4..91bdd7f9 100644 --- a/packages/tanstack-query/package.json +++ b/packages/tanstack-query/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/tanstack-query", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "", "main": "index.js", "type": "module", diff --git a/packages/testtools/package.json b/packages/testtools/package.json index 61f4544e..41c2813a 100644 --- a/packages/testtools/package.json +++ b/packages/testtools/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/testtools", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "ZenStack Test Tools", "type": "module", "scripts": { diff --git a/packages/typescript-config/package.json b/packages/typescript-config/package.json index a786fd7e..c4ffcca2 100644 --- a/packages/typescript-config/package.json +++ b/packages/typescript-config/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/typescript-config", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "private": true, "license": "MIT" } diff --git a/packages/vitest-config/package.json b/packages/vitest-config/package.json index ccd6fc4b..7d84eb0c 100644 --- a/packages/vitest-config/package.json +++ b/packages/vitest-config/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/vitest-config", "type": "module", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "private": true, "license": "MIT", "exports": { diff --git a/packages/zod/package.json b/packages/zod/package.json index a6665f96..df55bfc2 100644 --- a/packages/zod/package.json +++ b/packages/zod/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/zod", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "", "type": "module", "main": "index.js", diff --git a/samples/blog/package.json b/samples/blog/package.json index 803d7ddd..587b4624 100644 --- a/samples/blog/package.json +++ b/samples/blog/package.json @@ -1,6 +1,6 @@ { "name": "sample-blog", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "description": "", "main": "index.js", "scripts": { diff --git a/tests/e2e/package.json b/tests/e2e/package.json index 2d5b272f..dc4a5c0d 100644 --- a/tests/e2e/package.json +++ b/tests/e2e/package.json @@ -1,6 +1,6 @@ { "name": "e2e", - "version": "3.0.0-alpha.22", + "version": "3.0.0-alpha.23", "private": true, "type": "module", "scripts": {