JezK
Edit File: autoclean.js.map
{"version":3,"file":"autoclean.js","names":["invariant","require","path","requireLockfile","noArguments","DEFAULT_FILTER","trim","clean","config","reporter","loc","join","lockfileFolder","CLEAN_FILENAME","fs","readFile","file","lines","split","filters","ignoreLinesToRegex","removedFiles","removedSize","locs","Set","registryFolders","registryFolder","add","resolve","workspaceRootFolder","findManifest","manifest","workspaces","resolveWorkspaces","Object","keys","workspaceName","registryNames","name","registry","registries","folder","exists","spinner","activity","walk","files","sortFilter","ignoreFiles","end","tick","progress","size","lstat","stat","unlink","runInit","cwd","step","lang","cleanLoc","writeFile","flag","info","runAutoClean","Number","toFixed","checkForCleanFile","run","commander","flags","args","cleanFileExists","init","force","setFlags","description","usage","option","hasWrapper"],"sourceRoot":"../../../src","sources":["cli/commands/autoclean.js"],"sourcesContent":["/* @flow */\n\nimport type {Reporter} from '../../reporters/index.js';\nimport type Config from '../../config.js';\nimport {registryNames} from '../../registries/index.js';\nimport {sortFilter, ignoreLinesToRegex} from '../../util/filter.js';\nimport {CLEAN_FILENAME} from '../../constants.js';\nimport * as fs from '../../util/fs.js';\n\nconst invariant = require('invariant');\nconst path = require('path');\n\nexport const requireLockfile = true;\nexport const noArguments = true;\n\nconst DEFAULT_FILTER = `\n# test directories\n__tests__\ntest\ntests\npowered-test\n\n# asset directories\ndocs\ndoc\nwebsite\nimages\nassets\n\n# examples\nexample\nexamples\n\n# code coverage directories\ncoverage\n.nyc_output\n\n# build scripts\nMakefile\nGulpfile.js\nGruntfile.js\n\n# configs\nappveyor.yml\ncircle.yml\ncodeship-services.yml\ncodeship-steps.yml\nwercker.yml\n.tern-project\n.gitattributes\n.editorconfig\n.*ignore\n.eslintrc\n.jshintrc\n.flowconfig\n.documentup.json\n.yarn-metadata.json\n.travis.yml\n\n# misc\n*.md\n`.trim();\n\nexport async function clean(\n config: Config,\n reporter: Reporter,\n): Promise<{\n removedFiles: number,\n removedSize: number,\n}> {\n const loc = path.join(config.lockfileFolder, CLEAN_FILENAME);\n const file = await fs.readFile(loc);\n const lines = file.split('\\n');\n const filters = ignoreLinesToRegex(lines);\n\n let removedFiles = 0;\n let removedSize = 0;\n\n // build list of possible module folders\n const locs = new Set();\n for (const registryFolder of config.registryFolders) {\n locs.add(path.resolve(config.lockfileFolder, registryFolder));\n }\n\n const workspaceRootFolder = config.workspaceRootFolder;\n if (workspaceRootFolder) {\n const manifest = await config.findManifest(workspaceRootFolder, false);\n invariant(manifest && manifest.workspaces, 'We must find a manifest with a \"workspaces\" property');\n\n const workspaces = await config.resolveWorkspaces(workspaceRootFolder, manifest);\n\n for (const workspaceName of Object.keys(workspaces)) {\n for (const name of registryNames) {\n const registry = config.registries[name];\n locs.add(path.join(workspaces[workspaceName].loc, registry.folder));\n }\n }\n }\n\n for (const folder of locs) {\n if (!await fs.exists(folder)) {\n continue;\n }\n\n const spinner = reporter.activity();\n const files = await fs.walk(folder);\n const {ignoreFiles} = sortFilter(files, filters);\n spinner.end();\n\n const tick = reporter.progress(ignoreFiles.size);\n // TODO make sure `main` field of all modules isn't ignored\n\n for (const file of ignoreFiles) {\n const loc = path.join(folder, file);\n const stat = await fs.lstat(loc);\n removedSize += stat.size;\n removedFiles++;\n }\n\n for (const file of ignoreFiles) {\n const loc = path.join(folder, file);\n await fs.unlink(loc);\n tick();\n }\n }\n\n return {removedFiles, removedSize};\n}\n\nasync function runInit(cwd: string, reporter: Reporter): Promise<void> {\n reporter.step(1, 1, reporter.lang('cleanCreatingFile', CLEAN_FILENAME));\n const cleanLoc = path.join(cwd, CLEAN_FILENAME);\n await fs.writeFile(cleanLoc, `${DEFAULT_FILTER}\\n`, {flag: 'wx'});\n reporter.info(reporter.lang('cleanCreatedFile', CLEAN_FILENAME));\n}\n\nasync function runAutoClean(config: Config, reporter: Reporter): Promise<void> {\n reporter.step(1, 1, reporter.lang('cleaning'));\n const {removedFiles, removedSize} = await clean(config, reporter);\n reporter.info(reporter.lang('cleanRemovedFiles', removedFiles));\n reporter.info(reporter.lang('cleanSavedSize', Number((removedSize / 1024 / 1024).toFixed(2))));\n}\n\nasync function checkForCleanFile(cwd: string): Promise<boolean> {\n const cleanLoc = path.join(cwd, CLEAN_FILENAME);\n const exists = await fs.exists(cleanLoc);\n return exists;\n}\n\nexport async function run(config: Config, reporter: Reporter, commander: Object, flags: Object, args: Array<string>): Promise<void> {\n const cleanFileExists = await checkForCleanFile(config.cwd);\n\n if (flags.init && cleanFileExists) {\n reporter.info(reporter.lang('cleanAlreadyExists', CLEAN_FILENAME));\n } else if (flags.init) {\n await runInit(config.cwd, reporter);\n } else if (flags.force && cleanFileExists) {\n await runAutoClean(config, reporter);\n } else if (cleanFileExists) {\n reporter.info(reporter.lang('cleanRequiresForce', CLEAN_FILENAME));\n } else {\n reporter.info(reporter.lang('cleanDoesNotExist', CLEAN_FILENAME));\n }\n}\n\nexport function setFlags(commander: Object) {\n commander.description('Cleans and removes unnecessary files from package dependencies.');\n commander.usage('autoclean [flags]');\n commander.option('-I, --init', `Create \"${CLEAN_FILENAME}\" file with the default entries.`);\n commander.option('-F, --force', `Run autoclean using the existing \"${CLEAN_FILENAME}\" file.`);\n}\n\nexport function hasWrapper(commander: Object): boolean {\n return true;\n}\n"],"mappings":"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"}