Socket
Socket
Sign inDemoInstall

spawn-stack

Package Overview
Dependencies
17
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.3.1 to 0.4.0

134

index.js

@@ -10,90 +10,90 @@ 'use strict';

const HASHES = new Map([
['darwin', 'macos'],
['freebsd', 'freebsd'],
['linux', 'linux'],
['win32', 'windows']
['darwin', 'macos'],
['freebsd', 'freebsd'],
['linux', 'linux'],
['win32', 'windows']
]);
module.exports = function spawnStack(stackArgs, options) {
if (!Array.isArray(stackArgs)) {
return Promise.reject(new TypeError(`Expected arguments of \`stack\` command (Array<string>), but got a non-array value ${
inspect(stackArgs)
}.`));
}
if (!Array.isArray(stackArgs)) {
return Promise.reject(new TypeError(`Expected arguments of \`stack\` command (Array<string>), but got a non-array value ${
inspect(stackArgs)
}.`));
}
if (
process.platform !== 'win32' &&
if (
process.platform !== 'win32' &&
stackArgs.indexOf('--allow-different-user') === -1 &&
stackArgs.indexOf('--no-allow-different-user') === -1
) {
stackArgs = ['--allow-different-user'].concat(stackArgs);
}
) {
stackArgs = ['--allow-different-user'].concat(stackArgs);
}
const lines = [];
let completed = false;
let error;
const lines = [];
let completed = false;
let error;
let observer = {
next(line) {
lines.push(line);
},
error(err) {
error = err;
},
complete() {
completed = true;
}
};
let observer = {
next(line) {
lines.push(line);
},
error(err) {
error = err;
},
complete() {
completed = true;
}
};
const cp = execa('stack', stackArgs, Object.assign({preferLocal: false}, options));
cp.stderr.setEncoding('utf8');
const cp = execa('stack', stackArgs, Object.assign({preferLocal: false}, options));
cp.stderr.setEncoding('utf8');
byline(cp.stderr).on('data', line => observer.next(line));
byline(cp.stderr).on('data', line => observer.next(line));
cp.then(data => {
observer.complete();
return data;
}, err => {
if (err.code === 'ENOENT') {
const hash = HASHES.get(process.platform);
cp.then(data => {
observer.complete();
return data;
}, err => {
if (err.code === 'ENOENT') {
const hash = HASHES.get(process.platform);
err.INSTALL_URL = `https://docs.haskellstack.org/en/stable/install_and_upgrade/${
hash ? `#${hash}` : ''
}`;
err.INSTALL_URL = `https://docs.haskellstack.org/en/stable/install_and_upgrade/${
hash ? `#${hash}` : ''
}`;
err.message = `\`stack\` command is not found in your PATH. Make sure you have installed Stack. ${
err.INSTALL_URL
}`;
}
err.message = `\`stack\` command is not found in your PATH. Make sure you have installed Stack. ${
err.INSTALL_URL
}`;
}
if (err.killed) {
return;
}
if (err.killed) {
return;
}
observer.error(err);
});
observer.error(err);
});
cp[Symbol.observable] = () => new Observable(observerArg => { // eslint-disable-line no-use-extend-native/no-use-extend-native
observer = observerArg;
cp[Symbol.observable] = () => new Observable(observerArg => { // eslint-disable-line no-use-extend-native/no-use-extend-native
observer = observerArg;
for (const line of lines) {
observer.next(line);
}
for (const line of lines) {
observer.next(line);
}
if (error !== undefined) {
observer.error(error);
} else if (completed) {
observer.complete();
}
if (error !== undefined) {
observer.error(error);
} else if (completed) {
observer.complete();
}
return function killStack() {
if (completed) {
return;
}
return function killStack() {
if (completed) {
return;
}
cp.kill();
};
});
cp.kill();
};
});
return cp;
return cp;
};
{
"name": "spawn-stack",
"version": "0.3.1",
"version": "0.4.0",
"description": "Spawn a new process using `stack` command with the given arguments",
"repository": "shinnn/spawn-stack",
"author": {
"name": "Shinnosuke Watanabe",
"url": "https://github.com/shinnn"
},
"author": "Shinnosuke Watanabe (https://github.com/shinnn)",
"scripts": {

@@ -31,12 +28,12 @@ "pretest": "eslint --fix --format=codeframe index.js test.js",

"byline": "^5.0.0",
"execa": "^0.8.0",
"zen-observable": "^0.6.0"
"execa": "^0.10.0",
"zen-observable": "^0.6.1"
},
"devDependencies": {
"@shinnn/eslint-config-node": "^4.0.2",
"eslint": "^4.11.0",
"nyc": "^11.3.0",
"@shinnn/eslint-config-node": "^5.0.0",
"eslint": "^4.19.1",
"nyc": "^11.7.3",
"pretend-platform": "^2.0.0",
"rmfr": "^1.0.3",
"tape": "^4.8.0"
"rmfr": "^2.0.0",
"tape": "^4.9.0"
},

@@ -43,0 +40,0 @@ "eslintConfig": {

@@ -14,3 +14,3 @@ # spawn-stack

spawnStack(['--version']).then(result => {
result.output; //=> 'Version 1.5.1 x86_64 hpack-0.17.1'
result.output; //=> 'Version 1.7.1 x86_64 ...'
});

@@ -78,2 +78,2 @@ ```

[ISC License](./LICENSE) © 2017 Shinnosuke Watanabe
[ISC License](./LICENSE) © 2017 - 2018 Shinnosuke Watanabe
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc