fix: update resolve-dependencies

This commit is contained in:
calebboyd
2020-04-26 09:08:25 -05:00
parent b785b72724
commit d6ba5d193f
23 changed files with 563 additions and 387 deletions
+11 -13
View File
@@ -1,29 +1,27 @@
import { join, dirname } from 'path'
import { readdir, unlink } from 'fs'
import { promises } from 'fs'
import { readFileAsync, writeFileAsync, isDirectoryAsync } from '../util'
import * as mkdirp from 'mkdirp'
import mkdirpAsync = require('mkdirp')
import { NexeCompiler } from '../compiler'
import pify = require('pify')
const mkdirpAsync = pify(mkdirp)
const unlinkAsync = pify(unlink)
const readdirAsync = pify(readdir)
const unlinkAsync = promises.unlink
const readdirAsync = promises.readdir
function readDirAsync(dir: string): Promise<string[]> {
return readdirAsync(dir).then(paths => {
return readdirAsync(dir).then((paths) => {
return Promise.all(
paths.map((file: string) => {
const path = join(dir, file)
return isDirectoryAsync(path).then(x => (x ? readDirAsync(path) : (path as any)))
return isDirectoryAsync(path).then((x) => (x ? readDirAsync(path) : (path as any)))
})
).then(result => {
).then((result) => {
return [].concat(...(result as any))
})
})
}
function maybeReadFileContentsAsync(file: string) {
return readFileAsync(file, 'utf-8').catch(e => {
return readFileAsync(file, 'utf-8').catch((e) => {
if (e.code === 'ENOENT') {
return ''
}
@@ -47,16 +45,16 @@ export default async function artifacts(compiler: NexeCompiler, next: () => Prom
const tmpFiles = await readDirAsync(temp)
await Promise.all(
tmpFiles.map(async path => {
tmpFiles.map(async (path) => {
return compiler.writeFileAsync(path.replace(temp, ''), await readFileAsync(path, 'utf-8'))
})
)
await next()
await Promise.all(tmpFiles.map(x => unlinkAsync(x)))
await Promise.all(tmpFiles.map((x) => unlinkAsync(x)))
return Promise.all(
compiler.files.map(async file => {
compiler.files.map(async (file) => {
const sourceFile = join(src, file.filename)
const tempFile = join(temp, file.filename)
const fileContents = await maybeReadFileContentsAsync(sourceFile)
+4 -4
View File
@@ -7,7 +7,7 @@ import { Readable } from 'stream'
function getStdIn(stdin: Readable): Promise<string> {
let out = ''
return new Promise(resolve => {
return new Promise((resolve) => {
stdin
.setEncoding('utf8')
.on('readable', () => {
@@ -64,18 +64,18 @@ export default async function bundle(compiler: NexeCompiler, next: any) {
const { files, warnings } = await resolveFiles(
input,
...Object.keys(compiler.bundle.index).filter(x => x.endsWith('.js')),
...Object.keys(compiler.bundle.index).filter((x) => x.endsWith('.js')),
{ cwd, expand: 'variable', loadContent: false }
)
if (
warnings.filter(x => x.startsWith('Error parsing file') && !x.includes('node_modules')).length
warnings.filter((x) => x.startsWith('Error parsing file') && !x.includes('node_modules')).length
) {
throw new NexeError('Parsing Error:\n' + warnings.join('\n'))
}
await each(Object.keys(files), (filename: string) => compiler.addResource(filename), {
concurrency: 10
concurrency: 10,
})
return next()
}
+2 -2
View File
@@ -11,7 +11,7 @@ function fetchNodeSourceAsync(dest: string, url: string, step: LogStep, options
.on('response', (res: IncomingMessage) => {
const total = +res.headers['content-length']!
let current = 0
res.on('data', data => {
res.on('data', (data) => {
current += data.length
setText((current / total) * 100)
if (current === total) {
@@ -32,7 +32,7 @@ async function fetchPrebuiltBinary(compiler: NexeCompiler, step: any) {
(res: IncomingMessage) => {
const total = +res.headers['content-length']!
let current = 0
res.on('data', data => {
res.on('data', (data) => {
current += data.length
step!.modify(`Downloading...${((current / total) * 100).toFixed()}%`)
})
+2 -2
View File
@@ -12,9 +12,9 @@ export default async function resource(compiler: NexeCompiler, next: () => Promi
// workaround for https://github.com/sindresorhus/globby/issues/127
// and https://github.com/mrmlnc/fast-glob#pattern-syntax
const resourcesWithForwardSlashes = resources.map(r => r.replace(/\\/g, '/'))
const resourcesWithForwardSlashes = resources.map((r) => r.replace(/\\/g, '/'))
await each(globs(resourcesWithForwardSlashes, { cwd }), async file => {
await each(globs(resourcesWithForwardSlashes, { cwd }), async (file) => {
if (await isDirectoryAsync(file)) {
return
}
+1 -1
View File
@@ -1,7 +1,7 @@
import { NexeCompiler } from '../compiler'
import { wrap } from '../util'
export default async function(compiler: NexeCompiler, next: () => Promise<void>) {
export default async function (compiler: NexeCompiler, next: () => Promise<void>) {
await next()
compiler.shims.push(