@modern-js/module-tools 2.15.0 → 2.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +38 -0
- package/compiled/postcss-custom-properties/index.js +1 -1
- package/compiled/postcss-custom-properties/package.json +1 -1
- package/dist/build.js +23 -66
- package/dist/build.js.map +1 -1
- package/dist/builder/build.js +114 -170
- package/dist/builder/build.js.map +1 -1
- package/dist/builder/clear.js +23 -65
- package/dist/builder/clear.js.map +1 -1
- package/dist/builder/copy.js +83 -164
- package/dist/builder/copy.js.map +1 -1
- package/dist/builder/dts/index.js +15 -28
- package/dist/builder/dts/index.js.map +1 -1
- package/dist/builder/dts/rollup.js +46 -120
- package/dist/builder/dts/rollup.js.map +1 -1
- package/dist/builder/dts/tsc.js +82 -141
- package/dist/builder/dts/tsc.js.map +1 -1
- package/dist/builder/index.js +34 -85
- package/dist/builder/index.js.map +1 -1
- package/dist/builder/platform.js +40 -93
- package/dist/builder/platform.js.map +1 -1
- package/dist/cli.js +35 -84
- package/dist/cli.js.map +1 -1
- package/dist/command.js +56 -136
- package/dist/command.js.map +1 -1
- package/dist/config/defineConfig.js +13 -42
- package/dist/config/defineConfig.js.map +1 -1
- package/dist/config/legacySchema.js +96 -52
- package/dist/config/legacySchema.js.map +1 -1
- package/dist/config/normalize.js +73 -149
- package/dist/config/normalize.js.map +1 -1
- package/dist/config/schema.d.ts +36 -0
- package/dist/config/schema.js +118 -56
- package/dist/config/schema.js.map +1 -1
- package/dist/config/transformLegacyConfig.js +152 -203
- package/dist/config/transformLegacyConfig.js.map +1 -1
- package/dist/constants/build.js +15 -27
- package/dist/constants/build.js.map +1 -1
- package/dist/constants/buildPresets.js +71 -84
- package/dist/constants/buildPresets.js.map +1 -1
- package/dist/constants/colors.js +28 -30
- package/dist/constants/colors.js.map +1 -1
- package/dist/constants/dts.js +13 -28
- package/dist/constants/dts.js.map +1 -1
- package/dist/constants/file.js +27 -30
- package/dist/constants/file.js.map +1 -1
- package/dist/constants/legacyBuildPresets.js +33 -49
- package/dist/constants/legacyBuildPresets.js.map +1 -1
- package/dist/constants/log.js +15 -33
- package/dist/constants/log.js.map +1 -1
- package/dist/dev.js +45 -91
- package/dist/dev.js.map +1 -1
- package/dist/error.js +37 -54
- package/dist/error.js.map +1 -1
- package/dist/hooks/build.js +22 -35
- package/dist/hooks/build.js.map +1 -1
- package/dist/hooks/dev.js +15 -33
- package/dist/hooks/dev.js.map +1 -1
- package/dist/hooks/index.js +15 -42
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/misc.js +10 -28
- package/dist/hooks/misc.js.map +1 -1
- package/dist/index.js +21 -35
- package/dist/index.js.map +1 -1
- package/dist/locale/en.d.ts +7 -2
- package/dist/locale/en.js +25 -32
- package/dist/locale/en.js.map +1 -1
- package/dist/locale/index.d.ts +14 -4
- package/dist/locale/index.js +18 -31
- package/dist/locale/index.js.map +1 -1
- package/dist/locale/zh.d.ts +7 -2
- package/dist/locale/zh.js +25 -32
- package/dist/locale/zh.js.map +1 -1
- package/dist/plugins.js +16 -39
- package/dist/plugins.js.map +1 -1
- package/dist/types/color.js +4 -15
- package/dist/types/color.js.map +1 -1
- package/dist/types/command.js +4 -15
- package/dist/types/command.js.map +1 -1
- package/dist/types/config/index.d.ts +6 -0
- package/dist/types/config/index.js +6 -17
- package/dist/types/config/index.js.map +1 -1
- package/dist/types/config/style.js +4 -15
- package/dist/types/config/style.js.map +1 -1
- package/dist/types/context.js +4 -15
- package/dist/types/context.js.map +1 -1
- package/dist/types/copy.js +4 -15
- package/dist/types/copy.js.map +1 -1
- package/dist/types/dts.js +4 -15
- package/dist/types/dts.js.map +1 -1
- package/dist/types/hooks.js +4 -15
- package/dist/types/hooks.js.map +1 -1
- package/dist/types/index.js +11 -22
- package/dist/types/index.js.map +1 -1
- package/dist/types/legacyConfig/index.js +4 -15
- package/dist/types/legacyConfig/index.js.map +1 -1
- package/dist/types/legacyConfig/output.js +4 -15
- package/dist/types/legacyConfig/output.js.map +1 -1
- package/dist/types/legacyConfig/source.js +4 -15
- package/dist/types/legacyConfig/source.js.map +1 -1
- package/dist/types/legacyConfig/tools.js +4 -15
- package/dist/types/legacyConfig/tools.js.map +1 -1
- package/dist/types/utils.js +4 -17
- package/dist/utils/builder.d.ts +20 -2
- package/dist/utils/builder.js +81 -68
- package/dist/utils/builder.js.map +1 -1
- package/dist/utils/common.js +10 -44
- package/dist/utils/common.js.map +1 -1
- package/dist/utils/config.js +108 -144
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/context.js +16 -59
- package/dist/utils/context.js.map +1 -1
- package/dist/utils/dts.js +69 -146
- package/dist/utils/dts.js.map +1 -1
- package/dist/utils/input.js +44 -87
- package/dist/utils/input.js.map +1 -1
- package/dist/utils/language.js +15 -60
- package/dist/utils/language.js.map +1 -1
- package/dist/utils/libuildPlugins.js +27 -67
- package/dist/utils/libuildPlugins.js.map +1 -1
- package/dist/utils/log.js +14 -61
- package/dist/utils/log.js.map +1 -1
- package/dist/utils/onExit.js +14 -61
- package/dist/utils/onExit.js.map +1 -1
- package/dist/utils/path.js +13 -59
- package/dist/utils/path.js.map +1 -1
- package/dist/utils/print.js +57 -105
- package/dist/utils/print.js.map +1 -1
- package/dist/utils/style.js +54 -106
- package/dist/utils/style.js.map +1 -1
- package/dist/utils/tspathsTransform.js +44 -81
- package/dist/utils/tspathsTransform.js.map +1 -1
- package/package.json +25 -20
- package/scripts/debug-mode.js +23 -21
- package/dist/types/utils.js.map +0 -1
package/dist/builder/copy.js
CHANGED
|
@@ -1,100 +1,48 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
-
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
-
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
-
var __spreadValues = (a, b) => {
|
|
13
|
-
for (var prop in b || (b = {}))
|
|
14
|
-
if (__hasOwnProp.call(b, prop))
|
|
15
|
-
__defNormalProp(a, prop, b[prop]);
|
|
16
|
-
if (__getOwnPropSymbols)
|
|
17
|
-
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
-
if (__propIsEnum.call(b, prop))
|
|
19
|
-
__defNormalProp(a, prop, b[prop]);
|
|
20
|
-
}
|
|
21
|
-
return a;
|
|
22
|
-
};
|
|
23
|
-
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
-
var __export = (target, all) => {
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
25
6
|
for (var name in all)
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
33
|
-
}
|
|
34
|
-
return to;
|
|
35
|
-
};
|
|
36
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
37
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
38
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
39
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
40
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
41
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
42
|
-
mod
|
|
43
|
-
));
|
|
44
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
45
|
-
var __async = (__this, __arguments, generator) => {
|
|
46
|
-
return new Promise((resolve, reject) => {
|
|
47
|
-
var fulfilled = (value) => {
|
|
48
|
-
try {
|
|
49
|
-
step(generator.next(value));
|
|
50
|
-
} catch (e) {
|
|
51
|
-
reject(e);
|
|
52
|
-
}
|
|
53
|
-
};
|
|
54
|
-
var rejected = (value) => {
|
|
55
|
-
try {
|
|
56
|
-
step(generator.throw(value));
|
|
57
|
-
} catch (e) {
|
|
58
|
-
reject(e);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
62
|
-
step((generator = generator.apply(__this, __arguments)).next());
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
var copy_exports = {};
|
|
66
|
-
__export(copy_exports, {
|
|
67
|
-
copyTask: () => copyTask,
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
68
13
|
runPatterns: () => runPatterns,
|
|
69
|
-
watchCopyFiles: () => watchCopyFiles
|
|
14
|
+
watchCopyFiles: () => watchCopyFiles,
|
|
15
|
+
copyTask: () => copyTask
|
|
70
16
|
});
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
17
|
+
const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
|
|
18
|
+
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
|
|
19
|
+
const _path = /* @__PURE__ */ _interop_require_default._(require("path"));
|
|
20
|
+
const _logger = require("@modern-js/utils/logger");
|
|
74
21
|
const watchMap = /* @__PURE__ */ new Map();
|
|
75
|
-
const runPatterns = (pattern, options) =>
|
|
76
|
-
|
|
77
|
-
const {
|
|
78
|
-
const { default: normalizePath } = yield Promise.resolve().then(() => __toESM(require("../../compiled/normalize-path")));
|
|
22
|
+
const runPatterns = async (pattern, options) => {
|
|
23
|
+
const { fs, fastGlob, globby } = await Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("@modern-js/utils")));
|
|
24
|
+
const { default: normalizePath } = await Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("../../compiled/normalize-path")));
|
|
79
25
|
const { appDirectory, enableCopySync = false } = options;
|
|
80
26
|
const { from, globOptions = {} } = pattern;
|
|
81
|
-
const targetPattern =
|
|
82
|
-
|
|
27
|
+
const targetPattern = {
|
|
28
|
+
...pattern
|
|
29
|
+
};
|
|
30
|
+
const normalizedFrom = _path.default.normalize(from);
|
|
83
31
|
const defaultAbsContext = options.defaultContext;
|
|
84
32
|
if (typeof pattern.context === "string") {
|
|
85
|
-
targetPattern.context =
|
|
33
|
+
targetPattern.context = _path.default.isAbsolute(pattern.context) ? pattern.context : _path.default.join(appDirectory, pattern.context);
|
|
86
34
|
} else {
|
|
87
35
|
targetPattern.context = defaultAbsContext;
|
|
88
36
|
}
|
|
89
37
|
let absoluteFrom;
|
|
90
|
-
if (
|
|
38
|
+
if (_path.default.isAbsolute(normalizedFrom)) {
|
|
91
39
|
absoluteFrom = normalizedFrom;
|
|
92
40
|
} else {
|
|
93
|
-
absoluteFrom =
|
|
41
|
+
absoluteFrom = _path.default.resolve(targetPattern.context, normalizedFrom);
|
|
94
42
|
}
|
|
95
43
|
let stats;
|
|
96
44
|
try {
|
|
97
|
-
stats =
|
|
45
|
+
stats = await fs.stat(absoluteFrom);
|
|
98
46
|
} catch (error) {
|
|
99
47
|
}
|
|
100
48
|
let fromType;
|
|
@@ -113,141 +61,112 @@ const runPatterns = (pattern, options) => __async(void 0, null, function* () {
|
|
|
113
61
|
switch (fromType) {
|
|
114
62
|
case "dir":
|
|
115
63
|
targetPattern.context = absoluteFrom;
|
|
116
|
-
glob =
|
|
117
|
-
|
|
118
|
-
"**/*"
|
|
119
|
-
);
|
|
120
|
-
absoluteFrom = import_path.default.join(absoluteFrom, "**/*");
|
|
64
|
+
glob = _path.default.posix.join(fastGlob.escapePath(normalizePath(_path.default.resolve(absoluteFrom))), "**/*");
|
|
65
|
+
absoluteFrom = _path.default.join(absoluteFrom, "**/*");
|
|
121
66
|
if (typeof globOptions.dot === "undefined") {
|
|
122
67
|
globOptions.dot = true;
|
|
123
68
|
}
|
|
124
69
|
break;
|
|
125
70
|
case "file":
|
|
126
|
-
targetPattern.context =
|
|
127
|
-
glob = fastGlob.escapePath(normalizePath(
|
|
71
|
+
targetPattern.context = _path.default.dirname(absoluteFrom);
|
|
72
|
+
glob = fastGlob.escapePath(normalizePath(_path.default.resolve(absoluteFrom)));
|
|
128
73
|
if (typeof globOptions.dot === "undefined") {
|
|
129
74
|
globOptions.dot = true;
|
|
130
75
|
}
|
|
131
76
|
break;
|
|
132
77
|
case "glob":
|
|
133
78
|
default: {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
normalizePath(
|
|
137
|
-
import_path.default.resolve((_a = targetPattern.context) != null ? _a : appDirectory)
|
|
138
|
-
)
|
|
139
|
-
),
|
|
140
|
-
from
|
|
141
|
-
);
|
|
79
|
+
var _targetPattern_context;
|
|
80
|
+
glob = _path.default.isAbsolute(from) ? from : _path.default.posix.join(fastGlob.escapePath(normalizePath(_path.default.resolve((_targetPattern_context = targetPattern.context) !== null && _targetPattern_context !== void 0 ? _targetPattern_context : appDirectory))), from);
|
|
142
81
|
}
|
|
143
82
|
}
|
|
144
|
-
const globEntries =
|
|
83
|
+
const globEntries = await globby(glob, {
|
|
84
|
+
...{
|
|
85
|
+
followSymbolicLinks: true
|
|
86
|
+
},
|
|
87
|
+
...targetPattern.globOptions || {},
|
|
145
88
|
cwd: targetPattern.context,
|
|
146
89
|
objectMode: true
|
|
147
|
-
})
|
|
148
|
-
const { default: pMap } =
|
|
149
|
-
pMap(globEntries, (globEntry) =>
|
|
150
|
-
var _a2;
|
|
90
|
+
});
|
|
91
|
+
const { default: pMap } = await Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("../../compiled/p-map")));
|
|
92
|
+
pMap(globEntries, async (globEntry) => {
|
|
151
93
|
if (!globEntry.dirent.isFile()) {
|
|
152
94
|
return;
|
|
153
95
|
}
|
|
154
96
|
const from2 = globEntry.path;
|
|
155
|
-
const absoluteFrom2 =
|
|
156
|
-
const to =
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
const
|
|
160
|
-
const
|
|
161
|
-
|
|
162
|
-
absoluteFrom2
|
|
163
|
-
);
|
|
164
|
-
const filename = toType === "dir" ? import_path.default.join(to, relativeFrom) : to;
|
|
165
|
-
const absoluteTo = import_path.default.isAbsolute(filename) ? filename : import_path.default.join(options.outDir, filename);
|
|
97
|
+
const absoluteFrom2 = _path.default.resolve(targetPattern.context, from2);
|
|
98
|
+
const to = _path.default.normalize(typeof targetPattern.to !== "undefined" ? targetPattern.to : "");
|
|
99
|
+
const toType = _path.default.extname(to) === "" || to.slice(-1) === _path.default.sep ? "dir" : "file";
|
|
100
|
+
var _targetPattern_context2;
|
|
101
|
+
const relativeFrom = _path.default.relative((_targetPattern_context2 = targetPattern.context) !== null && _targetPattern_context2 !== void 0 ? _targetPattern_context2 : defaultAbsContext, absoluteFrom2);
|
|
102
|
+
const filename = toType === "dir" ? _path.default.join(to, relativeFrom) : to;
|
|
103
|
+
const absoluteTo = _path.default.isAbsolute(filename) ? filename : _path.default.join(options.outDir, filename);
|
|
166
104
|
if (options.watch) {
|
|
167
105
|
watchMap.set(absoluteFrom2, absoluteTo);
|
|
168
106
|
}
|
|
169
107
|
if (enableCopySync) {
|
|
170
108
|
fs.copySync(absoluteFrom2, absoluteTo);
|
|
171
109
|
} else {
|
|
172
|
-
|
|
110
|
+
await fs.copy(absoluteFrom2, absoluteTo);
|
|
173
111
|
}
|
|
174
|
-
})
|
|
175
|
-
}
|
|
176
|
-
const watchCopyFiles = (options, copyConfig) =>
|
|
177
|
-
const { watch, fs, logger
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
const watchCopyFiles = async (options, copyConfig) => {
|
|
115
|
+
const { watch, fs, logger, createDebugger } = await Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("@modern-js/utils")));
|
|
178
116
|
const debug = createDebugger("module-tools:copy-watch");
|
|
179
117
|
debug("watchMap", watchMap);
|
|
180
|
-
const { SectionTitleStatus, CopyLogPrefix } =
|
|
181
|
-
const { watchSectionTitle } =
|
|
118
|
+
const { SectionTitleStatus, CopyLogPrefix } = await Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("../constants/log")));
|
|
119
|
+
const { watchSectionTitle } = await Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("../utils/log")));
|
|
182
120
|
const watchList = Array.from(watchMap.keys());
|
|
183
121
|
debug("watchList", watchList);
|
|
184
|
-
watch(watchList,
|
|
185
|
-
var
|
|
122
|
+
watch(watchList, async ({ changedFilePath, changeType }) => {
|
|
123
|
+
var _copyConfig_options;
|
|
186
124
|
const result = watchMap.get(changedFilePath);
|
|
187
125
|
if (!result) {
|
|
188
126
|
return;
|
|
189
127
|
}
|
|
190
|
-
const formatFilePath =
|
|
128
|
+
const formatFilePath = _path.default.relative(options.appDirectory, changedFilePath);
|
|
191
129
|
if (changeType === "unlink") {
|
|
192
130
|
fs.remove(result);
|
|
193
|
-
|
|
194
|
-
yield watchSectionTitle(
|
|
195
|
-
CopyLogPrefix,
|
|
196
|
-
SectionTitleStatus.Log,
|
|
197
|
-
`${formatFilePath} removed`
|
|
198
|
-
)
|
|
199
|
-
);
|
|
131
|
+
logger.log(await watchSectionTitle(CopyLogPrefix, SectionTitleStatus.Log, `${formatFilePath} removed`));
|
|
200
132
|
return;
|
|
201
133
|
}
|
|
202
|
-
if (
|
|
134
|
+
if (copyConfig === null || copyConfig === void 0 ? void 0 : (_copyConfig_options = copyConfig.options) === null || _copyConfig_options === void 0 ? void 0 : _copyConfig_options.enableCopySync) {
|
|
203
135
|
fs.copySync(changedFilePath, result);
|
|
204
136
|
} else {
|
|
205
|
-
|
|
137
|
+
await fs.copy(changedFilePath, result);
|
|
206
138
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
)
|
|
213
|
-
);
|
|
214
|
-
}));
|
|
215
|
-
});
|
|
216
|
-
const copyTask = (buildConfig, options) => __async(void 0, null, function* () {
|
|
217
|
-
var _a;
|
|
139
|
+
logger.log(await watchSectionTitle(CopyLogPrefix, SectionTitleStatus.Log, `${formatFilePath} changed`));
|
|
140
|
+
});
|
|
141
|
+
};
|
|
142
|
+
const copyTask = async (buildConfig, options) => {
|
|
143
|
+
var _copyConfig_options;
|
|
218
144
|
const copyConfig = buildConfig.copy;
|
|
219
145
|
if (!copyConfig.patterns || copyConfig.patterns.length === 0) {
|
|
220
146
|
return;
|
|
221
147
|
}
|
|
222
|
-
const { default: pMap } =
|
|
223
|
-
const concurrency = (
|
|
148
|
+
const { default: pMap } = await Promise.resolve().then(() => /* @__PURE__ */ _interop_require_wildcard._(require("../../compiled/p-map")));
|
|
149
|
+
const concurrency = (copyConfig === null || copyConfig === void 0 ? void 0 : (_copyConfig_options = copyConfig.options) === null || _copyConfig_options === void 0 ? void 0 : _copyConfig_options.concurrency) || 100;
|
|
224
150
|
try {
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
(copyOption
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
);
|
|
151
|
+
await pMap(copyConfig.patterns, async (copyOption) => {
|
|
152
|
+
var _copyConfig_options2;
|
|
153
|
+
await runPatterns(copyOption, {
|
|
154
|
+
...options,
|
|
155
|
+
enableCopySync: (_copyConfig_options2 = copyConfig.options) === null || _copyConfig_options2 === void 0 ? void 0 : _copyConfig_options2.enableCopySync,
|
|
156
|
+
outDir: buildConfig.outDir,
|
|
157
|
+
defaultContext: buildConfig.sourceDir
|
|
158
|
+
});
|
|
159
|
+
}, {
|
|
160
|
+
concurrency
|
|
161
|
+
});
|
|
237
162
|
} catch (e) {
|
|
238
163
|
if (e instanceof Error) {
|
|
239
|
-
|
|
164
|
+
_logger.logger.error(`copy error: ${e.message}`);
|
|
240
165
|
}
|
|
241
166
|
}
|
|
242
167
|
if (options.watch) {
|
|
243
|
-
|
|
168
|
+
await watchCopyFiles(options, copyConfig);
|
|
244
169
|
}
|
|
245
|
-
}
|
|
246
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
247
|
-
0 && (module.exports = {
|
|
248
|
-
copyTask,
|
|
249
|
-
runPatterns,
|
|
250
|
-
watchCopyFiles
|
|
251
|
-
});
|
|
170
|
+
};
|
|
252
171
|
|
|
253
172
|
//# sourceMappingURL=copy.js.map
|
package/dist/builder/copy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"mappings":"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","names":["from","absoluteFrom","_a"],"sources":["../../src/builder/copy.ts"],"sourcesContent":["import path from 'path';\nimport { logger } from '@modern-js/utils/logger';\nimport type { CopyOptions, CopyPattern } from '../types/copy';\nimport type { BaseBuildConfig } from '../types/config';\n\nconst watchMap = new Map<string, string>();\n\nexport const runPatterns = async (\n pattern: CopyPattern,\n options: {\n appDirectory: string;\n enableCopySync?: boolean;\n outDir: string;\n defaultContext: string;\n watch?: boolean;\n },\n) => {\n const { fs, fastGlob, globby } = await import('@modern-js/utils');\n const { default: normalizePath } = await import(\n '../../compiled/normalize-path'\n );\n const { appDirectory, enableCopySync = false } = options;\n const { from, globOptions = {} } = pattern;\n const targetPattern: CopyPattern = { ...pattern };\n const normalizedFrom = path.normalize(from);\n const defaultAbsContext = options.defaultContext;\n\n // when context is relative path\n if (typeof pattern.context === 'string') {\n targetPattern.context = path.isAbsolute(pattern.context)\n ? pattern.context\n : path.join(appDirectory, pattern.context);\n } else {\n targetPattern.context = defaultAbsContext;\n }\n\n let absoluteFrom;\n if (path.isAbsolute(normalizedFrom)) {\n absoluteFrom = normalizedFrom;\n } else {\n absoluteFrom = path.resolve(targetPattern.context, normalizedFrom);\n }\n\n let stats;\n try {\n stats = await fs.stat(absoluteFrom);\n } catch (error) {\n // Do Nothing\n }\n\n let fromType: 'file' | 'dir' | 'glob';\n if (stats) {\n if (stats.isDirectory()) {\n fromType = 'dir';\n } else if (stats.isFile()) {\n fromType = 'file';\n } else {\n fromType = 'glob';\n }\n } else {\n fromType = 'glob';\n }\n\n let glob;\n\n switch (fromType) {\n case 'dir':\n targetPattern.context = absoluteFrom;\n glob = path.posix.join(\n fastGlob.escapePath(normalizePath(path.resolve(absoluteFrom))),\n '**/*',\n );\n absoluteFrom = path.join(absoluteFrom, '**/*');\n\n if (typeof globOptions.dot === 'undefined') {\n globOptions.dot = true;\n }\n break;\n case 'file':\n targetPattern.context = path.dirname(absoluteFrom);\n glob = fastGlob.escapePath(normalizePath(path.resolve(absoluteFrom)));\n\n if (typeof globOptions.dot === 'undefined') {\n globOptions.dot = true;\n }\n break;\n case 'glob':\n default: {\n glob = path.isAbsolute(from)\n ? from\n : path.posix.join(\n fastGlob.escapePath(\n normalizePath(\n path.resolve(targetPattern.context ?? appDirectory),\n ),\n ),\n from,\n );\n }\n }\n\n const globEntries = await globby(glob, {\n ...{ followSymbolicLinks: true },\n ...(targetPattern.globOptions || {}),\n cwd: targetPattern.context,\n objectMode: true,\n });\n const { default: pMap } = await import('../../compiled/p-map');\n pMap(globEntries, async globEntry => {\n if (!globEntry.dirent.isFile()) {\n return;\n }\n\n const from = globEntry.path;\n const absoluteFrom = path.resolve(targetPattern.context!, from);\n const to = path.normalize(\n typeof targetPattern.to !== 'undefined' ? targetPattern.to : '',\n );\n const toType =\n path.extname(to) === '' || to.slice(-1) === path.sep ? 'dir' : 'file';\n\n const relativeFrom = path.relative(\n targetPattern.context ?? defaultAbsContext,\n absoluteFrom,\n );\n\n const filename = toType === 'dir' ? path.join(to, relativeFrom) : to;\n\n const absoluteTo = path.isAbsolute(filename)\n ? filename\n : path.join(options.outDir, filename);\n\n if (options.watch) {\n watchMap.set(absoluteFrom, absoluteTo);\n }\n\n if (enableCopySync) {\n fs.copySync(absoluteFrom, absoluteTo);\n } else {\n await fs.copy(absoluteFrom, absoluteTo);\n }\n });\n};\n\nexport const watchCopyFiles = async (\n options: {\n appDirectory: string;\n },\n copyConfig: CopyOptions,\n) => {\n const { watch, fs, logger, createDebugger } = await import(\n '@modern-js/utils'\n );\n const debug = createDebugger('module-tools:copy-watch');\n\n debug('watchMap', watchMap);\n\n const { SectionTitleStatus, CopyLogPrefix } = await import(\n '../constants/log'\n );\n const { watchSectionTitle } = await import('../utils/log');\n const watchList = Array.from(watchMap.keys());\n\n debug('watchList', watchList);\n\n watch(watchList, async ({ changedFilePath, changeType }) => {\n const result = watchMap.get(changedFilePath);\n if (!result) {\n return;\n }\n\n const formatFilePath = path.relative(options.appDirectory, changedFilePath);\n\n if (changeType === 'unlink') {\n fs.remove(result);\n logger.log(\n await watchSectionTitle(\n CopyLogPrefix,\n SectionTitleStatus.Log,\n `${formatFilePath} removed`,\n ),\n );\n return;\n }\n\n if (copyConfig?.options?.enableCopySync) {\n fs.copySync(changedFilePath, result);\n } else {\n await fs.copy(changedFilePath, result);\n }\n\n logger.log(\n await watchSectionTitle(\n CopyLogPrefix,\n SectionTitleStatus.Log,\n `${formatFilePath} changed`,\n ),\n );\n });\n};\n\nexport const copyTask = async (\n buildConfig: BaseBuildConfig,\n options: {\n appDirectory: string;\n watch?: boolean;\n },\n) => {\n const copyConfig = buildConfig.copy;\n\n if (!copyConfig.patterns || copyConfig.patterns.length === 0) {\n return;\n }\n\n const { default: pMap } = await import('../../compiled/p-map');\n const concurrency = copyConfig?.options?.concurrency || 100;\n try {\n await pMap(\n copyConfig.patterns,\n async copyOption => {\n await runPatterns(copyOption, {\n ...options,\n enableCopySync: copyConfig.options?.enableCopySync,\n outDir: buildConfig.outDir,\n defaultContext: buildConfig.sourceDir,\n });\n },\n { concurrency },\n );\n } catch (e) {\n if (e instanceof Error) {\n logger.error(`copy error: ${e.message}`);\n }\n }\n if (options.watch) {\n await watchCopyFiles(options, copyConfig);\n }\n};\n"]}
|
|
1
|
+
{"version":3,"file":null,"mappings":"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","names":["runPatterns","watchCopyFiles","copyTask","watchMap","Map","pattern","options","fs","fastGlob","globby","default","normalizePath","appDirectory","enableCopySync","from","globOptions","targetPattern","normalizedFrom","path","normalize","defaultAbsContext","defaultContext","context","isAbsolute","join","absoluteFrom","resolve","stats","stat","error","fromType","isDirectory","isFile","glob","posix","escapePath","dot","dirname","globEntries","followSymbolicLinks","cwd","objectMode","pMap","globEntry","dirent","to","toType","extname","slice","sep","relativeFrom","relative","filename","absoluteTo","outDir","watch","set","copySync","copy","copyConfig","logger","createDebugger","debug","SectionTitleStatus","CopyLogPrefix","watchSectionTitle","watchList","Array","keys","changedFilePath","changeType","result","get","formatFilePath","remove","log","Log","buildConfig","patterns","length","concurrency","copyOption","sourceDir","e","Error","message"],"sources":["../../src/builder/home/runner/work/modern.js/modern.js/packages/solutions/module-tools/src/builder/copy.ts"],"sourcesContent":["import path from 'path';\nimport { logger } from '@modern-js/utils/logger';\nimport type { CopyOptions, CopyPattern } from '../types/copy';\nimport type { BaseBuildConfig } from '../types/config';\n\nconst watchMap = new Map<string, string>();\n\nexport const runPatterns = async (\n pattern: CopyPattern,\n options: {\n appDirectory: string;\n enableCopySync?: boolean;\n outDir: string;\n defaultContext: string;\n watch?: boolean;\n },\n) => {\n const { fs, fastGlob, globby } = await import('@modern-js/utils');\n const { default: normalizePath } = await import(\n '../../compiled/normalize-path'\n );\n const { appDirectory, enableCopySync = false } = options;\n const { from, globOptions = {} } = pattern;\n const targetPattern: CopyPattern = { ...pattern };\n const normalizedFrom = path.normalize(from);\n const defaultAbsContext = options.defaultContext;\n\n // when context is relative path\n if (typeof pattern.context === 'string') {\n targetPattern.context = path.isAbsolute(pattern.context)\n ? pattern.context\n : path.join(appDirectory, pattern.context);\n } else {\n targetPattern.context = defaultAbsContext;\n }\n\n let absoluteFrom;\n if (path.isAbsolute(normalizedFrom)) {\n absoluteFrom = normalizedFrom;\n } else {\n absoluteFrom = path.resolve(targetPattern.context, normalizedFrom);\n }\n\n let stats;\n try {\n stats = await fs.stat(absoluteFrom);\n } catch (error) {\n // Do Nothing\n }\n\n let fromType: 'file' | 'dir' | 'glob';\n if (stats) {\n if (stats.isDirectory()) {\n fromType = 'dir';\n } else if (stats.isFile()) {\n fromType = 'file';\n } else {\n fromType = 'glob';\n }\n } else {\n fromType = 'glob';\n }\n\n let glob;\n\n switch (fromType) {\n case 'dir':\n targetPattern.context = absoluteFrom;\n glob = path.posix.join(\n fastGlob.escapePath(normalizePath(path.resolve(absoluteFrom))),\n '**/*',\n );\n absoluteFrom = path.join(absoluteFrom, '**/*');\n\n if (typeof globOptions.dot === 'undefined') {\n globOptions.dot = true;\n }\n break;\n case 'file':\n targetPattern.context = path.dirname(absoluteFrom);\n glob = fastGlob.escapePath(normalizePath(path.resolve(absoluteFrom)));\n\n if (typeof globOptions.dot === 'undefined') {\n globOptions.dot = true;\n }\n break;\n case 'glob':\n default: {\n glob = path.isAbsolute(from)\n ? from\n : path.posix.join(\n fastGlob.escapePath(\n normalizePath(\n path.resolve(targetPattern.context ?? appDirectory),\n ),\n ),\n from,\n );\n }\n }\n\n const globEntries = await globby(glob, {\n ...{ followSymbolicLinks: true },\n ...(targetPattern.globOptions || {}),\n cwd: targetPattern.context,\n objectMode: true,\n });\n const { default: pMap } = await import('../../compiled/p-map');\n pMap(globEntries, async globEntry => {\n if (!globEntry.dirent.isFile()) {\n return;\n }\n\n const from = globEntry.path;\n const absoluteFrom = path.resolve(targetPattern.context!, from);\n const to = path.normalize(\n typeof targetPattern.to !== 'undefined' ? targetPattern.to : '',\n );\n const toType =\n path.extname(to) === '' || to.slice(-1) === path.sep ? 'dir' : 'file';\n\n const relativeFrom = path.relative(\n targetPattern.context ?? defaultAbsContext,\n absoluteFrom,\n );\n\n const filename = toType === 'dir' ? path.join(to, relativeFrom) : to;\n\n const absoluteTo = path.isAbsolute(filename)\n ? filename\n : path.join(options.outDir, filename);\n\n if (options.watch) {\n watchMap.set(absoluteFrom, absoluteTo);\n }\n\n if (enableCopySync) {\n fs.copySync(absoluteFrom, absoluteTo);\n } else {\n await fs.copy(absoluteFrom, absoluteTo);\n }\n });\n};\n\nexport const watchCopyFiles = async (\n options: {\n appDirectory: string;\n },\n copyConfig: CopyOptions,\n) => {\n const { watch, fs, logger, createDebugger } = await import(\n '@modern-js/utils'\n );\n const debug = createDebugger('module-tools:copy-watch');\n\n debug('watchMap', watchMap);\n\n const { SectionTitleStatus, CopyLogPrefix } = await import(\n '../constants/log'\n );\n const { watchSectionTitle } = await import('../utils/log');\n const watchList = Array.from(watchMap.keys());\n\n debug('watchList', watchList);\n\n watch(watchList, async ({ changedFilePath, changeType }) => {\n const result = watchMap.get(changedFilePath);\n if (!result) {\n return;\n }\n\n const formatFilePath = path.relative(options.appDirectory, changedFilePath);\n\n if (changeType === 'unlink') {\n fs.remove(result);\n logger.log(\n await watchSectionTitle(\n CopyLogPrefix,\n SectionTitleStatus.Log,\n `${formatFilePath} removed`,\n ),\n );\n return;\n }\n\n if (copyConfig?.options?.enableCopySync) {\n fs.copySync(changedFilePath, result);\n } else {\n await fs.copy(changedFilePath, result);\n }\n\n logger.log(\n await watchSectionTitle(\n CopyLogPrefix,\n SectionTitleStatus.Log,\n `${formatFilePath} changed`,\n ),\n );\n });\n};\n\nexport const copyTask = async (\n buildConfig: BaseBuildConfig,\n options: {\n appDirectory: string;\n watch?: boolean;\n },\n) => {\n const copyConfig = buildConfig.copy;\n\n if (!copyConfig.patterns || copyConfig.patterns.length === 0) {\n return;\n }\n\n const { default: pMap } = await import('../../compiled/p-map');\n const concurrency = copyConfig?.options?.concurrency || 100;\n try {\n await pMap(\n copyConfig.patterns,\n async copyOption => {\n await runPatterns(copyOption, {\n ...options,\n enableCopySync: copyConfig.options?.enableCopySync,\n outDir: buildConfig.outDir,\n defaultContext: buildConfig.sourceDir,\n });\n },\n { concurrency },\n );\n } catch (e) {\n if (e instanceof Error) {\n logger.error(`copy error: ${e.message}`);\n }\n }\n if (options.watch) {\n await watchCopyFiles(options, copyConfig);\n }\n};\n"]}
|
|
@@ -1,32 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all)
|
|
7
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
-
};
|
|
9
|
-
var __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
-
}
|
|
15
|
-
return to;
|
|
16
|
-
};
|
|
17
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
-
var dts_exports = {};
|
|
19
|
-
__export(dts_exports, {
|
|
20
|
-
runRollup: () => import_rollup.runRollup,
|
|
21
|
-
runTsc: () => import_tsc.runTsc
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
22
4
|
});
|
|
23
|
-
|
|
24
|
-
var
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name]
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
runRollup: () => _rollup.runRollup,
|
|
14
|
+
runTsc: () => _tsc.runTsc
|
|
30
15
|
});
|
|
16
|
+
const _rollup = require("./rollup");
|
|
17
|
+
const _tsc = require("./tsc");
|
|
31
18
|
|
|
32
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":null,"mappings":"
|
|
1
|
+
{"version":3,"file":null,"mappings":";;;;;;;;;;;;EAASA,WAAS,MAATA;EACAC,QAAM,MAANA;;wBADiB;qBACH;","names":["runRollup","runTsc"],"sources":["../../../src/builder/dts/home/runner/work/modern.js/modern.js/packages/solutions/module-tools/src/builder/dts/index.ts"],"sourcesContent":["export { runRollup } from './rollup';\nexport { runTsc } from './tsc';\n"]}
|