@create-node-app/core 0.0.0 → 0.1.1
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.d.ts +2 -1
- package/dist/index.js +64 -9
- package/dist/index.mjs +63 -9
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ type Addon = {
|
|
|
3
3
|
ignorePackage?: boolean;
|
|
4
4
|
};
|
|
5
5
|
|
|
6
|
+
declare const checkForLatestVersion: (packageName: string) => Promise<string | null>;
|
|
6
7
|
declare const printEnvInfo: () => Promise<never>;
|
|
7
8
|
type CnaOptions = {
|
|
8
9
|
projectName: string;
|
|
@@ -36,4 +37,4 @@ type CnaOptionsTransform = (options: CnaOptions) => Promise<CnaOptions>;
|
|
|
36
37
|
*/
|
|
37
38
|
declare const createNodeApp: (programName: string, options: CnaOptions, transformOptions: CnaOptionsTransform) => Promise<void>;
|
|
38
39
|
|
|
39
|
-
export { CnaOptions, CnaOptionsTransform, createNodeApp, printEnvInfo };
|
|
40
|
+
export { CnaOptions, CnaOptionsTransform, checkForLatestVersion, createNodeApp, printEnvInfo };
|
package/dist/index.js
CHANGED
|
@@ -30,12 +30,14 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
30
30
|
// index.ts
|
|
31
31
|
var create_node_app_core_exports = {};
|
|
32
32
|
__export(create_node_app_core_exports, {
|
|
33
|
+
checkForLatestVersion: () => checkForLatestVersion,
|
|
33
34
|
createNodeApp: () => createNodeApp,
|
|
34
35
|
printEnvInfo: () => printEnvInfo
|
|
35
36
|
});
|
|
36
37
|
module.exports = __toCommonJS(create_node_app_core_exports);
|
|
37
38
|
var import_chalk4 = __toESM(require("chalk"));
|
|
38
39
|
var import_envinfo = __toESM(require("envinfo"));
|
|
40
|
+
var import_child_process4 = require("child_process");
|
|
39
41
|
|
|
40
42
|
// installer.ts
|
|
41
43
|
var import_underscore2 = __toESM(require("underscore"));
|
|
@@ -55,11 +57,16 @@ var import_semver = __toESM(require("semver"));
|
|
|
55
57
|
var import_dns = __toESM(require("dns"));
|
|
56
58
|
var import_url = require("url");
|
|
57
59
|
var shouldUseYarn = () => {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
return
|
|
61
|
-
}
|
|
62
|
-
|
|
60
|
+
const { hasMinYarnPnp, hasMaxYarnPnp } = checkYarnVersion();
|
|
61
|
+
if (!hasMinYarnPnp) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
if (!hasMaxYarnPnp) {
|
|
65
|
+
console.log(
|
|
66
|
+
import_chalk.default.yellow(
|
|
67
|
+
`You are using a pre-release version of Yarn which is not supported yet. To use Yarn, install v1.12.0 or higher.`
|
|
68
|
+
)
|
|
69
|
+
);
|
|
63
70
|
return false;
|
|
64
71
|
}
|
|
65
72
|
};
|
|
@@ -75,8 +82,8 @@ var checkThatNpmCanReadCwd = () => {
|
|
|
75
82
|
return true;
|
|
76
83
|
}
|
|
77
84
|
const lines = childOutput.split("\n");
|
|
78
|
-
const prefix = " cwd = ";
|
|
79
|
-
const line = lines.find((
|
|
85
|
+
const prefix = "; cwd = ";
|
|
86
|
+
const line = lines.find((line2) => line2.startsWith(prefix));
|
|
80
87
|
if (typeof line !== "string") {
|
|
81
88
|
return true;
|
|
82
89
|
}
|
|
@@ -115,12 +122,41 @@ This is probably caused by a misconfigured system terminal shell.`
|
|
|
115
122
|
}
|
|
116
123
|
return false;
|
|
117
124
|
};
|
|
125
|
+
var checkYarnVersion = () => {
|
|
126
|
+
const minYarnPnp = "1.12.0";
|
|
127
|
+
const maxYarnPnp = "2.0.0";
|
|
128
|
+
let hasMinYarnPnp = false;
|
|
129
|
+
let hasMaxYarnPnp = false;
|
|
130
|
+
let yarnVersion = null;
|
|
131
|
+
try {
|
|
132
|
+
yarnVersion = (0, import_child_process.execSync)("yarnpkg --version").toString().trim();
|
|
133
|
+
if (import_semver.default.valid(yarnVersion)) {
|
|
134
|
+
hasMinYarnPnp = import_semver.default.gte(yarnVersion, minYarnPnp);
|
|
135
|
+
hasMaxYarnPnp = import_semver.default.lt(yarnVersion, maxYarnPnp);
|
|
136
|
+
} else {
|
|
137
|
+
const trimmedYarnVersionMatch = /^(.+?)[-+].+$/.exec(yarnVersion);
|
|
138
|
+
if (trimmedYarnVersionMatch) {
|
|
139
|
+
const trimmedYarnVersion = trimmedYarnVersionMatch.pop();
|
|
140
|
+
if (trimmedYarnVersion) {
|
|
141
|
+
hasMinYarnPnp = import_semver.default.gte(trimmedYarnVersion, minYarnPnp);
|
|
142
|
+
hasMaxYarnPnp = import_semver.default.lt(trimmedYarnVersion, maxYarnPnp);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
} catch (err) {
|
|
147
|
+
}
|
|
148
|
+
return {
|
|
149
|
+
hasMinYarnPnp,
|
|
150
|
+
hasMaxYarnPnp,
|
|
151
|
+
yarnVersion
|
|
152
|
+
};
|
|
153
|
+
};
|
|
118
154
|
var checkNpmVersion = () => {
|
|
119
155
|
let hasMinNpm = false;
|
|
120
|
-
let npmVersion =
|
|
156
|
+
let npmVersion = null;
|
|
121
157
|
try {
|
|
122
158
|
npmVersion = (0, import_child_process.execSync)("npm --version").toString().trim();
|
|
123
|
-
hasMinNpm = import_semver.default.gte(npmVersion, "
|
|
159
|
+
hasMinNpm = import_semver.default.gte(npmVersion, "6.0.0");
|
|
124
160
|
} catch (err) {
|
|
125
161
|
}
|
|
126
162
|
return {
|
|
@@ -819,6 +855,24 @@ Please update to npm 3 or higher for a better, fully supported experience.
|
|
|
819
855
|
};
|
|
820
856
|
|
|
821
857
|
// index.ts
|
|
858
|
+
var checkForLatestVersion = async (packageName) => {
|
|
859
|
+
try {
|
|
860
|
+
const response = await fetch(
|
|
861
|
+
`https://registry.npmjs.org/-/package/${packageName}/dist-tags`
|
|
862
|
+
);
|
|
863
|
+
if (!response.ok) {
|
|
864
|
+
throw new Error("Registry request failed");
|
|
865
|
+
}
|
|
866
|
+
const { latest } = await response.json();
|
|
867
|
+
return latest;
|
|
868
|
+
} catch (error) {
|
|
869
|
+
try {
|
|
870
|
+
return (0, import_child_process4.execSync)(`npm view ${packageName} version`).toString().trim();
|
|
871
|
+
} catch (error2) {
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
return null;
|
|
875
|
+
};
|
|
822
876
|
var printEnvInfo = async () => {
|
|
823
877
|
console.log(import_chalk4.default.bold("\nEnvironment Info:"));
|
|
824
878
|
const info = await import_envinfo.default.run(
|
|
@@ -862,6 +916,7 @@ var createNodeApp = async (programName, options, transformOptions) => {
|
|
|
862
916
|
};
|
|
863
917
|
// Annotate the CommonJS export names for ESM import in node:
|
|
864
918
|
0 && (module.exports = {
|
|
919
|
+
checkForLatestVersion,
|
|
865
920
|
createNodeApp,
|
|
866
921
|
printEnvInfo
|
|
867
922
|
});
|
package/dist/index.mjs
CHANGED
|
@@ -9,6 +9,7 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
|
|
|
9
9
|
// index.ts
|
|
10
10
|
import chalk4 from "chalk";
|
|
11
11
|
import envinfo from "envinfo";
|
|
12
|
+
import { execSync as execSync3 } from "child_process";
|
|
12
13
|
|
|
13
14
|
// installer.ts
|
|
14
15
|
import _2 from "underscore";
|
|
@@ -28,11 +29,16 @@ import semver from "semver";
|
|
|
28
29
|
import dns from "dns";
|
|
29
30
|
import { URL as URL2 } from "url";
|
|
30
31
|
var shouldUseYarn = () => {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
return
|
|
34
|
-
}
|
|
35
|
-
|
|
32
|
+
const { hasMinYarnPnp, hasMaxYarnPnp } = checkYarnVersion();
|
|
33
|
+
if (!hasMinYarnPnp) {
|
|
34
|
+
return false;
|
|
35
|
+
}
|
|
36
|
+
if (!hasMaxYarnPnp) {
|
|
37
|
+
console.log(
|
|
38
|
+
chalk.yellow(
|
|
39
|
+
`You are using a pre-release version of Yarn which is not supported yet. To use Yarn, install v1.12.0 or higher.`
|
|
40
|
+
)
|
|
41
|
+
);
|
|
36
42
|
return false;
|
|
37
43
|
}
|
|
38
44
|
};
|
|
@@ -48,8 +54,8 @@ var checkThatNpmCanReadCwd = () => {
|
|
|
48
54
|
return true;
|
|
49
55
|
}
|
|
50
56
|
const lines = childOutput.split("\n");
|
|
51
|
-
const prefix = " cwd = ";
|
|
52
|
-
const line = lines.find((
|
|
57
|
+
const prefix = "; cwd = ";
|
|
58
|
+
const line = lines.find((line2) => line2.startsWith(prefix));
|
|
53
59
|
if (typeof line !== "string") {
|
|
54
60
|
return true;
|
|
55
61
|
}
|
|
@@ -88,12 +94,41 @@ This is probably caused by a misconfigured system terminal shell.`
|
|
|
88
94
|
}
|
|
89
95
|
return false;
|
|
90
96
|
};
|
|
97
|
+
var checkYarnVersion = () => {
|
|
98
|
+
const minYarnPnp = "1.12.0";
|
|
99
|
+
const maxYarnPnp = "2.0.0";
|
|
100
|
+
let hasMinYarnPnp = false;
|
|
101
|
+
let hasMaxYarnPnp = false;
|
|
102
|
+
let yarnVersion = null;
|
|
103
|
+
try {
|
|
104
|
+
yarnVersion = execSync("yarnpkg --version").toString().trim();
|
|
105
|
+
if (semver.valid(yarnVersion)) {
|
|
106
|
+
hasMinYarnPnp = semver.gte(yarnVersion, minYarnPnp);
|
|
107
|
+
hasMaxYarnPnp = semver.lt(yarnVersion, maxYarnPnp);
|
|
108
|
+
} else {
|
|
109
|
+
const trimmedYarnVersionMatch = /^(.+?)[-+].+$/.exec(yarnVersion);
|
|
110
|
+
if (trimmedYarnVersionMatch) {
|
|
111
|
+
const trimmedYarnVersion = trimmedYarnVersionMatch.pop();
|
|
112
|
+
if (trimmedYarnVersion) {
|
|
113
|
+
hasMinYarnPnp = semver.gte(trimmedYarnVersion, minYarnPnp);
|
|
114
|
+
hasMaxYarnPnp = semver.lt(trimmedYarnVersion, maxYarnPnp);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
} catch (err) {
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
hasMinYarnPnp,
|
|
122
|
+
hasMaxYarnPnp,
|
|
123
|
+
yarnVersion
|
|
124
|
+
};
|
|
125
|
+
};
|
|
91
126
|
var checkNpmVersion = () => {
|
|
92
127
|
let hasMinNpm = false;
|
|
93
|
-
let npmVersion =
|
|
128
|
+
let npmVersion = null;
|
|
94
129
|
try {
|
|
95
130
|
npmVersion = execSync("npm --version").toString().trim();
|
|
96
|
-
hasMinNpm = semver.gte(npmVersion, "
|
|
131
|
+
hasMinNpm = semver.gte(npmVersion, "6.0.0");
|
|
97
132
|
} catch (err) {
|
|
98
133
|
}
|
|
99
134
|
return {
|
|
@@ -792,6 +827,24 @@ Please update to npm 3 or higher for a better, fully supported experience.
|
|
|
792
827
|
};
|
|
793
828
|
|
|
794
829
|
// index.ts
|
|
830
|
+
var checkForLatestVersion = async (packageName) => {
|
|
831
|
+
try {
|
|
832
|
+
const response = await fetch(
|
|
833
|
+
`https://registry.npmjs.org/-/package/${packageName}/dist-tags`
|
|
834
|
+
);
|
|
835
|
+
if (!response.ok) {
|
|
836
|
+
throw new Error("Registry request failed");
|
|
837
|
+
}
|
|
838
|
+
const { latest } = await response.json();
|
|
839
|
+
return latest;
|
|
840
|
+
} catch (error) {
|
|
841
|
+
try {
|
|
842
|
+
return execSync3(`npm view ${packageName} version`).toString().trim();
|
|
843
|
+
} catch (error2) {
|
|
844
|
+
}
|
|
845
|
+
}
|
|
846
|
+
return null;
|
|
847
|
+
};
|
|
795
848
|
var printEnvInfo = async () => {
|
|
796
849
|
console.log(chalk4.bold("\nEnvironment Info:"));
|
|
797
850
|
const info = await envinfo.run(
|
|
@@ -834,6 +887,7 @@ var createNodeApp = async (programName, options, transformOptions) => {
|
|
|
834
887
|
});
|
|
835
888
|
};
|
|
836
889
|
export {
|
|
890
|
+
checkForLatestVersion,
|
|
837
891
|
createNodeApp,
|
|
838
892
|
printEnvInfo
|
|
839
893
|
};
|