private-registry-mock
v0.3.0
Published
Simple mocked server and package of an npm private registry.
Downloads
52
Maintainers
Readme
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:
close()
: - Gracefully closes the server. Returns aPromise<TerminationResponse>
.
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.