- ideClient.stderr.on('data', data => {
- debug(data.toString())
- cache.ideServer = false
- reject(true)
- })
- ideClient.stdout.once('data', data => {
- debug(data.toString())
- if (data.toString()[0] === '{') {
- const res = JSON.parse(data.toString())
- if (res.resultType === 'success') {
- cache.ideServer = ideServer
- resolve(psModule)
- } else {
- cache.ideServer = ideServer
- reject(true)
- }
- } else {
- cache.ideServer = false
- reject(true)
- }
- })
- ideClient.stdin.resume()
- ideClient.stdin.write(JSON.stringify({ command: 'load' }))
- ideClient.stdin.write('\n')
- })
-
- const args = dargs(Object.assign({
- outputDirectory: options.output,
- }, options.pscIdeArgs))
-
- debug('attempting to start psc-ide-server', args)
-
- const ideServer = cache.ideServer = spawn('psc-ide-server', [])
- ideServer.stderr.on('data', data => {
- debug(data.toString())
- })
-
- return retryPromise((retry, number) => {
- return connect().catch(error => {
- if (!cache.ideServer && number === 9) {
- debug(error)
-
- console.log(
- 'failed to connect to or start psc-ide-server, ' +
- 'full compilation will occur on rebuild'
+ compile(psModule)
+ .then(() => {
+ CACHE_VAR.compilationFinished = true;
+ })
+ .then(() => {
+ if (options.bundle) {
+ return bundle(options, CACHE_VAR.bundleModules);
+ }
+ })
+ .then(() =>
+ Promise.map(CACHE_VAR.deferred, psModule =>
+ toJavaScript(psModule)
+ .then(js => sourceMaps(psModule, js))
+ .then(psModule.load)
+ )