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 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` | Minimal monorepo with config only |
84
- | `library` | Workspaces layout with a sample React package |
85
- | `api` | Backend API workspace with server/build setup |
86
- | `ssr` | Server-rendered React API with CMS placeholder |
87
- | `ssg` | Static site generation workspace |
88
- | `spa` | Single-page application |
89
-
90
- Presets in progress:
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
@@ -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\nTry:\n corepack enable\n yarn set version stable`,
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\nTry:\n corepack enable\n yarn set version stable`,
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 yarnResults = await yarn();
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',