Skip to content

Commit 3f337f1

Browse files
authored
🤖 Merge PR DefinitelyTyped#75043 feat(libnpmpublish): add support for stageId by @43081j
1 parent 4d11828 commit 3f337f1

3 files changed

Lines changed: 32 additions & 5 deletions

File tree

‎types/libnpmpublish/index.d.ts‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ export interface PublishOptions extends fetch.Options {
3535
* @default ["sha512"]
3636
*/
3737
algorithms?: string[];
38+
/**
39+
* If true, the package will be published to the registry in a staged state, meaning it will not be publicly visible
40+
* until someone manually approves it.
41+
*/
42+
stage?: boolean;
3843
}
3944

4045
/**
@@ -53,7 +58,16 @@ export interface PublishOptions extends fetch.Options {
5358
* await libpub.publish(manifest, tarData, { npmVersion: 'my-pub-script@1.0.2', token: 'my-auth-token-here' }, opts)
5459
* // Package has been published to the npm registry.
5560
*/
56-
export function publish(manifest: PackageJson, tarballData: Buffer, options?: PublishOptions): Promise<Response>;
61+
export function publish(
62+
manifest: PackageJson,
63+
tarballData: Buffer,
64+
options: PublishOptions & { stage: true },
65+
): Promise<Response & { stageId: string }>;
66+
export function publish(
67+
manifest: PackageJson,
68+
tarballData: Buffer,
69+
options?: PublishOptions,
70+
): Promise<Response & { stageId?: string }>;
5771

5872
/**
5973
* Unpublishes spec from the appropriate registry. The registry in question may have its own limitations on unpublishing.

‎types/libnpmpublish/libnpmpublish-tests.ts‎

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ async function test() {
3131
await libnpmpublish.publish();
3232
// @ts-expect-error
3333
await libnpmpublish.publish(manifest);
34-
await libnpmpublish.publish(manifest, tarballData); // $ExpectType Response
35-
await libnpmpublish.publish(manifest, tarballData, options); // $ExpectType Response
34+
await libnpmpublish.publish(manifest, tarballData); // $ExpectType Response & { stageId?: string | undefined }
35+
await libnpmpublish.publish(manifest, tarballData, options); // $ExpectType Response & { stageId?: string | undefined }
3636

3737
const publishOptions = {
3838
...options,
@@ -43,10 +43,23 @@ async function test() {
4343
npmVersion: "1.0.0",
4444
algorithms: ["sha512"],
4545
};
46-
await libnpmpublish.publish(manifest, tarballData, publishOptions); // $ExpectType Response
46+
await libnpmpublish.publish(manifest, tarballData, publishOptions); // $ExpectType Response & { stageId?: string | undefined }
4747

4848
// @ts-expect-error
4949
await libnpmpublish.unpublish();
5050
await libnpmpublish.unpublish("npmpackage"); // $ExpectType boolean
5151
await libnpmpublish.unpublish("npmpackage", options); // $ExpectType boolean
5252
}
53+
54+
async function stagingTest() {
55+
const options = {
56+
stage: true,
57+
} as const;
58+
const manifest: PackageJson = {
59+
name: "",
60+
version: "",
61+
};
62+
const tarballData: Buffer = Buffer.from("thisisafillerforthebuffertowork");
63+
64+
await libnpmpublish.publish(manifest, tarballData, options); // $ExpectType Response & { stageId: string }
65+
}

‎types/libnpmpublish/package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"private": true,
33
"name": "@types/libnpmpublish",
4-
"version": "9.0.9999",
4+
"version": "11.2.9999",
55
"projects": [
66
"https://npmjs.com/package/libnpmpublish"
77
],

0 commit comments

Comments
 (0)