install-purescript
Install PureScript to a given directory
cconst execFile = ;const installPurescript = ; ;
Installation
npm install install-purescript
API
const installPurescript = ;
installPurescript([options])
options: Object
Return: Observable
(Kevin Smith's implementation)
When the Observable
is subscribed,
- it searches the standard cache directory for an already cached PureScript binary, and restores the cache if available
- if a cached binary is not available, it downloads a prebuilt binary from the PureScript release page
- if a prebuilt binary is not available, it downloads the PureScript source code and builds a binary form it
- Cache the downloaded or built binary to the npm cache directory
while successively sending events to its Observer
.
Events
Every event object has id
property with one of these values:
search-cache
restore-cache
restore-cache:fail
restore-cache:complete
check-binary
check-binary:fail
check-binary:complete
head
head:fail
head:complete
download-binary
download-binary:fail
download-binary:complete
check-stack
check-stack:complete
download-source
download-source:complete
setup
setup:complete
build
build:complete
write-cache
write-cache:fail
write-cache:complete
|
search-cache -- x -+- head ------------ x -+- check-stack ----- x -+
| | | | | |
o | o | o |
| | | | | |
restore-cache - x -+ download-binary - x -+ download-source - x -+
| | | | | |
o | o | o |
| | | | | |
check-binary -- x -+ check-binary ---- x -+ setup ----------- x -+
| | | |
o | o |
| | | |
| | build ----------- x -+
| | | |
| o o |
| | | |
******************* ***************** ***************** ^^^^^^^
Restored a Downloaded a Built a binary Error
binary from cache prebuilt binary from the source ^^^^^^^
******************* ***************** *****************
| |
write-cache write-cache
search-cache
Fires when it checks if a tgz
archive of the required PureScript binary exists in the cache directory.
id: 'search-cache' path: <string> // path to the cache file found: <boolean> // whether a cache is found or not
restore-cache
Fires when it starts to extract a binary from the cached tgz
archive.
id: 'restore-cache'
restore-cache:fail
Fires when it fails to restore the binary from cache.
id: 'restore-cache:fail' error: <Error>
restore-cache:complete
Fires when the cached binary is successfully restored.
id: 'restore-cache:complete'
check-binary
Fires when it starts to verify the cached or downloaded binary works correctly, by running purs --version
.
id: 'check-binary'
check-binary:fail
Fires when the cached or downloaded binary doesn't work correctly.
id: 'check-binary:fail' error: <Error>
check-binary:complete
Fires when it verifies the cached or downloaded binary works correctly.
id: 'check-binary:complete'
head
head:fail
head:complete
download-binary
download-binary:fail
download-binary:complete
check-stack
check-stack:complete
download-source
download-source:complete
Inherited from download-or-build-purescript
.
setup
setup:complete
build
build:complete
Inherited from build-purescript
.
write-cache
Fires when it starts to create a cache. The cache is compressed with Brotli.
id: 'write-cache' originalSize: <integer> // the size of the binary before compression in bytes
write-cache:fail
Fires when it fails to create the cache.
id: 'write-cache:fail' error: <Error>
write-cache:complete
Fires when the cache is successfully created.
id: 'write-cache:complete'
Errors
Every error passed to the Observer
has id
property that indicates which step the error occurred at.
// When the `stack` command is not installed; // When your machine lose the internet connection while downloading the source;
Options
Options are directly passed to download-or-build-purescript
.
Additionally, you can use the following:
forceReinstall
Type: boolean
Default: false
Force reinstalling a binary even if an appropriate cache already exists.
Related projects
- install-purescript-cli — CLI for this module
- download-or-build-purescript — Almost the same as this module, but has no cache feature
License
ISC License © 2017 - 2019 Watanabe Shinnosuke