Package Exports
- download-purescript-source
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (download-purescript-source) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
download-purescript
A Node.js module to download a prebuilt PureScript binary
const {readdirSync} = require('fs');
const downloadPurescript = require('download-purescript');
downloadPurescript('./dest/').subscribe({
complete() {
readdirSync('./dest/');
/* => [
'psc',
'psc-bundle',
'psc-docs',
'psc-ide-client',
'psc-ide-server',
'psc-package',
'psc-publish',
'psci'
] */
}
});Installation
npm install download-purescriptAPI
const downloadPurescript = require('download-purescript');downloadPurescript(dir [, options])
dir: String (a directory path where the PureScript binary will be downloaded)
options: Object
Return: Observable (zenparsing's implementation)
When the observable is subscribed, it starts to download a tar.gz archive from the PureScript release page, extract it and successively send extraction progress as objects to its observer.
Every progress object have two properties header and bytes. bytes is the total size of currently extracted entry, and header is a header of the entry.
downloadPurescript('my/dir')
.filter(({bytes, header}) => bytes === header.size)
.forEach(({header}) => console.log(`✓ ${header.name}`))
.then(() => console.log('\nCompleted.'));✓ psc
✓ psc-bundle
✓ psc-docs
✓ psc-ide-client
✓ psc-ide-server
✓ psc-package
✓ psc-publish
✓ psci
Completed.Options
You can pass options to Request and tar-fs's extract method. Note that:
stripoption defaults to1, not0. That means the top level directory is stripped off by default.ignoreoption defaults to(_, ({mode})) => (mode & 1) !== 1, that means all the non-executavle files, for exampleREADME, won't be downloaded by default. Pass() => truetoignoreoption if you want to download all files included in the archive.
Additionally, you can use the following:
version
Type: String
Default: 0.10.7
Specify the version you want to download.
const {execFileSync} = require('child_process');
downloadPurescript('dir1').subscribe({
complete() {
execFileSync('./dir1/psc', ['--version'], {encoding: 'utf8'}).trim(); //=> '0.10.7'
}
});
downloadPurescript('dir2', {version: '0.10.6'}).subscribe({
complete() {
execFileSync('./dir2/psc', ['--version'], {encoding: 'utf8'}).trim(); //=> '0.10.6'
}
});platform
Type: String (currently supported: darwin linux win32)
Default: process.platform
By default this module tries to download the binary for the current platform. Use this option to download the one for the different platform.
License
Copyright (c) 2017 Shinnosuke Watanabe
Licensed under the MIT License.