Fix dependabot issues
This commit is contained in:
parent
c89d9bd8b0
commit
531c6ba7c8
705 changed files with 53406 additions and 20466 deletions
102
node_modules/ava/lib/fork.js
generated
vendored
102
node_modules/ava/lib/fork.js
generated
vendored
|
|
@ -3,6 +3,7 @@ const childProcess = require('child_process');
|
|||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const Emittery = require('emittery');
|
||||
const {controlFlow} = require('./ipc-flow-control');
|
||||
|
||||
if (fs.realpathSync(__filename) !== __filename) {
|
||||
console.warn('WARNING: `npm link ava` and the `--preserve-symlink` flag are incompatible. We have detected that AVA is linked via `npm link`, and that you are using either an early version of Node 6, or the `--preserve-symlink` flag. This breaks AVA. You should upgrade to Node 6.2.0+, avoid the `--preserve-symlink` flag, or avoid using `npm link ava`.');
|
||||
|
|
@ -11,10 +12,57 @@ if (fs.realpathSync(__filename) !== __filename) {
|
|||
// In case the test file imports a different AVA install,
|
||||
// the presence of this variable allows it to require this one instead
|
||||
const AVA_PATH = path.resolve(__dirname, '..');
|
||||
const WORKER_PATH = require.resolve('./worker/subprocess');
|
||||
|
||||
const workerPath = require.resolve('./worker/subprocess');
|
||||
class SharedWorkerChannel extends Emittery {
|
||||
constructor({channelId, filename, initialData}, sendToFork) {
|
||||
super();
|
||||
|
||||
this.id = channelId;
|
||||
this.filename = filename;
|
||||
this.initialData = initialData;
|
||||
this.sendToFork = sendToFork;
|
||||
}
|
||||
|
||||
signalReady() {
|
||||
this.sendToFork({
|
||||
type: 'shared-worker-ready',
|
||||
channelId: this.id
|
||||
});
|
||||
}
|
||||
|
||||
signalError() {
|
||||
this.sendToFork({
|
||||
type: 'shared-worker-error',
|
||||
channelId: this.id
|
||||
});
|
||||
}
|
||||
|
||||
emitMessage({messageId, replyTo, serializedData}) {
|
||||
this.emit('message', {
|
||||
messageId,
|
||||
replyTo,
|
||||
serializedData
|
||||
});
|
||||
}
|
||||
|
||||
forwardMessageToFork({messageId, replyTo, serializedData}) {
|
||||
this.sendToFork({
|
||||
type: 'shared-worker-message',
|
||||
channelId: this.id,
|
||||
messageId,
|
||||
replyTo,
|
||||
serializedData
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
let forkCounter = 0;
|
||||
|
||||
module.exports = (file, options, execArgv = process.execArgv) => {
|
||||
const forkId = `fork/${++forkCounter}`;
|
||||
const sharedWorkerChannels = new Map();
|
||||
|
||||
let finished = false;
|
||||
|
||||
const emitter = new Emittery();
|
||||
|
|
@ -25,12 +73,13 @@ module.exports = (file, options, execArgv = process.execArgv) => {
|
|||
};
|
||||
|
||||
options = {
|
||||
file,
|
||||
baseDir: process.cwd(),
|
||||
file,
|
||||
forkId,
|
||||
...options
|
||||
};
|
||||
|
||||
const subprocess = childProcess.fork(workerPath, options.workerArgv, {
|
||||
const subprocess = childProcess.fork(WORKER_PATH, options.workerArgv, {
|
||||
cwd: options.projectDir,
|
||||
silent: true,
|
||||
env: {NODE_ENV: 'test', ...process.env, ...options.environmentVariables, AVA_PATH},
|
||||
|
|
@ -45,12 +94,12 @@ module.exports = (file, options, execArgv = process.execArgv) => {
|
|||
emitStateChange({type: 'worker-stderr', chunk});
|
||||
});
|
||||
|
||||
const bufferedSend = controlFlow(subprocess);
|
||||
|
||||
let forcedExit = false;
|
||||
const send = evt => {
|
||||
if (subprocess.connected && !finished && !forcedExit) {
|
||||
subprocess.send({ava: evt}, () => {
|
||||
// Disregard errors.
|
||||
});
|
||||
if (!finished && !forcedExit) {
|
||||
bufferedSend({ava: evt});
|
||||
}
|
||||
};
|
||||
|
||||
|
|
@ -65,15 +114,25 @@ module.exports = (file, options, execArgv = process.execArgv) => {
|
|||
return;
|
||||
}
|
||||
|
||||
if (message.ava.type === 'ready-for-options') {
|
||||
send({type: 'options', options});
|
||||
return;
|
||||
}
|
||||
switch (message.ava.type) {
|
||||
case 'ready-for-options':
|
||||
send({type: 'options', options});
|
||||
break;
|
||||
case 'shared-worker-connect': {
|
||||
const channel = new SharedWorkerChannel(message.ava, send);
|
||||
sharedWorkerChannels.set(channel.id, channel);
|
||||
emitter.emit('connectSharedWorker', channel);
|
||||
break;
|
||||
}
|
||||
|
||||
if (message.ava.type === 'ping') {
|
||||
send({type: 'pong'});
|
||||
} else {
|
||||
emitStateChange(message.ava);
|
||||
case 'shared-worker-message':
|
||||
sharedWorkerChannels.get(message.ava.channelId).emitMessage(message.ava);
|
||||
break;
|
||||
case 'ping':
|
||||
send({type: 'pong'});
|
||||
break;
|
||||
default:
|
||||
emitStateChange(message.ava);
|
||||
}
|
||||
});
|
||||
|
||||
|
|
@ -98,6 +157,10 @@ module.exports = (file, options, execArgv = process.execArgv) => {
|
|||
});
|
||||
|
||||
return {
|
||||
file,
|
||||
forkId,
|
||||
promise,
|
||||
|
||||
exit() {
|
||||
forcedExit = true;
|
||||
subprocess.kill();
|
||||
|
|
@ -107,11 +170,12 @@ module.exports = (file, options, execArgv = process.execArgv) => {
|
|||
send({type: 'peer-failed'});
|
||||
},
|
||||
|
||||
onStateChange(listener) {
|
||||
return emitter.on('stateChange', listener);
|
||||
onConnectSharedWorker(listener) {
|
||||
return emitter.on('connectSharedWorker', listener);
|
||||
},
|
||||
|
||||
file,
|
||||
promise
|
||||
onStateChange(listener) {
|
||||
return emitter.on('stateChange', listener);
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue