init-workspace-cervvaljs 0.2.3 → 0.2.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.2.5 2024-06-20
2
+ - pnpm 9.5.0
3
+ ## 0.2.4 2024-06-20
4
+ - node 20.14-0
5
+ - pnpm 9.3.0
6
+ - Update packages versions
1
7
  ## 0.2.3 2024-01-13
2
8
  - Add Eslint Promise plugin
3
9
  - Add Eslint Cypress plugin
package/README.md CHANGED
@@ -7,7 +7,7 @@ This package setups a pnpm Cervval.js workspace :
7
7
  * create workspace package.json
8
8
 
9
9
  ## Prerequisites
10
- * Node 18 or above
10
+ * Node 20 or above
11
11
 
12
12
  ## Usage
13
13
  Create a workspace folder and run
@@ -1,168 +1,175 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.cli = void 0;
28
- const child_process_1 = require("child_process");
29
- const fs = __importStar(require("fs"));
30
- const path = __importStar(require("path"));
31
- // console colors
32
- const FgRed = "\x1b[31m";
33
- const FgGreen = "\x1b[32m";
34
- const FgBlue = "\x1b[34m";
35
- const FgReset = "\x1b[0m";
36
- /**
37
- * execSync with standard input outputs
38
- */
39
- function execSyncWithIo(cmd) {
40
- return (0, child_process_1.execSync)(cmd, { stdio: "inherit" });
41
- }
42
- /**
43
- * Init workspace
44
- * install pnpm globally
45
- * create pnpm workspace
46
- * create workspace package.json
47
- * @param options options
48
- * @param options.dry if true, init will be simulated but not executed
49
- * @param options.update if true, init will be done even if config files are already present
50
- * @param options.pnpmVersion if given, fix version of pnpm
51
- */
52
- function initWorkspace(options) {
53
- // check if user is on Windows & current path contains spaces
54
- const operatingSystem = process.platform;
55
- const currentPath = process.cwd();
56
- if (operatingSystem === "win32" && /\s/.test(currentPath)) {
57
- console.error(FgRed + "Your workspace path should not contain any whitespaces when using Windows", FgReset);
58
- process.exit(4 /* ErrorCodes.WRONG_PATH_FORMAT */);
59
- }
60
- // check Node Version
61
- let nodeVersionStr = process.version.toLowerCase();
62
- if (nodeVersionStr.startsWith("v")) {
63
- nodeVersionStr = nodeVersionStr.substring(1);
64
- }
65
- const nodeMainVersion = Number(nodeVersionStr.substring(0, nodeVersionStr.indexOf(".")));
66
- console.info("* Node version", nodeMainVersion, "(" + process.version + ")");
67
- if (nodeMainVersion < 14) {
68
- console.error(FgRed + "Node version 14 or above is required, init aborted", FgReset);
69
- console.info("1. Install NVM");
70
- console.info(" Linux: https://github.com/nvm-sh/nvm");
71
- console.info(" Windows: https://github.com/coreybutler/nvm-windows");
72
- console.info("2. Install Node");
73
- console.info(" nvm install 14.17.0");
74
- console.info(" nvm use 14.17.0");
75
- process.exit(1 /* ErrorCodes.WRONG_NODE */);
76
- }
77
- // check config files are not already in current folder
78
- const configFiles = ["package.json", "pnpm-workspace.yaml"];
79
- {
80
- for (const cf of configFiles) {
81
- if (fs.existsSync("./" + cf)) {
82
- if (!(options === null || options === void 0 ? void 0 : options.update)) {
83
- console.error(FgRed + cf + " found - init cancelled", FgReset);
84
- process.exit(2 /* ErrorCodes.INIT_BUT_FILE_EXISTS */);
85
- }
86
- }
87
- else if (options === null || options === void 0 ? void 0 : options.update) {
88
- console.error(FgRed + cf + " was not found");
89
- console.error(FgRed + "- Are you at the workspace root ?", FgReset);
90
- console.error(FgRed + "- Do you want to initialize a new workspace ? then you need to remove --update", FgReset);
91
- process.exit(3 /* ErrorCodes.UPDATE_BUT_FILE_DOES_NOT_EXIST */);
92
- }
93
- }
94
- }
95
- // Install pnpm
96
- const pnpmFixedVersion = options.pnpmVersion ? "@^" + options.pnpmVersion : "";
97
- if (!(options === null || options === void 0 ? void 0 : options.update)) {
98
- console.info("* install pnpm : npm install -g pnpm" + pnpmFixedVersion);
99
- if (!(options === null || options === void 0 ? void 0 : options.dry)) {
100
- execSyncWithIo("npm install -g pnpm" + pnpmFixedVersion);
101
- }
102
- }
103
- else {
104
- console.info("* update pnpm : pnpm add -g pnpm" + pnpmFixedVersion);
105
- if (!(options === null || options === void 0 ? void 0 : options.dry)) {
106
- execSyncWithIo("pnpm add -g pnpm" + pnpmFixedVersion);
107
- }
108
- }
109
- console.info("* display pnpm version : pnpm -v");
110
- execSyncWithIo("pnpm -v");
111
- // install lpx globally
112
- console.info("* " + (!(options === null || options === void 0 ? void 0 : options.update) ? "install" : "update") + " lpx globally : pnpm add -g lpx");
113
- if (!(options === null || options === void 0 ? void 0 : options.dry)) {
114
- execSyncWithIo("pnpm add -g lpx");
115
- }
116
- // create configuration files
117
- const from = path.resolve(__dirname, "../workspace") + "/_";
118
- for (const cf of configFiles) {
119
- console.info("* copy", path.resolve(from + cf), " => ", path.resolve("./" + cf));
120
- if (!(options === null || options === void 0 ? void 0 : options.dry)) {
121
- fs.copyFileSync(from + cf, "./" + cf);
122
- }
123
- }
124
- // create nvmrc
125
- if (!fs.existsSync("./.nvmrc")) {
126
- console.info("*", process.version, "> .nvmrc");
127
- if (!(options === null || options === void 0 ? void 0 : options.dry)) {
128
- fs.writeFileSync("./.nvmrc", process.version);
129
- }
130
- }
131
- if (!(options === null || options === void 0 ? void 0 : options.update)) {
132
- // install packages
133
- console.info("* init done, you can now checkout cervval.js and install packages");
134
- console.info("git clone https://git.cervval.com/CERVVAL/cervval.js.git");
135
- console.info("pnpm install");
136
- }
137
- else {
138
- console.info(FgBlue + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
139
- console.info(FgBlue + "*update done, you can now install packages");
140
- console.info(FgGreen + "pnpm install", FgReset);
141
- }
142
- return true;
143
- }
144
- /**
145
- * parses command arguments and inits workspace in current working directory
146
- */
147
- function cli() {
148
- const options = { dry: false, update: false, pnpmVersion: "6.32.11" };
149
- const args = process.argv.slice(2);
150
- if (args.includes("--dry")) {
151
- console.info("* dry mode on");
152
- options.dry = true;
153
- }
154
- if (args.includes("--update")) {
155
- console.info("* update mode on");
156
- options.update = true;
157
- }
158
- try {
159
- initWorkspace(options);
160
- }
161
- catch (err) {
162
- console.error(err);
163
- process.exit(99 /* ErrorCodes.UNEXPECTED */);
164
- }
165
- }
166
- exports.cli = cli;
167
- cli();
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || function (mod) {
20
+ if (mod && mod.__esModule) return mod;
21
+ var result = {};
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
+ __setModuleDefault(result, mod);
24
+ return result;
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.cli = void 0;
28
+ const child_process_1 = require("child_process");
29
+ const fs = __importStar(require("fs"));
30
+ const path = __importStar(require("path"));
31
+ // console colors
32
+ const FgRed = "\x1b[31m";
33
+ const FgGreen = "\x1b[32m";
34
+ const FgBlue = "\x1b[34m";
35
+ const FgReset = "\x1b[0m";
36
+ /**
37
+ * execSync with standard input outputs
38
+ */
39
+ function execSyncWithIo(cmd) {
40
+ return (0, child_process_1.execSync)(cmd, { stdio: "inherit" });
41
+ }
42
+ /**
43
+ * Init workspace
44
+ * install pnpm globally
45
+ * create pnpm workspace
46
+ * create workspace package.json
47
+ * @param options options
48
+ * @param options.dry if true, init will be simulated but not executed
49
+ * @param options.update if true, init will be done even if config files are already present
50
+ * @param options.pnpmVersion if given, fix version of pnpm
51
+ */
52
+ function initWorkspace(options) {
53
+ // check if user is on Windows & current path contains spaces
54
+ const operatingSystem = process.platform;
55
+ const currentPath = process.cwd();
56
+ if (operatingSystem === "win32" && /\s/.test(currentPath)) {
57
+ console.error(FgRed + "Your workspace path should not contain any whitespaces when using Windows", FgReset);
58
+ process.exit(4 /* ErrorCodes.WRONG_PATH_FORMAT */);
59
+ }
60
+ // check Node Version
61
+ let nodeVersionStr = process.version.toLowerCase();
62
+ if (nodeVersionStr.startsWith("v")) {
63
+ nodeVersionStr = nodeVersionStr.substring(1);
64
+ }
65
+ const nodeMainVersion = Number(nodeVersionStr.substring(0, nodeVersionStr.indexOf(".")));
66
+ console.info("* Node version", nodeMainVersion, "(" + process.version + ")");
67
+ if (nodeMainVersion < 14) {
68
+ console.error(FgRed + "Node version 14 or above is required, init aborted", FgReset);
69
+ console.info("1. Install NVM");
70
+ console.info(" Linux: https://github.com/nvm-sh/nvm");
71
+ console.info(" Windows: https://github.com/coreybutler/nvm-windows");
72
+ console.info("2. Install Node");
73
+ console.info(" nvm install 14.17.0");
74
+ console.info(" nvm use 14.17.0");
75
+ process.exit(1 /* ErrorCodes.WRONG_NODE */);
76
+ }
77
+ // check config files are not already in current folder
78
+ const configFiles = ["package.json", "pnpm-workspace.yaml"];
79
+ {
80
+ for (const cf of configFiles) {
81
+ if (fs.existsSync("./" + cf)) {
82
+ if (!(options === null || options === void 0 ? void 0 : options.update)) {
83
+ console.error(FgRed + cf + " found - init cancelled", FgReset);
84
+ process.exit(2 /* ErrorCodes.INIT_BUT_FILE_EXISTS */);
85
+ }
86
+ }
87
+ else if (options === null || options === void 0 ? void 0 : options.update) {
88
+ console.error(FgRed + cf + " was not found");
89
+ console.error(FgRed + "- Are you at the workspace root ?", FgReset);
90
+ console.error(FgRed + "- Do you want to initialize a new workspace ? then you need to remove --update", FgReset);
91
+ process.exit(3 /* ErrorCodes.UPDATE_BUT_FILE_DOES_NOT_EXIST */);
92
+ }
93
+ }
94
+ }
95
+ // Install pnpm
96
+ const pnpmFixedVersion = options.pnpmVersion ? "@" + options.pnpmVersion : "";
97
+ if (!(options === null || options === void 0 ? void 0 : options.update)) {
98
+ console.info("* install pnpm : npm install -g pnpm" + pnpmFixedVersion);
99
+ if (!(options === null || options === void 0 ? void 0 : options.dry)) {
100
+ execSyncWithIo("npm install -g pnpm" + pnpmFixedVersion);
101
+ }
102
+ }
103
+ else {
104
+ console.info("* update pnpm : pnpm add -g pnpm" + pnpmFixedVersion);
105
+ if (!(options === null || options === void 0 ? void 0 : options.dry)) {
106
+ execSyncWithIo("pnpm add -g pnpm" + pnpmFixedVersion);
107
+ }
108
+ }
109
+ console.info("* display pnpm version : pnpm -v");
110
+ execSyncWithIo("pnpm -v");
111
+ // install lpx globally
112
+ console.info("* " + (!(options === null || options === void 0 ? void 0 : options.update) ? "install" : "update") + " lpx globally : pnpm add -g lpx");
113
+ if (!(options === null || options === void 0 ? void 0 : options.dry)) {
114
+ execSyncWithIo("pnpm add -g lpx");
115
+ }
116
+ // create configuration files
117
+ const from = path.resolve(__dirname, "../workspace") + "/_";
118
+ for (const cf of configFiles) {
119
+ console.info("* copy", path.resolve(from + cf), " => ", path.resolve("./" + cf));
120
+ if (!(options === null || options === void 0 ? void 0 : options.dry)) {
121
+ fs.copyFileSync(from + cf, "./" + cf);
122
+ }
123
+ }
124
+ // create nvmrc
125
+ if (!fs.existsSync("./.nvmrc")) {
126
+ console.info("*", process.version, "> .nvmrc");
127
+ if (!(options === null || options === void 0 ? void 0 : options.dry)) {
128
+ fs.writeFileSync("./.nvmrc", process.version);
129
+ }
130
+ }
131
+ // create .npmrc file if needed
132
+ if (!fs.existsSync("./.npmrc")) {
133
+ console.info("*", "Add .npmrc file to workspace");
134
+ if (!(options === null || options === void 0 ? void 0 : options.dry)) {
135
+ fs.writeFileSync("./.npmrc", "shared-workspace-lockfile=false");
136
+ }
137
+ }
138
+ if (!(options === null || options === void 0 ? void 0 : options.update)) {
139
+ // install packages
140
+ console.info("* init done, you can now checkout cervval.js and install packages");
141
+ console.info("git clone https://git.cervval.com/CERVVAL/cervval.js.git");
142
+ console.info("pnpm install");
143
+ }
144
+ else {
145
+ console.info(FgBlue + "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
146
+ console.info(FgBlue + "*update done, you can now install packages");
147
+ console.info(FgGreen + "pnpm install", FgReset);
148
+ }
149
+ return true;
150
+ }
151
+ /**
152
+ * parses command arguments and inits workspace in current working directory
153
+ */
154
+ function cli() {
155
+ const options = { dry: false, update: false, pnpmVersion: "8.6.1" };
156
+ const args = process.argv.slice(2);
157
+ if (args.includes("--dry")) {
158
+ console.info("* dry mode on");
159
+ options.dry = true;
160
+ }
161
+ if (args.includes("--update")) {
162
+ console.info("* update mode on");
163
+ options.update = true;
164
+ }
165
+ try {
166
+ initWorkspace(options);
167
+ }
168
+ catch (err) {
169
+ console.error(err);
170
+ process.exit(99 /* ErrorCodes.UNEXPECTED */);
171
+ }
172
+ }
173
+ exports.cli = cli;
174
+ cli();
168
175
  //# sourceMappingURL=index.js.map
package/bin/index.js CHANGED
@@ -24,7 +24,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  return result;
25
25
  };
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.cli = void 0;
27
+ exports.cli = cli;
28
28
  const child_process_1 = require("child_process");
29
29
  const fs = __importStar(require("fs"));
30
30
  const path = __importStar(require("path"));
@@ -145,7 +145,7 @@ function initWorkspace(options) {
145
145
  * parses command arguments and inits workspace in current working directory
146
146
  */
147
147
  function cli() {
148
- const options = { dry: false, update: false, pnpmVersion: "8.14.1" };
148
+ const options = { dry: false, update: false, pnpmVersion: "9.5.0" };
149
149
  const args = process.argv.slice(2);
150
150
  if (args.includes("--dry")) {
151
151
  console.info("* dry mode on");
@@ -163,6 +163,5 @@ function cli() {
163
163
  process.exit(99 /* ErrorCodes.UNEXPECTED */);
164
164
  }
165
165
  }
166
- exports.cli = cli;
167
166
  cli();
168
167
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "init-workspace-cervvaljs",
3
- "version": "0.2.3",
3
+ "version": "0.2.5",
4
4
  "description": "Cervval.js Init Workspace Command Line Interface",
5
5
  "author": "Cervval",
6
6
  "license": "CC-BY-NC-ND-4.0",
@@ -31,5 +31,5 @@
31
31
  "eslintConfig": {
32
32
  "extends": "@cervval.js/eslint-config-cervvaljs"
33
33
  },
34
- "version": "0.2.3"
34
+ "version": "0.2.5"
35
35
  }