refactor: allow embedder overriding of internal FS calls (#17906) (#18183)

This commit is contained in:
Shelley Vohr 2019-05-07 06:44:32 -07:00 committed by John Kleinschmidt
parent 91e3421525
commit cfb6e847a0
7 changed files with 26 additions and 5 deletions

View file

@ -13,6 +13,9 @@
process.type !== 'renderer'
const isAsarDisabled = () => process.noAsar || envNoAsar
const internalBinding = process.internalBinding
delete process.internalBinding
/**
* @param {!Function} functionToCall
* @param {!Array|undefined} args
@ -669,8 +672,8 @@
return files
}
const { internalModuleReadJSON } = process.binding('fs')
process.binding('fs').internalModuleReadJSON = pathArgument => {
const { internalModuleReadJSON } = internalBinding('fs')
internalBinding('fs').internalModuleReadJSON = pathArgument => {
const { isAsar, asarPath, filePath } = splitPath(pathArgument)
if (!isAsar) return internalModuleReadJSON(pathArgument)
@ -694,8 +697,8 @@
return buffer.toString('utf8')
}
const { internalModuleStat } = process.binding('fs')
process.binding('fs').internalModuleStat = pathArgument => {
const { internalModuleStat } = internalBinding('fs')
internalBinding('fs').internalModuleStat = pathArgument => {
const { isAsar, asarPath, filePath } = splitPath(pathArgument)
if (!isAsar) return internalModuleStat(pathArgument)