diff options
| author | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 | 
|---|---|---|
| committer | LinuxWizard42 <computerwizard@linuxmail.org> | 2022-10-12 22:54:37 +0300 | 
| commit | 703e03aba33f234712206769f57717ba7d92d23d (patch) | |
| tree | 0041f04ccb75bd5379c764e9fe42249fffe75fc3 /node_modules/electron-packager/src/prune.js | |
| parent | ab6e257e6e9d9a483d7e86f220d8b209a2cd7753 (diff) | |
| download | FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.gz FlashRunner-703e03aba33f234712206769f57717ba7d92d23d.tar.zst | |
Added export_allowed file to make repository visible in cgit
Diffstat (limited to 'node_modules/electron-packager/src/prune.js')
| -rw-r--r-- | node_modules/electron-packager/src/prune.js | 68 | 
1 files changed, 68 insertions, 0 deletions
| diff --git a/node_modules/electron-packager/src/prune.js b/node_modules/electron-packager/src/prune.js new file mode 100644 index 0000000..e5739ef --- /dev/null +++ b/node_modules/electron-packager/src/prune.js @@ -0,0 +1,68 @@ +'use strict' + +const common = require('./common') +const galactus = require('galactus') +const fs = require('fs-extra') +const path = require('path') + +const ELECTRON_MODULES = [ +  'electron', +  'electron-prebuilt', +  'electron-prebuilt-compile' +] + +class Pruner { +  constructor (dir) { +    this.baseDir = common.normalizePath(dir) +    this.galactus = new galactus.DestroyerOfModules({ +      rootDirectory: dir, +      shouldKeepModuleTest: (module, isDevDep) => this.shouldKeepModule(module, isDevDep) +    }) +    this.walkedTree = false +  } + +  setModules (moduleMap) { +    const modulePaths = Array.from(moduleMap.keys()).map(modulePath => `/${common.normalizePath(modulePath)}`) +    this.modules = new Set(modulePaths) +    this.walkedTree = true +  } + +  async pruneModule (name) { +    if (this.walkedTree) { +      return this.isProductionModule(name) +    } else { +      const moduleMap = await this.galactus.collectKeptModules({ relativePaths: true }) +      this.setModules(moduleMap) +      return this.isProductionModule(name) +    } +  } + +  shouldKeepModule (module, isDevDep) { +    if (isDevDep || module.depType === galactus.DepType.ROOT) { +      return false +    } + +    if (ELECTRON_MODULES.includes(module.name)) { +      common.warning(`Found '${module.name}' but not as a devDependency, pruning anyway`) +      return false +    } + +    return true +  } + +  isProductionModule (name) { +    return this.modules.has(name) +  } +} + +function isNodeModuleFolder (pathToCheck) { +  return path.basename(path.dirname(pathToCheck)) === 'node_modules' || +    (path.basename(path.dirname(pathToCheck)).startsWith('@') && path.basename(path.resolve(pathToCheck, `..${path.sep}..`)) === 'node_modules') +} + +module.exports = { +  isModule: async function isModule (pathToCheck) { +    return (await fs.pathExists(path.join(pathToCheck, 'package.json'))) && isNodeModuleFolder(pathToCheck) +  }, +  Pruner: Pruner +} | 
