From cfca4022dcb79ccab47d7a5fe8bb8b5c9521295e Mon Sep 17 00:00:00 2001 From: Augustin <43639468+Azzerty23@users.noreply.github.com> Date: Mon, 5 Jun 2023 23:34:34 +0200 Subject: [PATCH 1/4] fix: avoid return loaded prisma if undefined (#461) --- packages/runtime/src/enhancements/utils.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/runtime/src/enhancements/utils.ts b/packages/runtime/src/enhancements/utils.ts index 4cc33e9b6..69ff16670 100644 --- a/packages/runtime/src/enhancements/utils.ts +++ b/packages/runtime/src/enhancements/utils.ts @@ -62,7 +62,9 @@ function loadPrismaModule(prisma: any) { if (prisma._engineConfig?.datamodelPath) { const loadPath = path.dirname(prisma._engineConfig.datamodelPath); try { - return require(loadPath).Prisma; + const _prisma = require(loadPath).Prisma; + if (typeof _prisma !== 'undefined') return _prisma; + return require('@prisma/client/runtime'); } catch { return require('@prisma/client/runtime'); } From b48490ce6f412a97ab5acabad6f83fb5a3ee7de9 Mon Sep 17 00:00:00 2001 From: Yiming Date: Tue, 6 Jun 2023 08:55:32 +0800 Subject: [PATCH 2/4] chore: update readme links (#467) --- README.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3beb015bf..b71c60dac 100644 --- a/README.md +++ b/README.md @@ -116,7 +116,7 @@ The following diagram gives a high-level overview of how it works. - Prisma schema generator - Zod schema generator -- React hooks generator +- [SWR](https://github.com/vercel/swr) and [TanStack Query](https://github.com/TanStack/query) hooks generator - OpenAPI specification generator - [tRPC](https://trpc.io) router generator - 🙋🏻 [Request for a plugin](https://go.zenstack.dev/chat) @@ -135,14 +135,17 @@ The following diagram gives a high-level overview of how it works. - [Custom attributes and functions](https://zenstack.dev/docs/reference/zmodel-language#custom-attributes-and-functions) - [Multi-file schema and model inheritance](https://zenstack.dev/docs/guides/multiple-schema) - Strong-typed JSON field (coming soon) +- Polymorphism (future) - 🙋🏻 [Request for an extension](https://go.zenstack.dev/chat) ## Examples -Check out the [Collaborative Todo App](https://zenstack-todo.vercel.app/) for a running example. You can find the source code below: +Check out the [Collaborative Todo App](https://zenstack-todo.vercel.app/) for a running example. You can find different implementations below: -- [Next.js + React hooks implementation](https://github.com/zenstackhq/sample-todo-nextjs) -- [Next.js + tRPC implementation](https://github.com/zenstackhq/sample-todo-trpc) +- [Next.js + SWR hooks](https://github.com/zenstackhq/sample-todo-nextjs) +- [Next.js + TanStack Query](https://github.com/zenstackhq/sample-todo-nextjs-tanstack) +- [Next.js + tRPC](https://github.com/zenstackhq/sample-todo-trpc) +- [SvelteKit + TanStack Query](https://github.com/zenstackhq/sample-todo-sveltekit) ## Community From f90e65a808be440bc07658a347e83f10e6125ba8 Mon Sep 17 00:00:00 2001 From: Yiming Date: Tue, 6 Jun 2023 08:55:42 +0800 Subject: [PATCH 3/4] chore: bump version (#466) --- package.json | 2 +- packages/language/package.json | 2 +- packages/next/package.json | 2 +- packages/plugins/openapi/package.json | 2 +- packages/plugins/react/package.json | 2 +- packages/plugins/swr/package.json | 2 +- packages/plugins/tanstack-query/package.json | 2 +- packages/plugins/trpc/package.json | 2 +- packages/runtime/package.json | 2 +- packages/sdk/package.json | 2 +- packages/server/package.json | 2 +- packages/testtools/package.json | 2 +- tests/integration/test-run/package-lock.json | 4 ++-- 13 files changed, 14 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index 3afc0cbe1..c966e9078 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zenstack-monorepo", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "", "scripts": { "build": "pnpm -r build", diff --git a/packages/language/package.json b/packages/language/package.json index 54d50cdc0..cd4d3295b 100644 --- a/packages/language/package.json +++ b/packages/language/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/language", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "displayName": "ZenStack modeling language compiler", "description": "ZenStack modeling language compiler", "homepage": "https://zenstack.dev", diff --git a/packages/next/package.json b/packages/next/package.json index 564231ef8..43670f651 100644 --- a/packages/next/package.json +++ b/packages/next/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/next", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "displayName": "ZenStack Next.js integration", "description": "ZenStack Next.js integration", "homepage": "https://zenstack.dev", diff --git a/packages/plugins/openapi/package.json b/packages/plugins/openapi/package.json index 2b4dafde4..86117e1a2 100644 --- a/packages/plugins/openapi/package.json +++ b/packages/plugins/openapi/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/openapi", "displayName": "ZenStack Plugin and Runtime for OpenAPI", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "ZenStack plugin and runtime supporting OpenAPI", "main": "index.js", "repository": { diff --git a/packages/plugins/react/package.json b/packages/plugins/react/package.json index 5c8dd0d0a..e63d2cea7 100644 --- a/packages/plugins/react/package.json +++ b/packages/plugins/react/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/react", "displayName": "ZenStack plugin and runtime for ReactJS", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "ZenStack plugin and runtime for ReactJS", "main": "index.js", "repository": { diff --git a/packages/plugins/swr/package.json b/packages/plugins/swr/package.json index 693e39ac2..8a7419ad4 100644 --- a/packages/plugins/swr/package.json +++ b/packages/plugins/swr/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/swr", "displayName": "ZenStack plugin for generating SWR hooks", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "ZenStack plugin for generating SWR hooks", "main": "index.js", "repository": { diff --git a/packages/plugins/tanstack-query/package.json b/packages/plugins/tanstack-query/package.json index 27157ec3c..c56f398f2 100644 --- a/packages/plugins/tanstack-query/package.json +++ b/packages/plugins/tanstack-query/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/tanstack-query", "displayName": "ZenStack plugin for generating tanstack-query hooks", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "ZenStack plugin for generating tanstack-query hooks", "main": "index.js", "repository": { diff --git a/packages/plugins/trpc/package.json b/packages/plugins/trpc/package.json index f92deefb3..c0b9cada9 100644 --- a/packages/plugins/trpc/package.json +++ b/packages/plugins/trpc/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/trpc", "displayName": "ZenStack plugin for tRPC", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "ZenStack plugin for tRPC", "main": "index.js", "repository": { diff --git a/packages/runtime/package.json b/packages/runtime/package.json index fd6615b61..c5c3347e4 100644 --- a/packages/runtime/package.json +++ b/packages/runtime/package.json @@ -1,7 +1,7 @@ { "name": "@zenstackhq/runtime", "displayName": "ZenStack Runtime Library", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "Runtime of ZenStack for both client-side and server-side environments.", "repository": { "type": "git", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 0087703b6..b1831a7b8 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/sdk", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "ZenStack plugin development SDK", "main": "index.js", "scripts": { diff --git a/packages/server/package.json b/packages/server/package.json index 5e1d26147..e6cd85434 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/server", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "displayName": "ZenStack Server-side Adapters", "description": "ZenStack server-side adapters", "homepage": "https://zenstack.dev", diff --git a/packages/testtools/package.json b/packages/testtools/package.json index d1cd7af46..baabb11b2 100644 --- a/packages/testtools/package.json +++ b/packages/testtools/package.json @@ -1,6 +1,6 @@ { "name": "@zenstackhq/testtools", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "description": "ZenStack Test Tools", "main": "index.js", "publishConfig": { diff --git a/tests/integration/test-run/package-lock.json b/tests/integration/test-run/package-lock.json index 816bd6586..2fd237188 100644 --- a/tests/integration/test-run/package-lock.json +++ b/tests/integration/test-run/package-lock.json @@ -126,7 +126,7 @@ }, "../../../packages/runtime/dist": { "name": "@zenstackhq/runtime", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "license": "MIT", "dependencies": { "@paralleldrive/cuid2": "^2.2.0", @@ -159,7 +159,7 @@ }, "../../../packages/schema/dist": { "name": "zenstack", - "version": "1.0.0-alpha.125", + "version": "1.0.0-alpha.126", "hasInstallScript": true, "license": "MIT", "dependencies": { From 2bb0b2bfeeb51ada09ace5489b9e36bd09dd7e90 Mon Sep 17 00:00:00 2001 From: Jiasheng Date: Tue, 6 Jun 2023 11:22:50 +0100 Subject: [PATCH 4/4] fix: generate .zenstack with the same level of @zenstackhq (#464) --- packages/schema/src/plugins/plugin-utils.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/schema/src/plugins/plugin-utils.ts b/packages/schema/src/plugins/plugin-utils.ts index 546166892..482f7a7bd 100644 --- a/packages/schema/src/plugins/plugin-utils.ts +++ b/packages/schema/src/plugins/plugin-utils.ts @@ -9,7 +9,9 @@ export const ALL_OPERATION_KINDS: PolicyOperationKind[] = ['create', 'update', ' */ export function getNodeModulesFolder(startPath?: string): string | undefined { startPath = startPath ?? process.cwd(); - if (fs.existsSync(path.join(startPath, 'node_modules'))) { + if (startPath.endsWith('node_modules')) { + return startPath; + } else if (fs.existsSync(path.join(startPath, 'node_modules'))) { return path.join(startPath, 'node_modules'); } else if (startPath !== '/') { const parent = path.join(startPath, '..'); @@ -25,7 +27,14 @@ export function getNodeModulesFolder(startPath?: string): string | undefined { */ export function getDefaultOutputFolder() { // Find the real runtime module path, it might be a symlink in pnpm - const runtimeModulePath = require.resolve('@zenstackhq/runtime'); + let runtimeModulePath = require.resolve('@zenstackhq/runtime'); + if (runtimeModulePath) { + // start with the parent folder of @zenstackhq, supposed to be a node_modules folder + while (!runtimeModulePath.endsWith('@zenstackhq') && runtimeModulePath !== '/') { + runtimeModulePath = path.join(runtimeModulePath, '..'); + } + runtimeModulePath = path.join(runtimeModulePath, '..'); + } const modulesFolder = getNodeModulesFolder(runtimeModulePath); return modulesFolder ? path.join(modulesFolder, '.zenstack') : undefined; }