From 70e8c693d7738210766a6899dcf1eb9baaa0402b Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Mon, 27 Feb 2023 22:38:01 +0800 Subject: [PATCH 1/3] fix: ensure prisma installation during init --- packages/schema/src/cli/cli-util.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/schema/src/cli/cli-util.ts b/packages/schema/src/cli/cli-util.ts index 78beb7ee0..e70ccf78b 100644 --- a/packages/schema/src/cli/cli-util.ts +++ b/packages/schema/src/cli/cli-util.ts @@ -9,7 +9,7 @@ import { URI } from 'vscode-uri'; import { STD_LIB_MODULE_NAME } from '../language-server/constants'; import { createZModelServices } from '../language-server/zmodel-module'; import { Context } from '../types'; -import { installPackage, PackageManagers } from '../utils/pkg-utils'; +import { ensurePackage, installPackage, PackageManagers } from '../utils/pkg-utils'; import { CliError } from './cli-error'; import { PluginRunner } from './plugin-runner'; @@ -54,6 +54,8 @@ export async function initProject( } } + ensurePackage('prisma', true, packageManager, projectPath); + ensurePackage('@prisma/client', false, packageManager, projectPath); installPackage('zenstack', true, packageManager, tag, projectPath); installPackage('@zenstackhq/runtime', false, packageManager, tag, projectPath); From 649b4b7dc66a421752b908ffb27caf1941970dd0 Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Mon, 27 Feb 2023 22:49:19 +0800 Subject: [PATCH 2/3] fix --- packages/schema/src/cli/cli-util.ts | 4 ++-- packages/schema/src/utils/pkg-utils.ts | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/schema/src/cli/cli-util.ts b/packages/schema/src/cli/cli-util.ts index e70ccf78b..5b4e6c7ef 100644 --- a/packages/schema/src/cli/cli-util.ts +++ b/packages/schema/src/cli/cli-util.ts @@ -54,8 +54,8 @@ export async function initProject( } } - ensurePackage('prisma', true, packageManager, projectPath); - ensurePackage('@prisma/client', false, packageManager, projectPath); + ensurePackage('prisma', true, packageManager, tag, projectPath); + ensurePackage('@prisma/client', false, packageManager, tag, projectPath); installPackage('zenstack', true, packageManager, tag, projectPath); installPackage('@zenstackhq/runtime', false, packageManager, tag, projectPath); diff --git a/packages/schema/src/utils/pkg-utils.ts b/packages/schema/src/utils/pkg-utils.ts index a1be85b98..dedef31d7 100644 --- a/packages/schema/src/utils/pkg-utils.ts +++ b/packages/schema/src/utils/pkg-utils.ts @@ -42,11 +42,12 @@ export function ensurePackage( pkg: string, dev: boolean, pkgManager: PackageManagers | undefined = undefined, + tag = 'latest', projectPath = '.' ) { try { require(pkg); } catch { - installPackage(pkg, dev, pkgManager, projectPath); + installPackage(pkg, dev, pkgManager, tag, projectPath); } } From 36eb9579d9565e361a8121ca5ce6b7cfdec1b67e Mon Sep 17 00:00:00 2001 From: ymc9 <104139426+ymc9@users.noreply.github.com> Date: Mon, 27 Feb 2023 22:57:06 +0800 Subject: [PATCH 3/3] fix tag --- packages/schema/src/cli/cli-util.ts | 4 ++-- packages/schema/tests/cli/cli.test.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/schema/src/cli/cli-util.ts b/packages/schema/src/cli/cli-util.ts index 5b4e6c7ef..25ee919a3 100644 --- a/packages/schema/src/cli/cli-util.ts +++ b/packages/schema/src/cli/cli-util.ts @@ -54,8 +54,8 @@ export async function initProject( } } - ensurePackage('prisma', true, packageManager, tag, projectPath); - ensurePackage('@prisma/client', false, packageManager, tag, projectPath); + ensurePackage('prisma', true, packageManager, 'latest', projectPath); + ensurePackage('@prisma/client', false, packageManager, 'latest', projectPath); installPackage('zenstack', true, packageManager, tag, projectPath); installPackage('@zenstackhq/runtime', false, packageManager, tag, projectPath); diff --git a/packages/schema/tests/cli/cli.test.ts b/packages/schema/tests/cli/cli.test.ts index f42ee4846..a3ead5df9 100644 --- a/packages/schema/tests/cli/cli.test.ts +++ b/packages/schema/tests/cli/cli.test.ts @@ -33,7 +33,7 @@ describe('CLI Tests', () => { createNpmrc(); const program = createProgram(); - program.parse(['init', '--tag', 'canary'], { from: 'user' }); + program.parse(['init', '--tag', 'latest'], { from: 'user' }); expect(fs.readFileSync('schema.zmodel', 'utf-8')).toEqual(fs.readFileSync('prisma/schema.prisma', 'utf-8')); }); @@ -47,7 +47,7 @@ describe('CLI Tests', () => { fs.renameSync('prisma/schema.prisma', 'prisma/my.prisma'); const program = createProgram(); - program.parse(['init', '--tag', 'canary', '--prisma', 'prisma/my.prisma'], { from: 'user' }); + program.parse(['init', '--tag', 'latest', '--prisma', 'prisma/my.prisma'], { from: 'user' }); expect(fs.readFileSync('schema.zmodel', 'utf-8')).toEqual(fs.readFileSync('prisma/my.prisma', 'utf-8')); }); @@ -56,7 +56,7 @@ describe('CLI Tests', () => { fs.writeFileSync('package.json', JSON.stringify({ name: 'my app', version: '1.0.0' })); createNpmrc(); const program = createProgram(); - program.parse(['init', '--tag', 'canary'], { from: 'user' }); + program.parse(['init', '--tag', 'latest'], { from: 'user' }); expect(fs.readFileSync('schema.zmodel', 'utf-8')).toBeTruthy(); }); @@ -71,7 +71,7 @@ describe('CLI Tests', () => { fs.writeFileSync('schema.zmodel', origZModelContent); createNpmrc(); const program = createProgram(); - program.parse(['init', '--tag', 'canary'], { from: 'user' }); + program.parse(['init', '--tag', 'latest'], { from: 'user' }); expect(fs.readFileSync('schema.zmodel', 'utf-8')).toEqual(origZModelContent); }); });