vyriy 0.4.4 → 0.4.7
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/README.md +11 -16
- package/commands/check-env.js +58 -3
- package/commands/create/plan/plan.d.ts +1 -1
- package/commands/create/preset/api.js +0 -2
- package/commands/create/preset/gql.js +740 -6
- package/commands/create/preset/index.d.ts +10 -0
- package/commands/create/preset/index.js +12 -0
- package/commands/create/preset/rest.js +335 -7
- package/commands/create/preset/spa.js +40 -42
- package/commands/create/preset/ssg.js +69 -71
- package/commands/create/preset/ssr.js +0 -2
- package/commands/types.d.ts +4 -5
- package/package.json +5 -8
package/README.md
CHANGED
|
@@ -78,22 +78,17 @@ Prepares every package inside the `dist/` directory for npm publishing:
|
|
|
78
78
|
|
|
79
79
|
Registered presets:
|
|
80
80
|
|
|
81
|
-
| Key | Description
|
|
82
|
-
| --------- |
|
|
83
|
-
| `base` |
|
|
84
|
-
| `library` |
|
|
85
|
-
| `api` |
|
|
86
|
-
| `ssr` |
|
|
87
|
-
| `ssg` | Static site generation
|
|
88
|
-
| `spa` | Single-page application
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
| Key | Direction |
|
|
93
|
-
| ------ | ---------------------- |
|
|
94
|
-
| `rest` | REST API project |
|
|
95
|
-
| `gql` | GraphQL API project |
|
|
96
|
-
| `mfe` | Micro-frontend project |
|
|
81
|
+
| Key | Description |
|
|
82
|
+
| --------- | ------------------------------------------------- |
|
|
83
|
+
| `base` | Preset to create minimal monorepo with configs |
|
|
84
|
+
| `library` | Preset to create js/react library |
|
|
85
|
+
| `api` | Preset to create simple API |
|
|
86
|
+
| `ssr` | Preset to create Server Side Rendering (SSR) API |
|
|
87
|
+
| `ssg` | Preset to create Static site generation (SSG) |
|
|
88
|
+
| `spa` | Preset to create Single-page application (SPA) |
|
|
89
|
+
| `rest` | Preset to create simple REST API |
|
|
90
|
+
| `gql` | Preset to create GraphQL API |
|
|
91
|
+
| `mfe` | Preset to create Micro-frontend (MFE) application |
|
|
97
92
|
|
|
98
93
|
Registered presets are selectable by the wizard. In-progress presets exist as
|
|
99
94
|
source modules and are expected to become selectable as their generated project
|
package/commands/check-env.js
CHANGED
|
@@ -2,6 +2,7 @@ import { exec as processExec } from 'node:child_process';
|
|
|
2
2
|
import { promisify } from 'node:util';
|
|
3
3
|
import packageJson from '../package.json' with { type: 'json' };
|
|
4
4
|
const exec = promisify(processExec);
|
|
5
|
+
const yarnStableHint = 'Try:\n corepack enable\n corepack prepare yarn@stable --activate';
|
|
5
6
|
const node = () => {
|
|
6
7
|
const majorVersion = Number.parseInt(process.versions.node.split('.')[0]);
|
|
7
8
|
const minimumMajorVersion = Number.parseInt(packageJson.engines.node.match(/(\d+)/)?.[0]);
|
|
@@ -18,6 +19,39 @@ const node = () => {
|
|
|
18
19
|
message: `Vyriy requires Node.js >= ${minimumMajorVersion}.\n\nCurrent version: ${process.versions.node}\n\nPlease upgrade Node.js and run the command again.`,
|
|
19
20
|
};
|
|
20
21
|
};
|
|
22
|
+
const corepack = async () => {
|
|
23
|
+
let currentVersion;
|
|
24
|
+
try {
|
|
25
|
+
const { stdout } = await exec('corepack --version');
|
|
26
|
+
currentVersion = stdout.trim();
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return {
|
|
30
|
+
ok: false,
|
|
31
|
+
message: `Corepack was not found.\n\nVyriy uses Corepack to install Yarn stable.\n\nInstall a Node.js distribution that includes Corepack and run the command again.`,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
ok: true,
|
|
36
|
+
message: `Corepack ${currentVersion}`,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const activateYarnStable = async () => {
|
|
40
|
+
try {
|
|
41
|
+
await exec('corepack enable');
|
|
42
|
+
await exec('corepack prepare yarn@stable --activate');
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return {
|
|
46
|
+
ok: false,
|
|
47
|
+
message: `Corepack could not activate Yarn stable.\n\n${yarnStableHint}`,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return {
|
|
51
|
+
ok: true,
|
|
52
|
+
message: 'Yarn stable activated',
|
|
53
|
+
};
|
|
54
|
+
};
|
|
21
55
|
const yarn = async () => {
|
|
22
56
|
const minimumMajorVersion = Number.parseInt(packageJson.packageManager.match(/(\d+)/)?.[0]);
|
|
23
57
|
let currentVersion;
|
|
@@ -28,7 +62,7 @@ const yarn = async () => {
|
|
|
28
62
|
catch {
|
|
29
63
|
return {
|
|
30
64
|
ok: false,
|
|
31
|
-
message: `Yarn was not found.\n\nVyriy requires Yarn >= ${minimumMajorVersion}.\n\
|
|
65
|
+
message: `Yarn was not found.\n\nVyriy requires Yarn >= ${minimumMajorVersion}.\n\n${yarnStableHint}`,
|
|
32
66
|
};
|
|
33
67
|
}
|
|
34
68
|
const majorVersion = Number.parseInt(currentVersion.match(/(\d+)/)?.[0]);
|
|
@@ -40,7 +74,7 @@ const yarn = async () => {
|
|
|
40
74
|
}
|
|
41
75
|
return {
|
|
42
76
|
ok: false,
|
|
43
|
-
message: `Vyriy requires Yarn >= ${minimumMajorVersion}.\n\nCurrent version: ${currentVersion}\n\
|
|
77
|
+
message: `Vyriy requires Yarn >= ${minimumMajorVersion}.\n\nCurrent version: ${currentVersion}\n\n${yarnStableHint}`,
|
|
44
78
|
};
|
|
45
79
|
};
|
|
46
80
|
export const checkEnv = async () => {
|
|
@@ -53,7 +87,28 @@ export const checkEnv = async () => {
|
|
|
53
87
|
console.error(nodeResults.message);
|
|
54
88
|
return 1;
|
|
55
89
|
}
|
|
56
|
-
const
|
|
90
|
+
const corepackResults = await corepack();
|
|
91
|
+
if (corepackResults.ok) {
|
|
92
|
+
console.log(' ', corepackResults.message);
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
console.error(corepackResults.message);
|
|
96
|
+
return 1;
|
|
97
|
+
}
|
|
98
|
+
let yarnResults = await yarn();
|
|
99
|
+
if (yarnResults.ok) {
|
|
100
|
+
console.log(' ', yarnResults.message);
|
|
101
|
+
return 0;
|
|
102
|
+
}
|
|
103
|
+
const yarnStableResults = await activateYarnStable();
|
|
104
|
+
if (yarnStableResults.ok) {
|
|
105
|
+
console.log(' ', yarnStableResults.message);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
console.error(yarnStableResults.message);
|
|
109
|
+
return 1;
|
|
110
|
+
}
|
|
111
|
+
yarnResults = await yarn();
|
|
57
112
|
if (yarnResults.ok) {
|
|
58
113
|
console.log(' ', yarnResults.message);
|
|
59
114
|
}
|
|
@@ -2,7 +2,7 @@ export declare const plan: (dirName: string, appPath: string) => Promise<{
|
|
|
2
2
|
name: string;
|
|
3
3
|
description: string;
|
|
4
4
|
target: string;
|
|
5
|
-
preset: "ssr" | "base" | "api" | "library" | "ssg" | "spa";
|
|
5
|
+
preset: "ssr" | "base" | "rest" | "api" | "library" | "gql" | "ssg" | "spa";
|
|
6
6
|
scope: string | undefined;
|
|
7
7
|
ci: import("../preset/types.js").CiProvider | undefined;
|
|
8
8
|
deploy: import("../preset/types.js").DeployProvider | undefined;
|
|
@@ -48,7 +48,6 @@ export const api = {
|
|
|
48
48
|
'@vyriy/storybook-config': `^${packageJson.version}`,
|
|
49
49
|
storybook: packageJson.peerDependencies.storybook,
|
|
50
50
|
'@vyriy/path': `^${packageJson.version}`,
|
|
51
|
-
vyriy: `^${packageJson.version}`,
|
|
52
51
|
husky: packageJson.peerDependencies.husky,
|
|
53
52
|
'npm-run-all2': packageJson.peerDependencies['npm-run-all2'],
|
|
54
53
|
'cross-env': packageJson.peerDependencies['cross-env'],
|
|
@@ -57,7 +56,6 @@ export const api = {
|
|
|
57
56
|
'@vyriy/handler': `^${packageJson.version}`,
|
|
58
57
|
'@vyriy/server': `^${packageJson.version}`,
|
|
59
58
|
tsx: packageJson.peerDependencies.tsx,
|
|
60
|
-
webpack: packageJson.peerDependencies.webpack,
|
|
61
59
|
'webpack-cli': packageJson.peerDependencies['webpack-cli'],
|
|
62
60
|
},
|
|
63
61
|
}, null, 2) + '\n',
|