@create-node-app/core 0.0.0 → 0.1.0

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/index.js CHANGED
@@ -55,11 +55,16 @@ var import_semver = __toESM(require("semver"));
55
55
  var import_dns = __toESM(require("dns"));
56
56
  var import_url = require("url");
57
57
  var shouldUseYarn = () => {
58
- try {
59
- (0, import_child_process.execSync)("yarnpkg --version", { stdio: "ignore" });
60
- return true;
61
- } catch (e) {
62
- console.log(e);
58
+ const { hasMinYarnPnp, hasMaxYarnPnp } = checkYarnVersion();
59
+ if (!hasMinYarnPnp) {
60
+ return false;
61
+ }
62
+ if (!hasMaxYarnPnp) {
63
+ console.log(
64
+ import_chalk.default.yellow(
65
+ `You are using a pre-release version of Yarn which is not supported yet. To use Yarn, install v1.12.0 or higher.`
66
+ )
67
+ );
63
68
  return false;
64
69
  }
65
70
  };
@@ -75,8 +80,8 @@ var checkThatNpmCanReadCwd = () => {
75
80
  return true;
76
81
  }
77
82
  const lines = childOutput.split("\n");
78
- const prefix = " cwd = ";
79
- const line = lines.find((l) => l.indexOf(prefix) === 0);
83
+ const prefix = "; cwd = ";
84
+ const line = lines.find((line2) => line2.startsWith(prefix));
80
85
  if (typeof line !== "string") {
81
86
  return true;
82
87
  }
@@ -115,12 +120,41 @@ This is probably caused by a misconfigured system terminal shell.`
115
120
  }
116
121
  return false;
117
122
  };
123
+ var checkYarnVersion = () => {
124
+ const minYarnPnp = "1.12.0";
125
+ const maxYarnPnp = "2.0.0";
126
+ let hasMinYarnPnp = false;
127
+ let hasMaxYarnPnp = false;
128
+ let yarnVersion = null;
129
+ try {
130
+ yarnVersion = (0, import_child_process.execSync)("yarnpkg --version").toString().trim();
131
+ if (import_semver.default.valid(yarnVersion)) {
132
+ hasMinYarnPnp = import_semver.default.gte(yarnVersion, minYarnPnp);
133
+ hasMaxYarnPnp = import_semver.default.lt(yarnVersion, maxYarnPnp);
134
+ } else {
135
+ const trimmedYarnVersionMatch = /^(.+?)[-+].+$/.exec(yarnVersion);
136
+ if (trimmedYarnVersionMatch) {
137
+ const trimmedYarnVersion = trimmedYarnVersionMatch.pop();
138
+ if (trimmedYarnVersion) {
139
+ hasMinYarnPnp = import_semver.default.gte(trimmedYarnVersion, minYarnPnp);
140
+ hasMaxYarnPnp = import_semver.default.lt(trimmedYarnVersion, maxYarnPnp);
141
+ }
142
+ }
143
+ }
144
+ } catch (err) {
145
+ }
146
+ return {
147
+ hasMinYarnPnp,
148
+ hasMaxYarnPnp,
149
+ yarnVersion
150
+ };
151
+ };
118
152
  var checkNpmVersion = () => {
119
153
  let hasMinNpm = false;
120
- let npmVersion = void 0;
154
+ let npmVersion = null;
121
155
  try {
122
156
  npmVersion = (0, import_child_process.execSync)("npm --version").toString().trim();
123
- hasMinNpm = import_semver.default.gte(npmVersion, "3.0.0");
157
+ hasMinNpm = import_semver.default.gte(npmVersion, "6.0.0");
124
158
  } catch (err) {
125
159
  }
126
160
  return {
package/dist/index.mjs CHANGED
@@ -28,11 +28,16 @@ import semver from "semver";
28
28
  import dns from "dns";
29
29
  import { URL as URL2 } from "url";
30
30
  var shouldUseYarn = () => {
31
- try {
32
- execSync("yarnpkg --version", { stdio: "ignore" });
33
- return true;
34
- } catch (e) {
35
- console.log(e);
31
+ const { hasMinYarnPnp, hasMaxYarnPnp } = checkYarnVersion();
32
+ if (!hasMinYarnPnp) {
33
+ return false;
34
+ }
35
+ if (!hasMaxYarnPnp) {
36
+ console.log(
37
+ chalk.yellow(
38
+ `You are using a pre-release version of Yarn which is not supported yet. To use Yarn, install v1.12.0 or higher.`
39
+ )
40
+ );
36
41
  return false;
37
42
  }
38
43
  };
@@ -48,8 +53,8 @@ var checkThatNpmCanReadCwd = () => {
48
53
  return true;
49
54
  }
50
55
  const lines = childOutput.split("\n");
51
- const prefix = " cwd = ";
52
- const line = lines.find((l) => l.indexOf(prefix) === 0);
56
+ const prefix = "; cwd = ";
57
+ const line = lines.find((line2) => line2.startsWith(prefix));
53
58
  if (typeof line !== "string") {
54
59
  return true;
55
60
  }
@@ -88,12 +93,41 @@ This is probably caused by a misconfigured system terminal shell.`
88
93
  }
89
94
  return false;
90
95
  };
96
+ var checkYarnVersion = () => {
97
+ const minYarnPnp = "1.12.0";
98
+ const maxYarnPnp = "2.0.0";
99
+ let hasMinYarnPnp = false;
100
+ let hasMaxYarnPnp = false;
101
+ let yarnVersion = null;
102
+ try {
103
+ yarnVersion = execSync("yarnpkg --version").toString().trim();
104
+ if (semver.valid(yarnVersion)) {
105
+ hasMinYarnPnp = semver.gte(yarnVersion, minYarnPnp);
106
+ hasMaxYarnPnp = semver.lt(yarnVersion, maxYarnPnp);
107
+ } else {
108
+ const trimmedYarnVersionMatch = /^(.+?)[-+].+$/.exec(yarnVersion);
109
+ if (trimmedYarnVersionMatch) {
110
+ const trimmedYarnVersion = trimmedYarnVersionMatch.pop();
111
+ if (trimmedYarnVersion) {
112
+ hasMinYarnPnp = semver.gte(trimmedYarnVersion, minYarnPnp);
113
+ hasMaxYarnPnp = semver.lt(trimmedYarnVersion, maxYarnPnp);
114
+ }
115
+ }
116
+ }
117
+ } catch (err) {
118
+ }
119
+ return {
120
+ hasMinYarnPnp,
121
+ hasMaxYarnPnp,
122
+ yarnVersion
123
+ };
124
+ };
91
125
  var checkNpmVersion = () => {
92
126
  let hasMinNpm = false;
93
- let npmVersion = void 0;
127
+ let npmVersion = null;
94
128
  try {
95
129
  npmVersion = execSync("npm --version").toString().trim();
96
- hasMinNpm = semver.gte(npmVersion, "3.0.0");
130
+ hasMinNpm = semver.gte(npmVersion, "6.0.0");
97
131
  } catch (err) {
98
132
  }
99
133
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@create-node-app/core",
3
- "version": "0.0.0",
3
+ "version": "0.1.0",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",