mirror of
https://github.com/electron/node-gyp.git
synced 2025-08-15 04:48:20 +02:00
Merge pull request #11 from electron/felixr-patch-fs
fix: Monkey-patch fs
This commit is contained in:
commit
06b29aafb7
15 changed files with 50 additions and 16 deletions
|
@ -1,10 +1,9 @@
|
|||
'use strict'
|
||||
|
||||
const gracefulFs = require('graceful-fs')
|
||||
const fs = gracefulFs.promises
|
||||
const path = require('path')
|
||||
const { glob } = require('./glob')
|
||||
const log = require('./log')
|
||||
const { promises: fs } = require('./fs')
|
||||
const which = require('which')
|
||||
const win = process.platform === 'win32'
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use strict'
|
||||
|
||||
const fs = require('graceful-fs').promises
|
||||
const log = require('./log')
|
||||
const { promises: fs } = require('./fs')
|
||||
|
||||
async function clean (gyp, argv) {
|
||||
// Remove the 'build' dir
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict'
|
||||
|
||||
const { promises: fs, readFileSync } = require('graceful-fs')
|
||||
const { promises: fs, readFileSync } = require('./fs')
|
||||
const path = require('path')
|
||||
const log = require('./log')
|
||||
const os = require('os')
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict'
|
||||
|
||||
const fs = require('graceful-fs').promises
|
||||
const { promises: fs } = require('./fs')
|
||||
const log = require('./log')
|
||||
const path = require('path')
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
const fetch = require('make-fetch-happen')
|
||||
const { promises: fs } = require('graceful-fs')
|
||||
const { promises: fs } = require('./fs')
|
||||
const log = require('./log')
|
||||
|
||||
async function download (gyp, url) {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
'use strict'
|
||||
|
||||
const log = require('./log')
|
||||
const { existsSync } = require('fs')
|
||||
const { existsSync } = require('./fs')
|
||||
const { win32: path } = require('path')
|
||||
const { regSearchKeys, execFile } = require('./util')
|
||||
|
||||
|
|
35
lib/fs.js
Normal file
35
lib/fs.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
const gracefulFs = require('graceful-fs')
|
||||
const promises = gracefulFs.promises
|
||||
|
||||
/**
|
||||
* Add fs.rm for older versions of node
|
||||
*/
|
||||
async function rm(...args) {
|
||||
const pathToRemove = args[0]
|
||||
const options = args[1] || {}
|
||||
|
||||
try {
|
||||
const stat = await promises.stat(pathToRemove, { throwIfNoEntry: false })
|
||||
const isDirectory = stat.isDirectory()
|
||||
|
||||
if (isDirectory) {
|
||||
await promises.rmdir(pathToRemove, options)
|
||||
} else {
|
||||
await promises.unlink(pathToRemove)
|
||||
}
|
||||
} catch (err) {
|
||||
if (err.code === 'ENOENT' && options.force) {
|
||||
return
|
||||
}
|
||||
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
...gracefulFs,
|
||||
promises: {
|
||||
rm,
|
||||
...promises,
|
||||
}
|
||||
}
|
|
@ -1,6 +1,6 @@
|
|||
'use strict'
|
||||
|
||||
const { createWriteStream, promises: fs } = require('graceful-fs')
|
||||
const { promises: fs, createWriteStream } = require('./fs')
|
||||
const os = require('os')
|
||||
const { backOff } = require('exponential-backoff')
|
||||
const tar = require('tar')
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict'
|
||||
|
||||
const fs = require('graceful-fs').promises
|
||||
const { promises: fs } = require('./fs')
|
||||
const log = require('./log')
|
||||
|
||||
async function list (gyp, args) {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
'use strict'
|
||||
|
||||
const fs = require('graceful-fs').promises
|
||||
const { promises: fs } = require('./fs')
|
||||
const path = require('path')
|
||||
const log = require('./log')
|
||||
const semver = require('semver')
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
const cp = require('child_process')
|
||||
const path = require('path')
|
||||
const { openSync, closeSync } = require('graceful-fs')
|
||||
const { openSync, closeSync } = require('./fs')
|
||||
const log = require('./log')
|
||||
|
||||
const execFile = async (...args) => new Promise((resolve) => {
|
||||
|
|
|
@ -10,7 +10,7 @@ const semver = require('semver')
|
|||
|
||||
const versionSemver = semver.parse(process.version)
|
||||
|
||||
const configure = requireInject('../lib/configure', {
|
||||
const configure = requireInject.withEmptyCache('../lib/configure', {
|
||||
'graceful-fs': {
|
||||
openSync: () => 0,
|
||||
closeSync: () => {},
|
||||
|
@ -26,7 +26,7 @@ const configure = requireInject('../lib/configure', {
|
|||
}
|
||||
})
|
||||
|
||||
const configure2 = requireInject('../lib/configure', {
|
||||
const configure2 = requireInject.withEmptyCache('../lib/configure', {
|
||||
'graceful-fs': {
|
||||
openSync: () => 0,
|
||||
closeSync: () => {},
|
||||
|
|
|
@ -7,7 +7,7 @@ const { devDir } = require('./common')
|
|||
const gyp = require('../lib/node-gyp')
|
||||
const requireInject = require('require-inject')
|
||||
|
||||
const configure = requireInject('../lib/configure', {
|
||||
const configure = requireInject.withEmptyCache('../lib/configure', {
|
||||
'graceful-fs': {
|
||||
openSync: () => 0,
|
||||
closeSync: () => {},
|
||||
|
|
|
@ -4,7 +4,7 @@ const { describe, it } = require('mocha')
|
|||
const assert = require('assert')
|
||||
const path = require('path')
|
||||
const requireInject = require('require-inject')
|
||||
const { findAccessibleSync } = requireInject('../lib/util', {
|
||||
const { findAccessibleSync } = requireInject.withEmptyCache('../lib/util', {
|
||||
'graceful-fs': {
|
||||
closeSync: function () { return undefined },
|
||||
openSync: function (path) {
|
||||
|
|
|
@ -16,7 +16,7 @@ const { download } = require('../lib/download')
|
|||
describe('install', function () {
|
||||
it('EACCES retry once', async () => {
|
||||
let statCalled = 0
|
||||
const mockInstall = requireInject('../lib/install', {
|
||||
const mockInstall = requireInject.withEmptyCache('../lib/install', {
|
||||
'graceful-fs': {
|
||||
promises: {
|
||||
stat (_) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue