Skip to content

Commit 827fcb3

Browse files
committed
fix: include version in npm release URL
1 parent 1fa4eb2 commit 827fcb3

File tree

4 files changed

+56
-22
lines changed

4 files changed

+56
-22
lines changed

lib/get-release-info.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ const normalizeUrl = require('normalize-url');
44
module.exports = async (
55
npmrc,
66
{name, publishConfig: {tag} = {}},
7-
{cwd, env: {DEFAULT_NPM_REGISTRY = 'https://registry.npmjs.org/', ...env}},
7+
{cwd, env: {DEFAULT_NPM_REGISTRY = 'https://registry.npmjs.org/', ...env}, nextRelease: {version}},
88
registry
99
) => {
1010
const distTag =
@@ -14,7 +14,7 @@ module.exports = async (
1414
name: `npm package (@${distTag} dist-tag)`,
1515
url:
1616
normalizeUrl(registry) === normalizeUrl(DEFAULT_NPM_REGISTRY)
17-
? `https://www.npmjs.com/package/${name}`
17+
? `https://www.npmjs.com/package/${name}/v/${version}`
1818
: undefined,
1919
};
2020
};

lib/publish.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ module.exports = async (npmrc, {npmPublish, pkgRoot}, pkg, context) => {
2323
result.stderr.pipe(stderr, {end: false});
2424
await result;
2525

26-
logger.log(`Published ${pkg.name}@${pkg.version} on ${registry}`);
26+
logger.log(`Published ${pkg.name}@${version} on ${registry}`);
2727
return getReleaseInfo(npmrc, pkg, context, registry);
2828
}
2929

test/get-release-info.test.js

Lines changed: 52 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,30 +16,54 @@ test('Default registry and tag', async t => {
1616
const cwd = tempy.directory();
1717
const npmrc = tempy.file({name: '.npmrc'});
1818

19-
t.deepEqual(await getReleaseInfo(npmrc, {name: 'module'}, {cwd, env: {}}, 'https://registry.npmjs.org/'), {
20-
name: 'npm package (@latest dist-tag)',
21-
url: 'https://www.npmjs.com/package/module',
22-
});
19+
t.deepEqual(
20+
await getReleaseInfo(
21+
npmrc,
22+
{name: 'module'},
23+
{cwd, env: {}, nextRelease: {version: '1.0.0'}},
24+
'https://registry.npmjs.org/'
25+
),
26+
{
27+
name: 'npm package (@latest dist-tag)',
28+
url: 'https://www.npmjs.com/package/module/v/1.0.0',
29+
}
30+
);
2331
});
2432

2533
test('Default registry, tag and scoped module', async t => {
2634
const cwd = tempy.directory();
2735
const npmrc = tempy.file({name: '.npmrc'});
2836

29-
t.deepEqual(await getReleaseInfo(npmrc, {name: '@scope/module'}, {cwd, env: {}}, 'https://registry.npmjs.org/'), {
30-
name: 'npm package (@latest dist-tag)',
31-
url: 'https://www.npmjs.com/package/@scope/module',
32-
});
37+
t.deepEqual(
38+
await getReleaseInfo(
39+
npmrc,
40+
{name: '@scope/module'},
41+
{cwd, env: {}, nextRelease: {version: '1.0.0'}},
42+
'https://registry.npmjs.org/'
43+
),
44+
{
45+
name: 'npm package (@latest dist-tag)',
46+
url: 'https://www.npmjs.com/package/@scope/module/v/1.0.0',
47+
}
48+
);
3349
});
3450

3551
test('Custom registry, tag and scoped module', async t => {
3652
const cwd = tempy.directory();
3753
const npmrc = tempy.file({name: '.npmrc'});
3854

39-
t.deepEqual(await getReleaseInfo(npmrc, {name: '@scope/module'}, {cwd, env: {}}, 'https://custom.registry.org/'), {
40-
name: 'npm package (@latest dist-tag)',
41-
url: undefined,
42-
});
55+
t.deepEqual(
56+
await getReleaseInfo(
57+
npmrc,
58+
{name: '@scope/module'},
59+
{cwd, env: {}, nextRelease: {version: '1.0.0'}},
60+
'https://custom.registry.org/'
61+
),
62+
{
63+
name: 'npm package (@latest dist-tag)',
64+
url: undefined,
65+
}
66+
);
4367
});
4468

4569
test('Default registry and tag from .npmrc', async t => {
@@ -48,10 +72,15 @@ test('Default registry and tag from .npmrc', async t => {
4872
await writeFile(npmrc, 'tag=npmrc');
4973

5074
t.deepEqual(
51-
await getReleaseInfo(npmrc, {name: 'module', publishConfig: {}}, {cwd, env: {}}, 'https://registry.npmjs.org/'),
75+
await getReleaseInfo(
76+
npmrc,
77+
{name: 'module', publishConfig: {}},
78+
{cwd, env: {}, nextRelease: {version: '1.0.0'}},
79+
'https://registry.npmjs.org/'
80+
),
5281
{
5382
name: 'npm package (@npmrc dist-tag)',
54-
url: 'https://www.npmjs.com/package/module',
83+
url: 'https://www.npmjs.com/package/module/v/1.0.0',
5584
}
5685
);
5786
});
@@ -66,10 +95,10 @@ test('Default registry and tag from package.json', async t => {
6695
await getReleaseInfo(
6796
npmrc,
6897
{name: 'module', publishConfig: {tag: 'pkg'}},
69-
{cwd, env: {}},
98+
{cwd, env: {}, nextRelease: {version: '1.0.0'}},
7099
'https://registry.npmjs.org/'
71100
),
72-
{name: 'npm package (@pkg dist-tag)', url: 'https://www.npmjs.com/package/module'}
101+
{name: 'npm package (@pkg dist-tag)', url: 'https://www.npmjs.com/package/module/v/1.0.0'}
73102
);
74103
});
75104

@@ -80,10 +109,15 @@ test('Default tag', async t => {
80109
await writeFile(npmrc, 'tag=');
81110

82111
t.deepEqual(
83-
await getReleaseInfo(npmrc, {name: 'module', publishConfig: {}}, {cwd, env: {}}, 'https://registry.npmjs.org/'),
112+
await getReleaseInfo(
113+
npmrc,
114+
{name: 'module', publishConfig: {}},
115+
{cwd, env: {}, nextRelease: {version: '1.0.0'}},
116+
'https://registry.npmjs.org/'
117+
),
84118
{
85119
name: 'npm package (@latest dist-tag)',
86-
url: 'https://www.npmjs.com/package/module',
120+
url: 'https://www.npmjs.com/package/module/v/1.0.0',
87121
}
88122
);
89123
});

test/integration.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ test('Publish the package on a dist-tag', async t => {
261261
}
262262
);
263263

264-
t.deepEqual(result, {name: 'npm package (@next dist-tag)', url: 'https://www.npmjs.com/package/publish-tag'});
264+
t.deepEqual(result, {name: 'npm package (@next dist-tag)', url: 'https://www.npmjs.com/package/publish-tag/v/1.0.0'});
265265
t.is((await readJson(path.resolve(cwd, 'package.json'))).version, '1.0.0');
266266
t.false(await pathExists(path.resolve(cwd, `${pkg.name}-1.0.0.tgz`)));
267267
t.is((await execa('npm', ['view', pkg.name, 'version'], {cwd, env: testEnv})).stdout, '1.0.0');

0 commit comments

Comments
 (0)