create-appraise 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.e2e.test.js +39 -0
- package/dist/cli.e2e.test.js.map +1 -1
- package/dist/cli.js +9 -9
- package/dist/cli.js.map +1 -1
- package/dist/download-repo.js +4 -4
- package/dist/download-repo.js.map +1 -1
- package/dist/install.d.ts +11 -1
- package/dist/install.d.ts.map +1 -1
- package/dist/install.js +95 -12
- package/dist/install.js.map +1 -1
- package/dist/install.test.js +107 -9
- package/dist/install.test.js.map +1 -1
- package/package.json +3 -1
package/dist/cli.e2e.test.js
CHANGED
|
@@ -3,6 +3,7 @@ import path from 'path';
|
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
import os from 'os';
|
|
5
5
|
import { getTemplatePath } from './copy-template.js';
|
|
6
|
+
import { patchPackageJsonScripts } from './install.js';
|
|
6
7
|
describe('CLI E2E', () => {
|
|
7
8
|
let tempDir;
|
|
8
9
|
let destDir;
|
|
@@ -30,5 +31,43 @@ describe('CLI E2E', () => {
|
|
|
30
31
|
expect(pkg.name).toBe('appraise');
|
|
31
32
|
expect(pkg.scripts?.dev).toBeDefined();
|
|
32
33
|
});
|
|
34
|
+
it('patchPackageJsonScripts rewrites real template scripts for chosen package manager', async () => {
|
|
35
|
+
const templatePath = getTemplatePath();
|
|
36
|
+
if (!(await fs.pathExists(templatePath))) {
|
|
37
|
+
console.warn('Skipping E2E: template not found (run npm run build first)');
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const { copyTemplate } = await import('./copy-template.js');
|
|
41
|
+
await copyTemplate(destDir);
|
|
42
|
+
const pkgBefore = await fs.readJson(path.join(destDir, 'package.json'));
|
|
43
|
+
expect(pkgBefore.scripts['install-dependencies']).toBe('npm install --legacy-peer-deps');
|
|
44
|
+
expect(pkgBefore.scripts.setup).toMatch(/npm run /);
|
|
45
|
+
await patchPackageJsonScripts(destDir, 'pnpm');
|
|
46
|
+
const pkgAfter = await fs.readJson(path.join(destDir, 'package.json'));
|
|
47
|
+
expect(pkgAfter.scripts['install-dependencies']).toBe('pnpm install');
|
|
48
|
+
expect(pkgAfter.scripts.setup).toBe('pnpm run install-dependencies && pnpm run setup-env && pnpm run migrate-db && pnpm run install-playwright');
|
|
49
|
+
expect(pkgAfter.scripts['appraise:setup']).toBe('pnpm run setup');
|
|
50
|
+
expect(pkgAfter.scripts['appraise:sync']).toBe('pnpm run sync-all');
|
|
51
|
+
expect(pkgAfter.scripts['setup-env']).toContain('pnpm exec ');
|
|
52
|
+
expect(pkgAfter.scripts['setup-env']).not.toContain('npx ');
|
|
53
|
+
expect(pkgAfter.scripts['sync-all']).toContain('pnpm exec ');
|
|
54
|
+
expect(pkgAfter.scripts['install-playwright']).toContain('pnpm exec ');
|
|
55
|
+
expect(pkgAfter.scripts['install-playwright']).not.toContain('npx ');
|
|
56
|
+
});
|
|
57
|
+
it('patchPackageJsonScripts rewrites npx-using scripts for bun', async () => {
|
|
58
|
+
const templatePath = getTemplatePath();
|
|
59
|
+
if (!(await fs.pathExists(templatePath))) {
|
|
60
|
+
console.warn('Skipping E2E: template not found (run npm run build first)');
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const { copyTemplate } = await import('./copy-template.js');
|
|
64
|
+
await copyTemplate(destDir);
|
|
65
|
+
await patchPackageJsonScripts(destDir, 'bun');
|
|
66
|
+
const pkgAfter = await fs.readJson(path.join(destDir, 'package.json'));
|
|
67
|
+
expect(pkgAfter.scripts['setup-env']).toContain('bunx ');
|
|
68
|
+
expect(pkgAfter.scripts['sync-all']).toContain('bunx ');
|
|
69
|
+
expect(pkgAfter.scripts['install-playwright']).toContain('bunx ');
|
|
70
|
+
expect(pkgAfter.scripts['setup-env']).not.toContain('npx ');
|
|
71
|
+
});
|
|
33
72
|
});
|
|
34
73
|
//# sourceMappingURL=cli.e2e.test.js.map
|
package/dist/cli.e2e.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.e2e.test.js","sourceRoot":"","sources":["../src/cli.e2e.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.e2e.test.js","sourceRoot":"","sources":["../src/cli.e2e.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.js
CHANGED
|
@@ -3,7 +3,7 @@ import path from 'path';
|
|
|
3
3
|
import fs from 'fs-extra';
|
|
4
4
|
import { runPrompts } from './prompts.js';
|
|
5
5
|
import { copyTemplate } from './copy-template.js';
|
|
6
|
-
import {
|
|
6
|
+
import { runSetup, getInstallCommand, patchPackageJsonScripts } from './install.js';
|
|
7
7
|
import { getConfig } from './config.js';
|
|
8
8
|
import { downloadRepo } from './download-repo.js';
|
|
9
9
|
function printSuccessMessage(targetDir, packageManager, didInstall) {
|
|
@@ -12,17 +12,16 @@ function printSuccessMessage(targetDir, packageManager, didInstall) {
|
|
|
12
12
|
console.log('\n\u2713 Appraise app created successfully!\n');
|
|
13
13
|
console.log(` Location: ${targetDir}\n`);
|
|
14
14
|
console.log(' Next steps:\n');
|
|
15
|
+
const pm = packageManager;
|
|
15
16
|
if (!didInstall) {
|
|
16
|
-
const { command, args } = getInstallCommand(
|
|
17
|
+
const { command, args } = getInstallCommand(pm);
|
|
17
18
|
console.log(` 1. cd ${cdPath}`);
|
|
18
19
|
console.log(` 2. ${command} ${args.join(' ')}`);
|
|
19
|
-
console.log(
|
|
20
|
-
console.log(' 4. npm run dev\n');
|
|
20
|
+
console.log(` 3. ${pm} run dev\n`);
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
23
|
console.log(` 1. cd ${cdPath}`);
|
|
24
|
-
console.log(
|
|
25
|
-
console.log(' 3. npm run dev\n');
|
|
24
|
+
console.log(` 2. ${pm} run dev\n`);
|
|
26
25
|
}
|
|
27
26
|
console.log(' See README.md in the project for more details.\n');
|
|
28
27
|
}
|
|
@@ -65,10 +64,11 @@ async function main() {
|
|
|
65
64
|
}
|
|
66
65
|
}
|
|
67
66
|
}
|
|
67
|
+
await patchPackageJsonScripts(directory, packageManager);
|
|
68
68
|
if (shouldRunInstall) {
|
|
69
|
-
console.log('
|
|
70
|
-
await
|
|
71
|
-
console.log('
|
|
69
|
+
console.log(' Running setup (dependencies, env, db, Playwright)...');
|
|
70
|
+
await runSetup(directory, packageManager);
|
|
71
|
+
console.log(' Setup complete.\n');
|
|
72
72
|
}
|
|
73
73
|
printSuccessMessage(directory, packageManager, shouldRunInstall);
|
|
74
74
|
}
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/download-repo.js
CHANGED
|
@@ -26,9 +26,9 @@ async function tryTarball(repoBase, branch, templateSubpath) {
|
|
|
26
26
|
await fs.writeFile(archivePath, Buffer.from(arrayBuffer));
|
|
27
27
|
await extractTar({ file: archivePath, cwd: tempDir });
|
|
28
28
|
const entries = await fs.readdir(tempDir, { withFileTypes: true });
|
|
29
|
-
const topLevelDirs = entries.filter(
|
|
29
|
+
const topLevelDirs = entries.filter(e => e.isDirectory());
|
|
30
30
|
if (topLevelDirs.length !== 1) {
|
|
31
|
-
const dirNames = topLevelDirs.map(
|
|
31
|
+
const dirNames = topLevelDirs.map(d => d.name).join(', ') || 'none';
|
|
32
32
|
return {
|
|
33
33
|
error: `Tarball extract failed: expected exactly one top-level directory, got ${topLevelDirs.length} (${dirNames})`,
|
|
34
34
|
};
|
|
@@ -55,11 +55,11 @@ function runGitClone(cloneUrl, branch, tempDir) {
|
|
|
55
55
|
stdio: 'pipe',
|
|
56
56
|
});
|
|
57
57
|
let stderr = '';
|
|
58
|
-
child.stderr?.on('data',
|
|
58
|
+
child.stderr?.on('data', chunk => {
|
|
59
59
|
stderr += chunk;
|
|
60
60
|
});
|
|
61
61
|
child.on('error', reject);
|
|
62
|
-
child.on('close',
|
|
62
|
+
child.on('close', code => {
|
|
63
63
|
if (code === 0)
|
|
64
64
|
resolve();
|
|
65
65
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"download-repo.js","sourceRoot":"","sources":["../src/download-repo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"download-repo.js","sourceRoot":"","sources":["../src/download-repo.ts"],"names":[],"mappings":"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"}
|
package/dist/install.d.ts
CHANGED
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
import type { PackageManager } from './prompts.js';
|
|
2
|
+
/** Used for "next steps" when user skips running setup (setup includes install). */
|
|
2
3
|
export declare function getInstallCommand(pm: PackageManager): {
|
|
3
4
|
command: string;
|
|
4
5
|
args: string[];
|
|
5
6
|
};
|
|
6
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Rewrite the project's package.json scripts to use the user's package manager
|
|
9
|
+
* instead of hardcoded npm, so that `setup` and related scripts use the chosen PM.
|
|
10
|
+
*/
|
|
11
|
+
export declare function patchPackageJsonScripts(targetDir: string, pm: PackageManager): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Run the project's `setup` script (install-dependencies, setup-env, migrate-db, install-playwright).
|
|
14
|
+
* The template's setup already runs install, so we only need to run this once.
|
|
15
|
+
*/
|
|
16
|
+
export declare function runSetup(targetDir: string, pm: PackageManager): Promise<void>;
|
|
7
17
|
//# sourceMappingURL=install.d.ts.map
|
package/dist/install.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAazF;AAuCD;;;GAGG;AACH,wBAAsB,uBAAuB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAgClG;AAeD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAU7E"}
|
package/dist/install.js
CHANGED
|
@@ -1,27 +1,110 @@
|
|
|
1
|
-
import
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import spawn from 'cross-spawn';
|
|
2
3
|
import path from 'path';
|
|
4
|
+
const RUN_SETUP_ARGS = ['run', 'setup'];
|
|
5
|
+
/** Used for "next steps" when user skips running setup (setup includes install). */
|
|
3
6
|
export function getInstallCommand(pm) {
|
|
4
7
|
switch (pm) {
|
|
5
8
|
case 'npm':
|
|
6
|
-
return { command: 'npm', args: [
|
|
9
|
+
return { command: 'npm', args: [...RUN_SETUP_ARGS] };
|
|
7
10
|
case 'pnpm':
|
|
8
|
-
return { command: 'pnpm', args: [
|
|
11
|
+
return { command: 'pnpm', args: [...RUN_SETUP_ARGS] };
|
|
9
12
|
case 'yarn':
|
|
10
|
-
return { command: 'yarn', args: [
|
|
13
|
+
return { command: 'yarn', args: [...RUN_SETUP_ARGS] };
|
|
11
14
|
case 'bun':
|
|
12
|
-
return { command: 'bun', args: [
|
|
15
|
+
return { command: 'bun', args: [...RUN_SETUP_ARGS] };
|
|
13
16
|
default:
|
|
14
|
-
return { command: 'npm', args: [
|
|
17
|
+
return { command: 'npm', args: [...RUN_SETUP_ARGS] };
|
|
15
18
|
}
|
|
16
19
|
}
|
|
17
|
-
|
|
20
|
+
/** Install command for each PM (used in package.json install-dependencies script). */
|
|
21
|
+
function getInstallScript(pm) {
|
|
22
|
+
switch (pm) {
|
|
23
|
+
case 'npm':
|
|
24
|
+
return 'npm install --legacy-peer-deps';
|
|
25
|
+
case 'pnpm':
|
|
26
|
+
return 'pnpm install';
|
|
27
|
+
case 'yarn':
|
|
28
|
+
return 'yarn install';
|
|
29
|
+
case 'bun':
|
|
30
|
+
return 'bun install';
|
|
31
|
+
default:
|
|
32
|
+
return 'npm install --legacy-peer-deps';
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/** "pm run" prefix for script invocations (e.g. "pnpm run"). */
|
|
36
|
+
function getRunPrefix(pm) {
|
|
37
|
+
return `${pm} run`;
|
|
38
|
+
}
|
|
39
|
+
/** Exec prefix for running binaries (replaces "npx " in script bodies). */
|
|
40
|
+
function getExecPrefix(pm) {
|
|
41
|
+
switch (pm) {
|
|
42
|
+
case 'npm':
|
|
43
|
+
return 'npx ';
|
|
44
|
+
case 'pnpm':
|
|
45
|
+
return 'pnpm exec ';
|
|
46
|
+
case 'yarn':
|
|
47
|
+
return 'yarn run ';
|
|
48
|
+
case 'bun':
|
|
49
|
+
return 'bunx ';
|
|
50
|
+
default:
|
|
51
|
+
return 'npx ';
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Rewrite the project's package.json scripts to use the user's package manager
|
|
56
|
+
* instead of hardcoded npm, so that `setup` and related scripts use the chosen PM.
|
|
57
|
+
*/
|
|
58
|
+
export async function patchPackageJsonScripts(targetDir, pm) {
|
|
59
|
+
const pkgPath = path.join(path.resolve(targetDir), 'package.json');
|
|
60
|
+
if (!(await fs.pathExists(pkgPath)))
|
|
61
|
+
return;
|
|
62
|
+
const pkg = (await fs.readJson(pkgPath));
|
|
63
|
+
if (!pkg.scripts)
|
|
64
|
+
return;
|
|
65
|
+
const installScript = getInstallScript(pm);
|
|
66
|
+
const runPrefix = getRunPrefix(pm);
|
|
67
|
+
if (pkg.scripts['install-dependencies'] !== undefined) {
|
|
68
|
+
pkg.scripts['install-dependencies'] = installScript;
|
|
69
|
+
}
|
|
70
|
+
if (pkg.scripts['setup'] !== undefined) {
|
|
71
|
+
pkg.scripts['setup'] = pkg.scripts['setup'].replace(/npm run /g, `${runPrefix} `);
|
|
72
|
+
}
|
|
73
|
+
if (pkg.scripts['appraise:setup'] !== undefined) {
|
|
74
|
+
pkg.scripts['appraise:setup'] = `${runPrefix} setup`;
|
|
75
|
+
}
|
|
76
|
+
if (pkg.scripts['appraise:sync'] !== undefined) {
|
|
77
|
+
pkg.scripts['appraise:sync'] = `${runPrefix} sync-all`;
|
|
78
|
+
}
|
|
79
|
+
const execPrefix = getExecPrefix(pm);
|
|
80
|
+
for (const key of Object.keys(pkg.scripts)) {
|
|
81
|
+
const value = pkg.scripts[key];
|
|
82
|
+
if (typeof value === 'string' && value.includes('npx ')) {
|
|
83
|
+
pkg.scripts[key] = value.replace(/npx /g, execPrefix);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
await fs.writeJson(pkgPath, pkg, { spaces: 2 });
|
|
87
|
+
}
|
|
88
|
+
function spawnOptions(targetDir) {
|
|
89
|
+
return {
|
|
90
|
+
cwd: path.resolve(targetDir),
|
|
91
|
+
stdio: ['ignore', 'inherit', 'inherit'],
|
|
92
|
+
env: {
|
|
93
|
+
...process.env,
|
|
94
|
+
ADBLOCK: '1',
|
|
95
|
+
NODE_ENV: 'development',
|
|
96
|
+
DISABLE_OPENCOLLECTIVE: '1',
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Run the project's `setup` script (install-dependencies, setup-env, migrate-db, install-playwright).
|
|
102
|
+
* The template's setup already runs install, so we only need to run this once.
|
|
103
|
+
*/
|
|
104
|
+
export function runSetup(targetDir, pm) {
|
|
18
105
|
const { command, args } = getInstallCommand(pm);
|
|
19
106
|
return new Promise((resolve, reject) => {
|
|
20
|
-
const child = spawn(command, args,
|
|
21
|
-
cwd: path.resolve(targetDir),
|
|
22
|
-
stdio: ['ignore', 'inherit', 'inherit'],
|
|
23
|
-
shell: true,
|
|
24
|
-
});
|
|
107
|
+
const child = spawn(command, args, spawnOptions(targetDir));
|
|
25
108
|
child.on('error', reject);
|
|
26
109
|
child.on('close', (code) => {
|
|
27
110
|
if (code === 0)
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
package/dist/install.test.js
CHANGED
|
@@ -1,21 +1,119 @@
|
|
|
1
|
+
import fs from 'fs-extra';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import os from 'os';
|
|
1
4
|
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { getInstallCommand } from './install.js';
|
|
5
|
+
import { getInstallCommand, patchPackageJsonScripts } from './install.js';
|
|
6
|
+
const TEMPLATE_SCRIPTS = {
|
|
7
|
+
'install-dependencies': 'npm install --legacy-peer-deps',
|
|
8
|
+
setup: 'npm run install-dependencies && npm run setup-env && npm run migrate-db && npm run install-playwright',
|
|
9
|
+
'appraise:setup': 'npm run setup',
|
|
10
|
+
'appraise:sync': 'npm run sync-all',
|
|
11
|
+
'setup-env': 'npx tsx scripts/setup-env.ts',
|
|
12
|
+
'migrate-db': 'npx prisma migrate dev',
|
|
13
|
+
'install-playwright': 'npx playwright install && npx playwright install-deps',
|
|
14
|
+
'sync-all': 'npx tsx scripts/sync-all.ts',
|
|
15
|
+
};
|
|
16
|
+
async function patchAndRead(dir, pm) {
|
|
17
|
+
await fs.writeJson(path.join(dir, 'package.json'), { name: 'appraise', scripts: { ...TEMPLATE_SCRIPTS } });
|
|
18
|
+
await patchPackageJsonScripts(dir, pm);
|
|
19
|
+
return fs.readJson(path.join(dir, 'package.json'));
|
|
20
|
+
}
|
|
21
|
+
describe('patchPackageJsonScripts', () => {
|
|
22
|
+
it('rewrites package.json scripts to use pnpm instead of npm', async () => {
|
|
23
|
+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'create-appraise-patch-'));
|
|
24
|
+
try {
|
|
25
|
+
const pkg = await patchAndRead(dir, 'pnpm');
|
|
26
|
+
expect(pkg.scripts['install-dependencies']).toBe('pnpm install');
|
|
27
|
+
expect(pkg.scripts.setup).toBe('pnpm run install-dependencies && pnpm run setup-env && pnpm run migrate-db && pnpm run install-playwright');
|
|
28
|
+
expect(pkg.scripts['appraise:setup']).toBe('pnpm run setup');
|
|
29
|
+
expect(pkg.scripts['appraise:sync']).toBe('pnpm run sync-all');
|
|
30
|
+
expect(pkg.scripts['setup-env']).toBe('pnpm exec tsx scripts/setup-env.ts');
|
|
31
|
+
expect(pkg.scripts['migrate-db']).toBe('pnpm exec prisma migrate dev');
|
|
32
|
+
expect(pkg.scripts['install-playwright']).toBe('pnpm exec playwright install && pnpm exec playwright install-deps');
|
|
33
|
+
expect(pkg.scripts['sync-all']).toBe('pnpm exec tsx scripts/sync-all.ts');
|
|
34
|
+
expect(pkg.scripts['setup-env']).not.toContain('npx ');
|
|
35
|
+
}
|
|
36
|
+
finally {
|
|
37
|
+
await fs.remove(dir).catch(() => { });
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
it('rewrites scripts for npm (keeps legacy-peer-deps and npx)', async () => {
|
|
41
|
+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'create-appraise-patch-npm-'));
|
|
42
|
+
try {
|
|
43
|
+
const pkg = await patchAndRead(dir, 'npm');
|
|
44
|
+
expect(pkg.scripts['install-dependencies']).toBe('npm install --legacy-peer-deps');
|
|
45
|
+
expect(pkg.scripts.setup).toContain('npm run install-dependencies');
|
|
46
|
+
expect(pkg.scripts.setup).not.toContain('pnpm run');
|
|
47
|
+
expect(pkg.scripts['setup-env']).toContain('npx ');
|
|
48
|
+
expect(pkg.scripts['setup-env']).toBe('npx tsx scripts/setup-env.ts');
|
|
49
|
+
expect(pkg.scripts['sync-all']).toBe('npx tsx scripts/sync-all.ts');
|
|
50
|
+
}
|
|
51
|
+
finally {
|
|
52
|
+
await fs.remove(dir).catch(() => { });
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
it('rewrites scripts for yarn', async () => {
|
|
56
|
+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'create-appraise-patch-yarn-'));
|
|
57
|
+
try {
|
|
58
|
+
const pkg = await patchAndRead(dir, 'yarn');
|
|
59
|
+
expect(pkg.scripts['install-dependencies']).toBe('yarn install');
|
|
60
|
+
expect(pkg.scripts.setup).toBe('yarn run install-dependencies && yarn run setup-env && yarn run migrate-db && yarn run install-playwright');
|
|
61
|
+
expect(pkg.scripts['appraise:setup']).toBe('yarn run setup');
|
|
62
|
+
expect(pkg.scripts['setup-env']).toBe('yarn run tsx scripts/setup-env.ts');
|
|
63
|
+
expect(pkg.scripts['install-playwright']).toBe('yarn run playwright install && yarn run playwright install-deps');
|
|
64
|
+
expect(pkg.scripts['sync-all']).not.toContain('npx ');
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
await fs.remove(dir).catch(() => { });
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
it('rewrites scripts for bun', async () => {
|
|
71
|
+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'create-appraise-patch-bun-'));
|
|
72
|
+
try {
|
|
73
|
+
const pkg = await patchAndRead(dir, 'bun');
|
|
74
|
+
expect(pkg.scripts['install-dependencies']).toBe('bun install');
|
|
75
|
+
expect(pkg.scripts.setup).toContain('bun run install-dependencies');
|
|
76
|
+
expect(pkg.scripts['appraise:sync']).toBe('bun run sync-all');
|
|
77
|
+
expect(pkg.scripts['setup-env']).toBe('bunx tsx scripts/setup-env.ts');
|
|
78
|
+
expect(pkg.scripts['migrate-db']).toBe('bunx prisma migrate dev');
|
|
79
|
+
expect(pkg.scripts['sync-all']).toContain('bunx ');
|
|
80
|
+
expect(pkg.scripts['sync-all']).not.toContain('npx ');
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
await fs.remove(dir).catch(() => { });
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
it('no-ops when package.json does not exist', async () => {
|
|
87
|
+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), 'create-appraise-noop-'));
|
|
88
|
+
try {
|
|
89
|
+
await patchPackageJsonScripts(dir, 'yarn');
|
|
90
|
+
await expect(fs.pathExists(path.join(dir, 'package.json'))).resolves.toBe(false);
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
await fs.remove(dir).catch(() => { });
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
});
|
|
3
97
|
describe('getInstallCommand', () => {
|
|
4
|
-
it('returns npm
|
|
98
|
+
it('returns npm run setup for npm', () => {
|
|
5
99
|
const result = getInstallCommand('npm');
|
|
6
|
-
expect(result).toEqual({ command: 'npm', args: ['
|
|
100
|
+
expect(result).toEqual({ command: 'npm', args: ['run', 'setup'] });
|
|
101
|
+
expect(`${result.command} ${result.args.join(' ')}`).toBe('npm run setup');
|
|
7
102
|
});
|
|
8
|
-
it('returns pnpm
|
|
103
|
+
it('returns pnpm run setup for pnpm', () => {
|
|
9
104
|
const result = getInstallCommand('pnpm');
|
|
10
|
-
expect(result).toEqual({ command: 'pnpm', args: ['
|
|
105
|
+
expect(result).toEqual({ command: 'pnpm', args: ['run', 'setup'] });
|
|
106
|
+
expect(`${result.command} ${result.args.join(' ')}`).toBe('pnpm run setup');
|
|
11
107
|
});
|
|
12
|
-
it('returns yarn
|
|
108
|
+
it('returns yarn run setup for yarn', () => {
|
|
13
109
|
const result = getInstallCommand('yarn');
|
|
14
|
-
expect(result).toEqual({ command: 'yarn', args: ['
|
|
110
|
+
expect(result).toEqual({ command: 'yarn', args: ['run', 'setup'] });
|
|
111
|
+
expect(`${result.command} ${result.args.join(' ')}`).toBe('yarn run setup');
|
|
15
112
|
});
|
|
16
|
-
it('returns bun
|
|
113
|
+
it('returns bun run setup for bun', () => {
|
|
17
114
|
const result = getInstallCommand('bun');
|
|
18
|
-
expect(result).toEqual({ command: 'bun', args: ['
|
|
115
|
+
expect(result).toEqual({ command: 'bun', args: ['run', 'setup'] });
|
|
116
|
+
expect(`${result.command} ${result.args.join(' ')}`).toBe('bun run setup');
|
|
19
117
|
});
|
|
20
118
|
});
|
|
21
119
|
//# sourceMappingURL=install.test.js.map
|
package/dist/install.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.test.js","sourceRoot":"","sources":["../src/install.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"install.test.js","sourceRoot":"","sources":["../src/install.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-appraise",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Scaffold a new Appraise app in your directory",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Hasnat Jamil",
|
|
@@ -44,11 +44,13 @@
|
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@inquirer/prompts": "^7.2.0",
|
|
46
46
|
"cli-progress": "^3.12.0",
|
|
47
|
+
"cross-spawn": "^7.0.6",
|
|
47
48
|
"fs-extra": "^11.2.0",
|
|
48
49
|
"tar": "^7.0.0"
|
|
49
50
|
},
|
|
50
51
|
"devDependencies": {
|
|
51
52
|
"@types/cli-progress": "^3.11.6",
|
|
53
|
+
"@types/cross-spawn": "^6.0.6",
|
|
52
54
|
"@types/fs-extra": "^11.0.4",
|
|
53
55
|
"@types/node": "^20.17.16",
|
|
54
56
|
"tsx": "^4.20.4",
|