1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.default = void 0;
|
7 |
|
8 | var _del = _interopRequireDefault(require("del"));
|
9 |
|
10 | var _sbFs = _interopRequireDefault(require("sb-fs"));
|
11 |
|
12 | var _path = _interopRequireDefault(require("path"));
|
13 |
|
14 | var _pMap = _interopRequireDefault(require("p-map"));
|
15 |
|
16 | var _makeDir = _interopRequireDefault(require("make-dir"));
|
17 |
|
18 | var _anymatch = _interopRequireDefault(require("anymatch"));
|
19 |
|
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21 |
|
22 | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
23 |
|
24 | function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
25 |
|
26 | function iterate(_x) {
|
27 | return _iterate.apply(this, arguments);
|
28 | }
|
29 |
|
30 | function _iterate() {
|
31 | _iterate = _asyncToGenerator(function* ({
|
32 | extensions,
|
33 | getOutputFilePath,
|
34 | rootDirectory,
|
35 | sourceDirectory,
|
36 | outputDirectory,
|
37 | ignored,
|
38 | keepExtraFiles,
|
39 | filesToKeep,
|
40 | callback
|
41 | }) {
|
42 | const contents = yield _sbFs.default.readdir(sourceDirectory);
|
43 | let outputStats;
|
44 | let outputDirectoryExists = false;
|
45 |
|
46 | try {
|
47 | outputStats = yield _sbFs.default.stat(outputDirectory);
|
48 | } catch (_) {
|
49 |
|
50 | }
|
51 |
|
52 | if (outputStats) {
|
53 | if (outputStats.isDirectory()) {
|
54 | outputDirectoryExists = true;
|
55 | } else {
|
56 | yield (0, _del.default)(outputDirectory);
|
57 | outputStats = null;
|
58 | }
|
59 | }
|
60 |
|
61 | const outputContents = outputStats ? yield _sbFs.default.readdir(outputDirectory) : [];
|
62 |
|
63 | if (!keepExtraFiles) {
|
64 | const whitelist = filesToKeep(contents).map(getOutputFilePath);
|
65 | const filesToDelete = outputContents.filter(item => !whitelist.includes(item)).map(item => _path.default.resolve(outputDirectory, item));
|
66 | yield Promise.all(filesToDelete.map(item => (0, _del.default)(item)));
|
67 | }
|
68 |
|
69 | yield (0, _pMap.default)(contents,
|
70 |
|
71 | function () {
|
72 | var _ref = _asyncToGenerator(function* (fileName) {
|
73 | const filePath = _path.default.join(sourceDirectory, fileName);
|
74 |
|
75 | const stat = yield _sbFs.default.lstat(filePath);
|
76 |
|
77 | if (stat.isSymbolicLink()) {
|
78 |
|
79 | return;
|
80 | }
|
81 |
|
82 | if ((0, _anymatch.default)(ignored, fileName) || (0, _anymatch.default)(ignored, filePath) || (0, _anymatch.default)(ignored, _path.default.relative(rootDirectory, filePath))) {
|
83 |
|
84 | return;
|
85 | }
|
86 |
|
87 | if (stat.isFile()) {
|
88 | if (!extensions.includes(_path.default.extname(fileName))) return;
|
89 |
|
90 | if (!outputDirectoryExists) {
|
91 | yield (0, _makeDir.default)(outputDirectory);
|
92 | outputDirectoryExists = true;
|
93 | }
|
94 |
|
95 | const outputFile = getOutputFilePath(_path.default.join(outputDirectory, fileName));
|
96 | yield callback(filePath, outputFile, stat);
|
97 | } else if (stat.isDirectory()) {
|
98 | yield iterate({
|
99 | extensions,
|
100 | getOutputFilePath,
|
101 | rootDirectory,
|
102 | sourceDirectory: _path.default.join(sourceDirectory, fileName),
|
103 | outputDirectory: _path.default.join(outputDirectory, fileName),
|
104 | ignored,
|
105 | keepExtraFiles,
|
106 | filesToKeep,
|
107 | callback
|
108 | });
|
109 | }
|
110 | });
|
111 |
|
112 | return function (_x2) {
|
113 | return _ref.apply(this, arguments);
|
114 | };
|
115 | }());
|
116 | });
|
117 | return _iterate.apply(this, arguments);
|
118 | }
|
119 |
|
120 | var _default = iterate;
|
121 | exports.default = _default; |
\ | No newline at end of file |