UNPKG

29.6 kBSource Map (JSON)View Raw
1{"version":3,"file":"index.js","sources":["../src/options-schema.js","../src/utils/p-exec.js","../src/actions/copy.js","../src/actions/move.js","../src/actions/delete.js","../src/actions/mkdir.js","../src/actions/archive.js","../src/index.js"],"sourcesContent":["export default {\n title: 'FileManagerPluginOptions',\n type: 'object',\n additionalProperties: false,\n definitions: {\n Copy: {\n description: 'Copy individual files or entire directories from a source folder to a destination folder',\n type: 'array',\n minItems: 1,\n additionalItems: true,\n itmes: [\n {\n type: 'object',\n additionalProperties: false,\n properties: {\n source: {\n description: 'Copy source. A file or directory or a glob',\n type: 'string',\n minLength: 1,\n },\n destination: {\n description: 'Copy destination',\n type: 'string',\n minLength: 1,\n },\n },\n },\n ],\n },\n Delete: {\n description: 'Delete individual files or entire directories',\n type: 'array',\n minItems: 1,\n additionalItems: true,\n items: {\n anyOf: [\n {\n type: 'object',\n additionalProperties: false,\n properties: {\n source: {\n type: 'string',\n minLength: 1,\n },\n options: {\n additionalProperties: true,\n type: 'object',\n description: 'Options to forward to del',\n },\n },\n },\n {\n type: 'string',\n minLength: 1,\n },\n ],\n },\n },\n Move: {\n description: 'Move individual files or entire directories from a source folder to a destination folder',\n type: 'array',\n additionalItems: true,\n items: [\n {\n type: 'object',\n additionalProperties: false,\n properties: {\n source: {\n description: 'Move source. A file or directory or a glob',\n type: 'string',\n minLength: 1,\n },\n destination: {\n description: 'Move destination',\n type: 'string',\n minLength: 1,\n },\n },\n },\n ],\n },\n Mkdir: {\n description: 'Create Directories',\n type: 'array',\n minItems: 1,\n additionalItems: true,\n items: {\n type: 'string',\n },\n },\n Archive: {\n description: 'Archive individual files or entire directories.',\n type: 'array',\n additionalItems: true,\n items: [\n {\n type: 'object',\n additionalProperties: false,\n properties: {\n source: {\n description: 'Source. A file or directory or a glob',\n type: 'string',\n minLength: 1,\n },\n destination: {\n description: 'Archive destination',\n type: 'string',\n minLength: 1,\n },\n format: {\n type: 'string',\n enum: ['zip', 'tar'],\n },\n options: {\n additionalProperties: true,\n type: 'object',\n description: 'Options to forward to archiver',\n },\n },\n },\n ],\n },\n Actions: {\n type: 'object',\n additionalProperties: false,\n properties: {\n copy: {\n $ref: '#/definitions/Copy',\n },\n delete: {\n $ref: '#/definitions/Delete',\n },\n move: {\n $ref: '#/definitions/Move',\n },\n mkdir: {\n $ref: '#/definitions/Mkdir',\n },\n archive: {\n $ref: '#/definitions/Archive',\n },\n },\n },\n },\n properties: {\n events: {\n type: 'object',\n additionalProperties: false,\n properties: {\n onStart: {\n oneOf: [\n {\n $ref: '#/definitions/Actions',\n },\n {\n type: 'array',\n items: {\n $ref: '#/definitions/Actions',\n },\n },\n ],\n },\n onEnd: {\n oneOf: [\n {\n $ref: '#/definitions/Actions',\n },\n {\n type: 'array',\n items: {\n $ref: '#/definitions/Actions',\n },\n },\n ],\n },\n },\n },\n runTasksInSeries: {\n type: 'boolean',\n default: false,\n description: 'Run tasks in an action in series',\n },\n context: {\n type: 'string',\n description: 'The directory, an absolute path, for resolving files. Defaults to webpack context',\n },\n },\n};\n","const defaultTask = async () => {};\n\nconst pExec = async (series = false, arr = [], task = defaultTask) => {\n if (series) {\n await arr.reduce(async (p, spec) => {\n await p;\n return task(spec);\n }, Promise.resolve(null));\n return;\n }\n\n const pMap = arr.map(async (spec) => await task(spec));\n await Promise.all(pMap);\n};\n\nexport default pExec;\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport fsExtra from 'fs-extra';\nimport cpy from 'cpy';\nimport isGlob from 'is-glob';\n\nimport pExec from '../utils/p-exec.js';\n\nconst fsExtraDefaultOptions = {\n preserveTimestamps: true,\n};\n\nconst copy = async (task, { logger }) => {\n const { source, absoluteSource, destination, absoluteDestination, context, toType } = task;\n\n logger.log(`copying from ${source} to ${destination}`);\n\n if (isGlob(source)) {\n const src = path.isAbsolute(source) ? source : path.posix.join(context, source);\n await cpy(src, absoluteDestination);\n } else {\n const isSourceFile = fs.lstatSync(absoluteSource).isFile();\n\n // if source is a file and target is a directory\n // create the directory and copy the file into that directory\n if (isSourceFile && toType === 'dir') {\n await fsExtra.ensureDir(absoluteDestination);\n\n const sourceFileName = path.basename(absoluteSource);\n const filePath = path.resolve(absoluteDestination, sourceFileName);\n\n await fsExtra.copy(absoluteSource, filePath, fsExtraDefaultOptions);\n return;\n }\n\n await fsExtra.copy(absoluteSource, absoluteDestination, fsExtraDefaultOptions);\n }\n\n logger.info(`copied \"${source}\" to \"${destination}`);\n};\n\nconst copyAction = async (tasks, options) => {\n const { runTasksInSeries, logger } = options;\n\n const taskOptions = {\n logger,\n };\n\n logger.debug(`processing copy tasks. tasks: ${tasks}`);\n\n await pExec(runTasksInSeries, tasks, async (task) => {\n try {\n await copy(task, taskOptions);\n } catch (err) {\n logger.error(`error while copying. task ${err}`);\n }\n });\n logger.debug(`copy tasks complete. tasks: ${tasks}`);\n};\n\nexport default copyAction;\n","import fsExtra from 'fs-extra';\n\nimport pExec from '../utils/p-exec.js';\n\nconst moveAction = async (tasks, options) => {\n const { runTasksInSeries, logger } = options;\n\n logger.debug(`processing move tasks. tasks: ${tasks}`);\n\n await pExec(runTasksInSeries, tasks, async (task) => {\n try {\n await fsExtra.move(task.absoluteSource, task.absoluteDestination);\n logger.info(`moved ${task.source} to ${task.destination}`);\n } catch (err) {\n logger.error(`unable to move ${task.source}, ${err}`);\n }\n });\n\n logger.debug(`move tasks complete. tasks: ${tasks}`);\n};\n\nexport default moveAction;\n","import del from 'del';\n\nimport pExec from '../utils/p-exec.js';\n\nconst deleteAction = async (tasks, taskOptions) => {\n const { runTasksInSeries, logger } = taskOptions;\n\n logger.debug(`processing delete tasks. tasks: ${tasks}`);\n\n await pExec(runTasksInSeries, tasks, async (task) => {\n const { options = {} } = task;\n\n try {\n await del(task.absoluteSource, options);\n logger.info(`deleted ${task.source}`);\n } catch (err) {\n logger.error(`unable to delete ${task.source}. ${err}`);\n }\n });\n\n logger.debug(`delete tasks complete. tasks: ${tasks}`);\n};\n\nexport default deleteAction;\n","import fs from 'node:fs';\n\nimport pExec from '../utils/p-exec.js';\n\nconst mkdirAction = async (tasks, options) => {\n const { runTasksInSeries, logger } = options;\n\n logger.debug(`processing mkdir tasks. tasks: ${tasks}`);\n\n await pExec(runTasksInSeries, tasks, async (task) => {\n try {\n await fs.promises.mkdir(task.absoluteSource, { recursive: true });\n logger.info(`created directory. ${task.source}`);\n } catch (err) {\n logger.error(`unable to create direcotry: ${task.source}. ${err}`);\n }\n });\n\n logger.debug(`mkdir tasks complete. tasks: ${tasks}`);\n};\n\nexport default mkdirAction;\n","import fs from 'node:fs';\nimport path from 'node:path';\nimport archiver from 'archiver';\nimport isGlob from 'is-glob';\nimport fsExtra from 'fs-extra';\n\nimport pExec from '../utils/p-exec.js';\n\nconst archive = async (task, { logger }) => {\n const { source, absoluteSource, absoluteDestination, options = {}, context } = task;\n const format = task.format || path.extname(absoluteDestination).replace('.', '');\n\n // Exclude destination file from archive\n const destFile = path.basename(absoluteDestination);\n const destDir = path.dirname(absoluteDestination);\n\n const ignore = ((Array.isArray(options.ignore) && options.ignore) || []).concat(destFile);\n const archiverOptions = { ignore, ...(options.globOptions || {}) };\n\n await fsExtra.ensureDir(destDir);\n\n const output = fs.createWriteStream(absoluteDestination);\n const archive = archiver(format, options);\n archive.pipe(output);\n\n logger.log(`archiving src ${source}`);\n\n if (isGlob(source)) {\n const opts = {\n ...archiverOptions,\n cwd: context,\n };\n\n await archive.glob(source, opts).finalize();\n } else {\n const sStat = fs.lstatSync(absoluteSource);\n\n if (sStat.isDirectory()) {\n const opts = {\n ...archiverOptions,\n cwd: absoluteSource,\n };\n\n await archive.glob('**/*', opts).finalize();\n }\n\n if (sStat.isFile()) {\n const opts = {\n name: path.basename(source),\n };\n\n await archive.file(absoluteSource, opts).finalize();\n }\n }\n\n logger.info(`archive created at \"${absoluteDestination}\"`);\n};\n\nconst archiveAction = async (tasks, options) => {\n const { runTasksInSeries, logger } = options;\n\n const taskOptions = {\n logger,\n };\n\n logger.debug(`processing archive tasks. tasks: ${tasks}`);\n await pExec(runTasksInSeries, tasks, async (task) => {\n try {\n await archive(task, taskOptions);\n } catch (err) {\n logger.error(`error while creating archive. task ${task}`);\n }\n });\n logger.debug(`archive tasks complete. tasks: ${tasks}`);\n};\n\nexport default archiveAction;\n","import path from 'node:path';\nimport { validate } from 'schema-utils';\n\nimport optionsSchema from './options-schema.js';\nimport pExec from './utils/p-exec.js';\nimport { copyAction, moveAction, mkdirAction, archiveAction, deleteAction } from './actions/index.js';\n\nconst PLUGIN_NAME = 'FileManagerPlugin';\n\nconst defaultOptions = {\n events: {\n onStart: [],\n onEnd: [],\n },\n runTasksInSeries: false,\n context: null,\n runOnceInWatchMode: false,\n};\n\nconst resolvePaths = (action, context) => {\n return action.map((task) => {\n if (typeof task === 'string') {\n const source = task;\n return {\n source,\n absoluteSource: path.isAbsolute(source) ? source : path.join(context, source),\n };\n }\n\n const { source, destination } = task;\n\n if (!destination) {\n return {\n ...task,\n source,\n absoluteSource: path.isAbsolute(source) ? source : path.join(context, source),\n };\n }\n\n const toType = /(?:\\\\|\\/)$/.test(destination) ? 'dir' : 'file';\n\n return {\n ...task,\n source,\n absoluteSource: path.isAbsolute(source) ? source : path.join(context, source),\n destination,\n absoluteDestination: path.isAbsolute(destination) ? destination : path.join(context, destination),\n toType,\n context,\n };\n });\n};\n\nclass FileManagerPlugin {\n constructor(options) {\n validate(optionsSchema, options, {\n name: PLUGIN_NAME,\n baseDataPath: 'actions',\n });\n\n this.options = { ...defaultOptions, ...options };\n }\n\n async applyAction(action, actionParams) {\n const opts = {\n runTasksInSeries: this.options.runTasksInSeries,\n logger: this.logger,\n };\n\n await action(resolvePaths(actionParams, this.context), opts);\n }\n\n async run(event) {\n for (const actionType in event) {\n const action = event[actionType];\n\n switch (actionType) {\n case 'delete':\n await this.applyAction(deleteAction, action);\n break;\n\n case 'mkdir':\n await this.applyAction(mkdirAction, action);\n break;\n\n case 'copy':\n await this.applyAction(copyAction, action);\n break;\n\n case 'move':\n await this.applyAction(moveAction, action);\n break;\n\n case 'archive':\n await this.applyAction(archiveAction, action);\n break;\n\n default:\n throw Error('Unknown action');\n }\n }\n }\n\n async execute(eventName) {\n const { events } = this.options;\n\n if (Array.isArray(events[eventName])) {\n const eventsArr = events[eventName];\n\n await pExec(true, eventsArr, async (event) => await this.run(event));\n return;\n }\n\n const event = events[eventName];\n await this.run(event);\n }\n\n apply(compiler) {\n this.context = this.options.context || compiler.options.context;\n this.logger = compiler.getInfrastructureLogger(PLUGIN_NAME);\n\n const onStart = async () => {\n await this.execute('onStart');\n };\n\n const onEnd = async () => {\n await this.execute('onEnd');\n };\n\n compiler.hooks.beforeRun.tapPromise(PLUGIN_NAME, onStart);\n compiler.hooks.afterEmit.tapPromise(PLUGIN_NAME, onEnd);\n\n let watchRunCount = 0;\n compiler.hooks.watchRun.tapPromise(PLUGIN_NAME, async () => {\n if (this.options.runOnceInWatchMode && watchRunCount > 0) {\n return;\n }\n\n ++watchRunCount;\n await onStart();\n });\n }\n}\n\nexport default FileManagerPlugin;\n"],"names":["isGlob","path","cpy","fs","fsExtra","del","archiver","validate"],"mappings":"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"}
\No newline at end of file