Skip to content

Commit d793dae

Browse files
authored
Fix/init local cli version resolution (#13)
* fix(npm): ignore parent package version during local CLI bootstrap * chore: release v1.2.1
1 parent 2af6518 commit d793dae

3 files changed

Lines changed: 39 additions & 20 deletions

File tree

‎npm/install.js‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function resolveReleaseAsset(platform = process.platform, arch = process.arch) {
3333
}
3434

3535
function resolveVersion() {
36-
return process.env.npm_package_version || packageJSON.version;
36+
return packageJSON.version;
3737
}
3838

3939
function buildReleaseURL(binaryName, version = resolveVersion()) {

‎npm/install.test.js‎

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,51 @@ const test = require("node:test");
22
const assert = require("node:assert/strict");
33

44
const {
5-
buildReleaseURL,
6-
repositorySlug,
7-
resolveReleaseAsset,
5+
buildReleaseURL,
6+
repositorySlug,
7+
resolveReleaseAsset,
8+
resolveVersion,
89
} = require("./install.js");
910

1011
test("resolveReleaseAsset maps supported targets to release asset names", () => {
11-
assert.equal(resolveReleaseAsset("darwin", "arm64"), "wfkit-darwin-arm64");
12-
assert.equal(resolveReleaseAsset("darwin", "x64"), "wfkit-darwin-amd64");
13-
assert.equal(resolveReleaseAsset("linux", "arm64"), "wfkit-linux-arm64");
14-
assert.equal(resolveReleaseAsset("linux", "x64"), "wfkit-linux-amd64");
15-
assert.equal(resolveReleaseAsset("win32", "arm64"), "wfkit-windows-arm64.exe");
16-
assert.equal(resolveReleaseAsset("win32", "x64"), "wfkit-windows-amd64.exe");
12+
assert.equal(resolveReleaseAsset("darwin", "arm64"), "wfkit-darwin-arm64");
13+
assert.equal(resolveReleaseAsset("darwin", "x64"), "wfkit-darwin-amd64");
14+
assert.equal(resolveReleaseAsset("linux", "arm64"), "wfkit-linux-arm64");
15+
assert.equal(resolveReleaseAsset("linux", "x64"), "wfkit-linux-amd64");
16+
assert.equal(
17+
resolveReleaseAsset("win32", "arm64"),
18+
"wfkit-windows-arm64.exe",
19+
);
20+
assert.equal(resolveReleaseAsset("win32", "x64"), "wfkit-windows-amd64.exe");
1721
});
1822

1923
test("resolveReleaseAsset rejects unsupported targets with a clear error", () => {
20-
assert.throws(
21-
() => resolveReleaseAsset("linux", "ia32"),
22-
/Unsupported platform linux\/ia32/
23-
);
24+
assert.throws(
25+
() => resolveReleaseAsset("linux", "ia32"),
26+
/Unsupported platform linux\/ia32/,
27+
);
2428
});
2529

2630
test("buildReleaseURL uses the organization repository and versioned assets", () => {
27-
const url = buildReleaseURL("wfkit-linux-arm64", "1.2.3");
31+
const url = buildReleaseURL("wfkit-linux-arm64", "1.2.3");
2832

29-
assert.equal(
30-
url,
31-
`https://github.com/${repositorySlug}/releases/download/v1.2.3/wfkit-linux-arm64`
32-
);
33+
assert.equal(
34+
url,
35+
`https://github.com/${repositorySlug}/releases/download/v1.2.3/wfkit-linux-arm64`,
36+
);
37+
});
38+
39+
test("resolveVersion ignores parent project npm_package_version values", () => {
40+
const previousValue = process.env.npm_package_version;
41+
process.env.npm_package_version = "0.0.0";
42+
43+
try {
44+
assert.equal(resolveVersion(), require("./package.json").version);
45+
} finally {
46+
if (previousValue === undefined) {
47+
delete process.env.npm_package_version;
48+
} else {
49+
process.env.npm_package_version = previousValue;
50+
}
51+
}
3352
});

‎npm/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@flowmetelev/wfkit",
3-
"version": "1.2.0",
3+
"version": "1.2.1",
44
"description": "A powerful CLI utility for securely publishing Webflow projects with live development support.",
55
"main": "install.js",
66
"bin": {

0 commit comments

Comments
 (0)