'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var promises = require('fs/promises'); var fs = require('fs'); var path = require('path'); var fg = require('fast-glob'); function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } var fg__default = /*#__PURE__*/_interopDefaultLegacy(fg); async function prepare_dir(dir) { const parents = path.dirname(dir); await promises.access(parents, fs.constants.F_OK).catch(async (err) => { if (err.code == 'ENOENT') await prepare_dir(parents); }); await promises.access(dir, fs.constants.F_OK).catch(async (err) => { if (err.code == 'ENOENT') await promises.mkdir(dir).catch(err => { if (err.code !== 'EEXIST') console.log(err); }); }); } async function copyToDir(src, tarDir) { await prepare_dir(tarDir); let notExsit = false; const fstat = await promises.stat(src).catch(err => { if (err.code == 'ENOENT') { console.log(tarDir + ' is not exist'); notExsit = true; } }); if (notExsit) return; const tarPath = path.join(tarDir, path.basename(src)); if (fstat.isDirectory()) { for (const file of await promises.readdir(src)) { const srcPath = path.join(src, file); copyToDir(srcPath, tarPath); } } else { await promises.copyFile(src, tarPath).catch(err => { console.log(`The file "${src}" could not be copied`); }); } } function copy(copyList, options = {}) { const { hook = 'buildEnd' } = options; copyList = Array.isArray(copyList) && copyList.length ? copyList : []; return { name: 'copy', apply: 'build', [hook]: async () => { for (const { src, dest } of copyList) { const matchedSrcs = await fg__default['default'](src, { expandDirectories: false, onlyFiles: false, }); if (matchedSrcs.length > 0) { for (const src of matchedSrcs) { if (Array.isArray(dest)) { for (const dest of tasks) { await copyToDir(src, dest); } } else { await copyToDir(src, dest); } } } } } } } exports.copy = copy;