0
Fork 0
mirror of https://github.com/verdaccio/verdaccio.git synced 2025-03-11 02:15:57 -05:00

fix: get-port missing dependency (#3677)

This commit is contained in:
Juan Picado 2023-03-12 08:49:51 +01:00 committed by GitHub
parent 7ef599cc4a
commit c383eb68ce
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 115 additions and 454 deletions

View file

@ -0,0 +1,7 @@
---
'@verdaccio/test-cli-commons': patch
'@verdaccio/e2e-ui': patch
'verdaccio': patch
---
fix: get-port missing dep

View file

@ -12,6 +12,7 @@
"fs-extra": "10.1.0",
"got": "11.8.6",
"js-yaml": "4.1.0",
"get-port": "5.1.1",
"lodash": "4.17.21",
"verdaccio": "workspace:6.0.0-6-next.65"
},

View file

@ -1,5 +1,6 @@
/* eslint-disable prefer-promise-reject-errors */
import buildDebug from 'debug';
import getPort from 'get-port';
import { merge } from 'lodash';
import { Registry } from 'verdaccio';
@ -35,6 +36,7 @@ export async function initialSetup(customConfig?: ConfigYaml): Promise<Setup> {
const { configPath, tempFolder } = await getConfigPath(config);
debug(`configPath %o`, configPath);
debug(`tempFolder %o`, tempFolder);
const registry = new Registry(configPath, { createUser: true });
const port = await getPort();
const registry = new Registry(configPath, { createUser: true, port });
return { registry, tempFolder };
}

View file

@ -1,4 +1,5 @@
import { defineConfig } from 'cypress';
import getPort from 'get-port';
import { join } from 'path';
import { Registry, ServerQuery } from 'verdaccio';
@ -17,9 +18,11 @@ export default defineConfig({
...configProtected,
storage: registry1storage,
});
const port = await getPort();
registry1 = new Registry(protectedRegistry.configPath, {
createUser: true,
credentials: { user: 'test', password: 'test' },
port,
});
await registry1.init();
});

View file

@ -8,7 +8,8 @@
"@verdaccio/config": "workspace:6.0.0-6-next.65",
"@verdaccio/test-helper": "workspace:2.0.0-6-next.8",
"debug": "4.3.4",
"cypress": "11.2.0"
"cypress": "11.2.0",
"get-port": "5.1.1"
},
"scripts": {
"cypress:open": "cypress open",

View file

@ -1,7 +1,6 @@
import { ChildProcess, fork } from 'child_process';
import buildDebug from 'debug';
import fs from 'fs';
import getPort from 'get-port';
import path from 'path';
import { fromJStoYAML } from '@verdaccio/config';
@ -103,78 +102,79 @@ export class Registry {
verdaccioPath: string = path.join(__dirname, '../../bin/verdaccio')
): Promise<ChildProcess> {
debug('_start %o', verdaccioPath);
return getPort().then((port: number) => {
this.port = port;
debug('port %o', port);
return new Promise((resolve, reject) => {
let childOptions = {
silent: false,
};
debug('port %o', this.port);
return new Promise((resolve, reject) => {
let childOptions = {
silent: false,
};
if (this.debug) {
const debugPort = port + 5;
debug('debug port %o', debugPort);
childOptions = Object.assign({}, childOptions, {
execArgv: [`--inspect=${debugPort}`],
env: {
DEBUG: process.env.DEBUG,
VERDACCIO_SERVER: process.env.VERDACCIO_SERVER,
},
});
} else {
childOptions = Object.assign({}, childOptions, {
env: {
DEBUG: process.env.DEBUG,
VERDACCIO_SERVER: process.env.VERDACCIO_SERVER,
},
});
}
if (this.debug) {
const debugPort = this.port + 5;
debug('debug port %o', debugPort);
childOptions = Object.assign({}, childOptions, {
execArgv: [`--inspect=${debugPort}`],
env: {
DEBUG: process.env.DEBUG,
VERDACCIO_SERVER: process.env.VERDACCIO_SERVER,
},
});
} else {
childOptions = Object.assign({}, childOptions, {
env: {
DEBUG: process.env.DEBUG,
VERDACCIO_SERVER: process.env.VERDACCIO_SERVER,
},
});
}
const { configPath } = this;
debug('configPath %s', configPath);
debug('port %s', port);
this.childFork = fork(verdaccioPath, ['-c', configPath, '-l', String(port)], childOptions);
const { configPath } = this;
debug('configPath %s', configPath);
debug('port %s', this.port);
this.childFork = fork(
verdaccioPath,
['-c', configPath, '-l', String(this.port)],
childOptions
);
this.childFork.on('message', async (msg: any) => {
// verdaccio_started is a message that comes from verdaccio in debug mode that
// notify has been started
try {
if ('verdaccio_started' in msg) {
const server = new ServerQuery(`http://${this.domain}:` + port);
if (this.createUser) {
const user = await server.createUser(
this.credentials.user,
this.credentials.password
);
user.status(HTTP_STATUS.CREATED).body_ok(new RegExp(this.credentials.user));
// @ts-ignore
this.token = user?.response?.body.token;
this.authstr = buildAuthHeader(this.token as string);
}
return resolve(this.childFork);
this.childFork.on('message', async (msg: any) => {
// verdaccio_started is a message that comes from verdaccio in debug mode that
// notify has been started
try {
if ('verdaccio_started' in msg) {
const server = new ServerQuery(`http://${this.domain}:` + this.port);
if (this.createUser) {
const user = await server.createUser(
this.credentials.user,
this.credentials.password
);
user.status(HTTP_STATUS.CREATED).body_ok(new RegExp(this.credentials.user));
// @ts-ignore
this.token = user?.response?.body.token;
this.authstr = buildAuthHeader(this.token as string);
}
} catch (e: any) {
// eslint-disable-next-line no-console
console.error(e);
// eslint-disable-next-line prefer-promise-reject-errors
return reject([e, this]);
}
});
this.childFork.on('error', (err) => {
debug('error %s', err);
return resolve(this.childFork);
}
} catch (e: any) {
// eslint-disable-next-line no-console
console.error(e);
// eslint-disable-next-line prefer-promise-reject-errors
reject([err, this]);
});
this.childFork.on('disconnect', (err) => {
// eslint-disable-next-line prefer-promise-reject-errors
reject([err, this]);
});
this.childFork.on('exit', (err) => {
// eslint-disable-next-line prefer-promise-reject-errors
reject([err, this]);
});
return reject([e, this]);
}
});
this.childFork.on('error', (err) => {
debug('error %s', err);
// eslint-disable-next-line prefer-promise-reject-errors
reject([err, this]);
});
this.childFork.on('disconnect', (err) => {
// eslint-disable-next-line prefer-promise-reject-errors
reject([err, this]);
});
this.childFork.on('exit', (err) => {
// eslint-disable-next-line prefer-promise-reject-errors
reject([err, this]);
});
});
}

View file

@ -1,3 +1,5 @@
import getPort from 'get-port';
import { ConfigBuilder } from '@verdaccio/config';
import { API_MESSAGE, HTTP_STATUS, constants, fileUtils } from '@verdaccio/core';
@ -22,7 +24,8 @@ describe('basic test endpoints', () => {
.addLogger({ level: 'debug', type: 'stdout', format: 'pretty' })
.addUplink('upstream', { url: 'https://registry.verdaccio.org' });
const { configPath } = await Registry.fromConfigToPath(configuration.getConfig());
registry = new Registry(configPath);
const port = await getPort();
registry = new Registry(configPath, { port });
await registry.init();
});

View file

@ -1,3 +1,4 @@
import getPort from 'get-port';
import got from 'got';
import { ConfigBuilder } from '@verdaccio/config';
@ -24,7 +25,8 @@ describe('html', () => {
.addLogger({ level: 'debug', type: 'stdout', format: 'pretty' })
.addUplink('upstream', { url: 'https://registry.verdaccio.org' });
const { configPath } = await Registry.fromConfigToPath(configuration.getConfig());
registry = new Registry(configPath);
const port = await getPort();
registry = new Registry(configPath, { port });
await registry.init();
});

View file

@ -1,3 +1,5 @@
import getPort from 'get-port';
import { ConfigBuilder } from '@verdaccio/config';
import { API_MESSAGE, constants, fileUtils } from '@verdaccio/core';
@ -22,7 +24,8 @@ describe('race publishing packages', () => {
.addLogger({ level: 'warn', type: 'stdout', format: 'pretty' })
.addUplink('upstream', { url: 'https://registry.verdaccio.org' });
const { configPath } = await Registry.fromConfigToPath(configuration.getConfig());
registry = new Registry(configPath);
const port = await getPort();
registry = new Registry(configPath, { port });
await registry.init();
});

View file

@ -1,3 +1,5 @@
import getPort from 'get-port';
import { ConfigBuilder } from '@verdaccio/config';
import { HTTP_STATUS, constants, fileUtils } from '@verdaccio/core';
@ -43,7 +45,8 @@ describe('multiple proxy registries configuration', () => {
.addUplink('npmjs', { url: 'https://registry.npmjs.com' });
const confRegistry = await Registry.fromConfigToPath(configuration.getConfig());
registry = new Registry(confRegistry.configPath);
const port = await getPort({ port: 3001 });
registry = new Registry(confRegistry.configPath, { port });
await registry.init();
// server 3 configuration
@ -67,7 +70,8 @@ describe('multiple proxy registries configuration', () => {
.addLogger({ level: 'debug', type: 'stdout', format: 'pretty' })
.addUplink('npmjs', { url: 'https://registry.npmjs.com' });
const confRegistry3 = await Registry.fromConfigToPath(configuration3.getConfig());
registry3 = new Registry(confRegistry3.configPath);
const port3 = await getPort({ port: 3002 });
registry3 = new Registry(confRegistry3.configPath, { port: port3 });
await registry3.init();
// server 2 configuration
@ -107,7 +111,8 @@ describe('multiple proxy registries configuration', () => {
.addUplink('no-retry', { url: `http://no-retry.local`, max_fails: 0 })
.addUplink('timeout', { url: `http://timeout.local`, max_fails: 0, timeout: '1s' });
const confRegistry2 = await Registry.fromConfigToPath(configuration2.getConfig());
registry2 = new Registry(confRegistry2.configPath);
const port2 = await getPort({ port: 3004 });
registry2 = new Registry(confRegistry2.configPath, { port: port2 });
await registry2.init();
});

View file

@ -1,3 +1,5 @@
import getPort from 'get-port';
import { ConfigBuilder } from '@verdaccio/config';
import { constants, fileUtils } from '@verdaccio/core';
@ -25,7 +27,8 @@ describe('race publishing packages', () => {
.addLogger({ level: 'debug', type: 'stdout', format: 'pretty' })
.addUplink('upstream', { url: 'https://registry.verdaccio.org' });
const { configPath } = await Registry.fromConfigToPath(configuration.getConfig());
registry = new Registry(configPath);
const port = await getPort();
registry = new Registry(configPath, { port });
await registry.init();
});

View file

@ -1,3 +1,4 @@
import getPort from 'get-port';
import nock from 'nock';
import path from 'path';
@ -9,7 +10,8 @@ const configFile = path.join(__dirname, './config.yaml');
describe('server query', () => {
test('server run', async () => {
const registry = new Registry(configFile);
const port = await getPort({ port: 4001 });
const registry = new Registry(configFile, { port });
const vPath = path.join(__dirname, '../bin/verdaccio');
const d = await registry.init(vPath);
expect(d.pid).toBeDefined();
@ -20,7 +22,8 @@ describe('server query', () => {
});
test('server create user', async () => {
const registry = new Registry(configFile, { createUser: true });
const port = await getPort({ port: 4002 });
const registry = new Registry(configFile, { createUser: true, port });
const vPath = path.join(__dirname, '../bin/verdaccio');
const d = await registry.init(vPath);
expect(d.pid).toBeDefined();

380
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff