0.3.0 • Published 2 months ago

private-registry-mock v0.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

private-registry-mock

Simple mocked server and package of an npm private registry. Inspired by mock-private-registry.

Install

npm install --save-dev private-registry-mock
yarn add --dev private-registry-mock

Usage

This package exports a function that starts a server and exposes an endpoint for the given package name, returning a JSON object with a mock of the package's metadata from the npm registry.

The default route is shown below:

import mockPrivateRegistry from "private-registry-mock";
import ky from "ky";

const server = await mockPrivateRegistry();
const response = await ky.get("http://localhost:63142/@mockscope%2Ffoobar", {
  headers: { authorization: "Bearer SecretToken" }
}).json();

console.log(response);
//=> { name: "@mockscope/foobar", ... }

await server.close();

Also exposes a health-check endpoint at / for testing connectivity:

import mockPrivateRegistry from "private-registry-mock";
import ky from "ky";

const server = await mockPrivateRegistry();
const response = await ky.get("http://localhost:63142/").json();

console.log(response);
//=> { message: "Connected!" }

await server.close();

API

mockPrivateRegistry(packageName)

mockPrivateRegistry(options?)

Returns a Promise<object> with the computed server options and:

packageName

Type: string\ Default: "@mockscope/foobar"

The name of the mocked package. Determines the route of the server.

Names are soft encoded, preserving @s but escaping all other special characters via encodeURIComponent (i.e. / becomes %2F).

options

Type: object

Options for the server to use while mocking.

port

Type: number\ Default: 63142 | 63143 | 63144, in order of availability.

The port to listen on. If not provided, attempts to use a set of default ports, and falls back to a random port if unavailable.

hostname

Type: string\ Default: "localhost"

The hostname to listen on.

token

Type: object\ Default: { type: "bearer", value: "SecretToken" }

The authentication type and token to use.

type

Type: "bearer" | "basic"\ Default: "bearer"

The type of authentication to use.

value

Type: string\ Default: "SecretToken"

The token to use for authentication.

package

Type: object\ Default: { name: "@mockscope/foobar", version: "1.0.0" }

Information about the mocked package. Determines the route of the server.

Names are soft encoded, preserving @s but escaping all other special characters via encodeURIComponent (i.e. / becomes %2F).

name

Type: string\ Default: "@mockscope/foobar"

The name of the mocked package. Determines the route of the server.

version

Type: string\ Default: "1.0.0"

The version of the mocked package.

TerminationResponse

Internally, lil-http-terminator is used to gracefully close the server.

code

Type: "TIMED_OUT" | "SERVER_ERROR" | "TERMINATED" | "INTERNAL_ERROR"

Termination state.

success

Type: boolean

Whether or not the server was successfully closed.

message

Type: string

Termination or error message.

error

Type: Error | undefined

If termination fails, the error that caused it.

Related

  • mock-private-registry - Mock of a private npm registry, useful for testing npm-related stuff.
  • @probablyup/mock-private-registry - Mock of a private npm registry, useful for testing npm-related stuff. This is a fork of "mock-private-registry" with support for mocking multiple packages.
  • package-json - Get metadata of a package from the npm registry.