@wyw-in-js/transform 0.8.0 → 1.0.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/esm/babel.js.map +1 -1
- package/esm/cache.js +15 -4
- package/esm/cache.js.map +1 -1
- package/esm/debug/fileReporter.js.map +1 -1
- package/esm/evaluators/index.js.map +1 -1
- package/esm/index.js.map +1 -1
- package/esm/module.js +174 -15
- package/esm/module.js.map +1 -1
- package/esm/options/buildOptions.js +123 -4
- package/esm/options/buildOptions.js.map +1 -1
- package/esm/options/buildOptions.test.js +41 -0
- package/esm/options/buildOptions.test.js.map +1 -0
- package/esm/options/loadBabelOptions.js.map +1 -1
- package/esm/plugins/babel-transform.js.map +1 -1
- package/esm/plugins/collector.js.map +1 -1
- package/esm/plugins/dynamic-import.js +35 -12
- package/esm/plugins/dynamic-import.js.map +1 -1
- package/esm/plugins/preeval.js +4 -0
- package/esm/plugins/preeval.js.map +1 -1
- package/esm/plugins/shaker.js +170 -23
- package/esm/plugins/shaker.js.map +1 -1
- package/esm/shaker.js +6 -3
- package/esm/shaker.js.map +1 -1
- package/esm/transform/BaseEntrypoint.js.map +1 -1
- package/esm/transform/Entrypoint.helpers.js +105 -15
- package/esm/transform/Entrypoint.helpers.js.map +1 -1
- package/esm/transform/Entrypoint.js +13 -2
- package/esm/transform/Entrypoint.js.map +1 -1
- package/esm/transform/Entrypoint.types.js.map +1 -1
- package/esm/transform/EvaluatedEntrypoint.js.map +1 -1
- package/esm/transform/actions/AbortError.js.map +1 -1
- package/esm/transform/actions/BaseAction.js +5 -0
- package/esm/transform/actions/BaseAction.js.map +1 -1
- package/esm/transform/actions/UnprocessedEntrypointError.js.map +1 -1
- package/esm/transform/actions/actionRunner.js.map +1 -1
- package/esm/transform/actions/types.js.map +1 -1
- package/esm/transform/generators/baseProcessingHandlers.js.map +1 -1
- package/esm/transform/generators/collect.js.map +1 -1
- package/esm/transform/generators/createStylisPreprocessor.js +118 -2
- package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
- package/esm/transform/generators/evalFile.js.map +1 -1
- package/esm/transform/generators/explodeReexports.js +10 -10
- package/esm/transform/generators/explodeReexports.js.map +1 -1
- package/esm/transform/generators/extract.js.map +1 -1
- package/esm/transform/generators/getExports.js.map +1 -1
- package/esm/transform/generators/index.js.map +1 -1
- package/esm/transform/generators/processEntrypoint.js +5 -8
- package/esm/transform/generators/processEntrypoint.js.map +1 -1
- package/esm/transform/generators/processImports.js.map +1 -1
- package/esm/transform/generators/resolveImports.js +41 -2
- package/esm/transform/generators/resolveImports.js.map +1 -1
- package/esm/transform/generators/transform.js +7 -3
- package/esm/transform/generators/transform.js.map +1 -1
- package/esm/transform/generators/workflow.js.map +1 -1
- package/esm/transform/helpers/loadWywOptions.js +15 -2
- package/esm/transform/helpers/loadWywOptions.js.map +1 -1
- package/esm/transform/helpers/withDefaultServices.js +2 -0
- package/esm/transform/helpers/withDefaultServices.js.map +1 -1
- package/esm/transform/isStaticallyEvaluatableModule.js +153 -0
- package/esm/transform/isStaticallyEvaluatableModule.js.map +1 -0
- package/esm/transform/rootLog.js.map +1 -1
- package/esm/transform/types.js.map +1 -1
- package/esm/transform.js +15 -6
- package/esm/transform.js.map +1 -1
- package/esm/types.js.map +1 -1
- package/esm/utils/EventEmitter.js.map +1 -1
- package/esm/utils/ShakerMetadata.js.map +1 -1
- package/esm/utils/TransformMetadata.js.map +1 -1
- package/esm/utils/addIdentifierToWywPreval.js.map +1 -1
- package/esm/utils/collectExportsAndImports.js +97 -6
- package/esm/utils/collectExportsAndImports.js.map +1 -1
- package/esm/utils/collectTemplateDependencies.js +1 -1
- package/esm/utils/collectTemplateDependencies.js.map +1 -1
- package/esm/utils/createId.js.map +1 -1
- package/esm/utils/dispose-polyfill.js.map +1 -1
- package/esm/utils/findIdentifiers.js.map +1 -1
- package/esm/utils/getConstantStringValue.js +58 -0
- package/esm/utils/getConstantStringValue.js.map +1 -0
- package/esm/utils/getFileIdx.js.map +1 -1
- package/esm/utils/getMemberExpressionPropertyName.js +11 -0
- package/esm/utils/getMemberExpressionPropertyName.js.map +1 -0
- package/esm/utils/getPluginKey.js.map +1 -1
- package/esm/utils/getScope.js.map +1 -1
- package/esm/utils/getSource.js.map +1 -1
- package/esm/utils/getTagProcessor.js +34 -6
- package/esm/utils/getTagProcessor.js.map +1 -1
- package/esm/utils/getVisitorKeys.js.map +1 -1
- package/esm/utils/hasWywPreval.js.map +1 -1
- package/esm/utils/importOverrides.js +47 -0
- package/esm/utils/importOverrides.js.map +1 -0
- package/esm/utils/isExports.js.map +1 -1
- package/esm/utils/isGlobal.js.map +1 -1
- package/esm/utils/isNode.js.map +1 -1
- package/esm/utils/isNodePath.js.map +1 -1
- package/esm/utils/isNotNull.js.map +1 -1
- package/esm/utils/isRemoved.js.map +1 -1
- package/esm/utils/isRequire.js.map +1 -1
- package/esm/utils/isSerializable.js.map +1 -1
- package/esm/utils/isTypedNode.js.map +1 -1
- package/esm/utils/isUnnecessaryReactCall.js.map +1 -1
- package/esm/utils/parseRequest.js +29 -0
- package/esm/utils/parseRequest.js.map +1 -0
- package/esm/utils/peek.js.map +1 -1
- package/esm/utils/removeDangerousCode.js +32 -2
- package/esm/utils/removeDangerousCode.js.map +1 -1
- package/esm/utils/replaceImportMetaEnv.js +44 -0
- package/esm/utils/replaceImportMetaEnv.js.map +1 -0
- package/esm/utils/scopeHelpers.js.map +1 -1
- package/esm/utils/traversalCache.js.map +1 -1
- package/esm/utils/unwrapExpression.js +18 -0
- package/esm/utils/unwrapExpression.js.map +1 -0
- package/esm/utils/unwrapSequence.js.map +1 -1
- package/esm/utils/valueToLiteral.js.map +1 -1
- package/esm/utils/visitors/JSXElementsRemover.js.map +1 -1
- package/esm/vm/createVmContext.js +44 -0
- package/esm/vm/createVmContext.js.map +1 -1
- package/esm/vm/process.js.map +1 -1
- package/lib/babel.js.map +1 -1
- package/lib/cache.js +16 -5
- package/lib/cache.js.map +1 -1
- package/lib/debug/fileReporter.js +1 -1
- package/lib/debug/fileReporter.js.map +1 -1
- package/lib/evaluators/index.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/module.js +177 -16
- package/lib/module.js.map +1 -1
- package/lib/options/buildOptions.js +127 -6
- package/lib/options/buildOptions.js.map +1 -1
- package/lib/options/buildOptions.test.js +44 -0
- package/lib/options/buildOptions.test.js.map +1 -0
- package/lib/options/loadBabelOptions.js.map +1 -1
- package/lib/plugins/babel-transform.js.map +1 -1
- package/lib/plugins/collector.js.map +1 -1
- package/lib/plugins/dynamic-import.js +34 -12
- package/lib/plugins/dynamic-import.js.map +1 -1
- package/lib/plugins/preeval.js +4 -0
- package/lib/plugins/preeval.js.map +1 -1
- package/lib/plugins/shaker.js +172 -22
- package/lib/plugins/shaker.js.map +1 -1
- package/lib/shaker.js +8 -4
- package/lib/shaker.js.map +1 -1
- package/lib/transform/BaseEntrypoint.js.map +1 -1
- package/lib/transform/Entrypoint.helpers.js +106 -15
- package/lib/transform/Entrypoint.helpers.js.map +1 -1
- package/lib/transform/Entrypoint.js +13 -2
- package/lib/transform/Entrypoint.js.map +1 -1
- package/lib/transform/Entrypoint.types.js.map +1 -1
- package/lib/transform/EvaluatedEntrypoint.js.map +1 -1
- package/lib/transform/actions/AbortError.js.map +1 -1
- package/lib/transform/actions/BaseAction.js +5 -0
- package/lib/transform/actions/BaseAction.js.map +1 -1
- package/lib/transform/actions/UnprocessedEntrypointError.js.map +1 -1
- package/lib/transform/actions/actionRunner.js.map +1 -1
- package/lib/transform/actions/types.js.map +1 -1
- package/lib/transform/generators/baseProcessingHandlers.js.map +1 -1
- package/lib/transform/generators/collect.js.map +1 -1
- package/lib/transform/generators/createStylisPreprocessor.js +119 -3
- package/lib/transform/generators/createStylisPreprocessor.js.map +1 -1
- package/lib/transform/generators/evalFile.js +1 -1
- package/lib/transform/generators/evalFile.js.map +1 -1
- package/lib/transform/generators/explodeReexports.js +11 -11
- package/lib/transform/generators/explodeReexports.js.map +1 -1
- package/lib/transform/generators/extract.js.map +1 -1
- package/lib/transform/generators/getExports.js.map +1 -1
- package/lib/transform/generators/index.js.map +1 -1
- package/lib/transform/generators/processEntrypoint.js +5 -8
- package/lib/transform/generators/processEntrypoint.js.map +1 -1
- package/lib/transform/generators/processImports.js.map +1 -1
- package/lib/transform/generators/resolveImports.js +41 -2
- package/lib/transform/generators/resolveImports.js.map +1 -1
- package/lib/transform/generators/transform.js +8 -3
- package/lib/transform/generators/transform.js.map +1 -1
- package/lib/transform/generators/workflow.js.map +1 -1
- package/lib/transform/helpers/loadWywOptions.js +16 -2
- package/lib/transform/helpers/loadWywOptions.js.map +1 -1
- package/lib/transform/helpers/withDefaultServices.js +3 -2
- package/lib/transform/helpers/withDefaultServices.js.map +1 -1
- package/lib/transform/isStaticallyEvaluatableModule.js +159 -0
- package/lib/transform/isStaticallyEvaluatableModule.js.map +1 -0
- package/lib/transform/rootLog.js.map +1 -1
- package/lib/transform/types.js.map +1 -1
- package/lib/transform.js +15 -6
- package/lib/transform.js.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/utils/EventEmitter.js.map +1 -1
- package/lib/utils/ShakerMetadata.js.map +1 -1
- package/lib/utils/TransformMetadata.js.map +1 -1
- package/lib/utils/addIdentifierToWywPreval.js.map +1 -1
- package/lib/utils/collectExportsAndImports.js +97 -6
- package/lib/utils/collectExportsAndImports.js.map +1 -1
- package/lib/utils/collectTemplateDependencies.js +1 -1
- package/lib/utils/collectTemplateDependencies.js.map +1 -1
- package/lib/utils/createId.js.map +1 -1
- package/lib/utils/dispose-polyfill.js.map +1 -1
- package/lib/utils/findIdentifiers.js.map +1 -1
- package/lib/utils/getConstantStringValue.js +66 -0
- package/lib/utils/getConstantStringValue.js.map +1 -0
- package/lib/utils/getFileIdx.js.map +1 -1
- package/lib/utils/getMemberExpressionPropertyName.js +18 -0
- package/lib/utils/getMemberExpressionPropertyName.js.map +1 -0
- package/lib/utils/getPluginKey.js.map +1 -1
- package/lib/utils/getScope.js.map +1 -1
- package/lib/utils/getSource.js +1 -1
- package/lib/utils/getSource.js.map +1 -1
- package/lib/utils/getTagProcessor.js +33 -6
- package/lib/utils/getTagProcessor.js.map +1 -1
- package/lib/utils/getVisitorKeys.js.map +1 -1
- package/lib/utils/hasWywPreval.js.map +1 -1
- package/lib/utils/importOverrides.js +57 -0
- package/lib/utils/importOverrides.js.map +1 -0
- package/lib/utils/isExports.js.map +1 -1
- package/lib/utils/isGlobal.js.map +1 -1
- package/lib/utils/isNode.js.map +1 -1
- package/lib/utils/isNodePath.js.map +1 -1
- package/lib/utils/isNotNull.js.map +1 -1
- package/lib/utils/isRemoved.js.map +1 -1
- package/lib/utils/isRequire.js.map +1 -1
- package/lib/utils/isSerializable.js.map +1 -1
- package/lib/utils/isTypedNode.js.map +1 -1
- package/lib/utils/isUnnecessaryReactCall.js.map +1 -1
- package/lib/utils/parseRequest.js +37 -0
- package/lib/utils/parseRequest.js.map +1 -0
- package/lib/utils/peek.js.map +1 -1
- package/lib/utils/removeDangerousCode.js +32 -2
- package/lib/utils/removeDangerousCode.js.map +1 -1
- package/lib/utils/replaceImportMetaEnv.js +50 -0
- package/lib/utils/replaceImportMetaEnv.js.map +1 -0
- package/lib/utils/scopeHelpers.js.map +1 -1
- package/lib/utils/traversalCache.js.map +1 -1
- package/lib/utils/unwrapExpression.js +25 -0
- package/lib/utils/unwrapExpression.js.map +1 -0
- package/lib/utils/unwrapSequence.js.map +1 -1
- package/lib/utils/valueToLiteral.js.map +1 -1
- package/lib/utils/visitors/JSXElementsRemover.js.map +1 -1
- package/lib/vm/createVmContext.js +45 -2
- package/lib/vm/createVmContext.js.map +1 -1
- package/lib/vm/process.js.map +1 -1
- package/package.json +13 -15
- package/types/cache.d.ts +1 -1
- package/types/cache.js +15 -4
- package/types/evaluators/index.js +1 -1
- package/types/module.d.ts +1 -2
- package/types/module.js +189 -11
- package/types/options/buildOptions.d.ts +0 -1
- package/types/options/buildOptions.js +125 -9
- package/types/options/loadBabelOptions.js +1 -2
- package/types/plugins/babel-transform.js +1 -1
- package/types/plugins/collector.js +3 -3
- package/types/plugins/dynamic-import.js +38 -18
- package/types/plugins/preeval.js +5 -2
- package/types/plugins/shaker.d.ts +4 -1
- package/types/plugins/shaker.js +189 -24
- package/types/shaker.js +9 -3
- package/types/transform/BaseEntrypoint.d.ts +0 -1
- package/types/transform/Entrypoint.helpers.d.ts +0 -1
- package/types/transform/Entrypoint.helpers.js +122 -25
- package/types/transform/Entrypoint.js +14 -2
- package/types/transform/Entrypoint.types.d.ts +0 -1
- package/types/transform/EvaluatedEntrypoint.d.ts +0 -1
- package/types/transform/actions/BaseAction.d.ts +1 -1
- package/types/transform/actions/BaseAction.js +5 -0
- package/types/transform/actions/actionRunner.js +2 -3
- package/types/transform/generators/collect.js +1 -2
- package/types/transform/generators/createStylisPreprocessor.d.ts +0 -1
- package/types/transform/generators/createStylisPreprocessor.js +168 -13
- package/types/transform/generators/evalFile.js +1 -2
- package/types/transform/generators/explodeReexports.js +12 -15
- package/types/transform/generators/extract.js +1 -2
- package/types/transform/generators/getExports.js +2 -3
- package/types/transform/generators/processEntrypoint.js +13 -7
- package/types/transform/generators/processImports.js +1 -2
- package/types/transform/generators/resolveImports.js +41 -5
- package/types/transform/generators/transform.d.ts +1 -1
- package/types/transform/generators/transform.js +16 -6
- package/types/transform/generators/workflow.js +1 -2
- package/types/transform/helpers/loadWywOptions.js +16 -5
- package/types/transform/helpers/withDefaultServices.d.ts +1 -1
- package/types/transform/helpers/withDefaultServices.js +19 -8
- package/types/transform/isStaticallyEvaluatableModule.d.ts +2 -0
- package/types/transform/isStaticallyEvaluatableModule.js +177 -0
- package/types/transform/rootLog.d.ts +0 -1
- package/types/transform/types.d.ts +1 -1
- package/types/transform.js +17 -9
- package/types/types.d.ts +1 -1
- package/types/utils/addIdentifierToWywPreval.js +2 -3
- package/types/utils/collectExportsAndImports.js +102 -20
- package/types/utils/collectTemplateDependencies.js +3 -4
- package/types/utils/findIdentifiers.js +2 -3
- package/types/utils/getConstantStringValue.d.ts +2 -0
- package/types/utils/getConstantStringValue.js +94 -0
- package/types/utils/getFileIdx.js +1 -2
- package/types/utils/getMemberExpressionPropertyName.d.ts +2 -0
- package/types/utils/getMemberExpressionPropertyName.js +46 -0
- package/types/utils/getScope.js +1 -2
- package/types/utils/getTagProcessor.js +35 -9
- package/types/utils/getVisitorKeys.js +1 -2
- package/types/utils/hasWywPreval.js +1 -1
- package/types/utils/importOverrides.d.ts +19 -0
- package/types/utils/importOverrides.js +40 -0
- package/types/utils/isExports.js +1 -2
- package/types/utils/isNodePath.js +1 -2
- package/types/utils/isNotNull.js +1 -2
- package/types/utils/isRemoved.js +1 -2
- package/types/utils/isRequire.js +1 -2
- package/types/utils/isSerializable.js +1 -2
- package/types/utils/isUnnecessaryReactCall.js +1 -2
- package/types/utils/parseRequest.d.ts +7 -0
- package/types/utils/parseRequest.js +29 -0
- package/types/utils/removeDangerousCode.js +37 -2
- package/types/utils/replaceImportMetaEnv.d.ts +3 -0
- package/types/utils/replaceImportMetaEnv.js +39 -0
- package/types/utils/scopeHelpers.js +7 -8
- package/types/utils/traversalCache.d.ts +1 -1
- package/types/utils/unwrapExpression.d.ts +2 -0
- package/types/utils/unwrapExpression.js +57 -0
- package/types/utils/unwrapSequence.js +1 -2
- package/types/utils/valueToLiteral.js +1 -2
- package/types/utils/visitors/JSXElementsRemover.js +1 -2
- package/types/vm/createVmContext.d.ts +0 -1
- package/types/vm/createVmContext.js +68 -9
- package/types/vm/process.d.ts +0 -2
- package/LICENSE +0 -21
- package/esm/options/babel-merge.d.js +0 -2
- package/esm/options/babel-merge.d.js.map +0 -1
- package/lib/options/babel-merge.d.js +0 -2
- package/lib/options/babel-merge.d.js.map +0 -1
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isSuperSet =
|
|
3
|
+
exports.isSuperSet = void 0;
|
|
4
|
+
exports.getMatchedRule = getMatchedRule;
|
|
5
|
+
exports.parseFile = parseFile;
|
|
6
|
+
exports.loadAndParse = loadAndParse;
|
|
7
|
+
exports.getStack = getStack;
|
|
8
|
+
exports.mergeOnly = mergeOnly;
|
|
4
9
|
const fs_1 = require("fs");
|
|
5
10
|
const path_1 = require("path");
|
|
6
11
|
const shared_1 = require("@wyw-in-js/shared");
|
|
@@ -8,6 +13,7 @@ const buildOptions_1 = require("../options/buildOptions");
|
|
|
8
13
|
const loadBabelOptions_1 = require("../options/loadBabelOptions");
|
|
9
14
|
const getFileIdx_1 = require("../utils/getFileIdx");
|
|
10
15
|
const getPluginKey_1 = require("../utils/getPluginKey");
|
|
16
|
+
const parseRequest_1 = require("../utils/parseRequest");
|
|
11
17
|
function getMatchedRule(rules, filename, code) {
|
|
12
18
|
for (let i = rules.length - 1; i >= 0; i--) {
|
|
13
19
|
const rule = rules[i];
|
|
@@ -23,7 +29,6 @@ function getMatchedRule(rules, filename, code) {
|
|
|
23
29
|
}
|
|
24
30
|
return { action: 'ignore' };
|
|
25
31
|
}
|
|
26
|
-
exports.getMatchedRule = getMatchedRule;
|
|
27
32
|
function parseFile(babel, filename, originalCode, parseConfig) {
|
|
28
33
|
const log = shared_1.logger.extend('transform:parse').extend((0, getFileIdx_1.getFileIdx)(filename));
|
|
29
34
|
const parseResult = babel.parseSync(originalCode, parseConfig);
|
|
@@ -33,7 +38,6 @@ function parseFile(babel, filename, originalCode, parseConfig) {
|
|
|
33
38
|
log('stage-1', `${filename} has been parsed`);
|
|
34
39
|
return parseResult;
|
|
35
40
|
}
|
|
36
|
-
exports.parseFile = parseFile;
|
|
37
41
|
const isModuleResolver = (plugin) => {
|
|
38
42
|
const key = (0, getPluginKey_1.getPluginKey)(plugin);
|
|
39
43
|
if (!key)
|
|
@@ -44,6 +48,93 @@ const isModuleResolver = (plugin) => {
|
|
|
44
48
|
return /([\\/])babel-plugin-module-resolver\1/.test(key);
|
|
45
49
|
};
|
|
46
50
|
let moduleResolverWarned = false;
|
|
51
|
+
const normalizeBabelKey = (key) => key.replace(/\\/g, '/');
|
|
52
|
+
const isBabelPresetTypescript = (key) => {
|
|
53
|
+
const normalized = normalizeBabelKey(key);
|
|
54
|
+
if (normalized === 'typescript')
|
|
55
|
+
return true;
|
|
56
|
+
return normalized.includes('preset-typescript');
|
|
57
|
+
};
|
|
58
|
+
const isBabelTransformTypescriptPlugin = (key) => {
|
|
59
|
+
const normalized = normalizeBabelKey(key);
|
|
60
|
+
if (normalized === 'transform-typescript')
|
|
61
|
+
return true;
|
|
62
|
+
return normalized.includes('plugin-transform-typescript');
|
|
63
|
+
};
|
|
64
|
+
const withAllowDeclareFields = (item) => {
|
|
65
|
+
if (!Array.isArray(item)) {
|
|
66
|
+
return [item, { allowDeclareFields: true }];
|
|
67
|
+
}
|
|
68
|
+
const [target, rawOptions, ...rest] = item;
|
|
69
|
+
const options = typeof rawOptions === 'object' &&
|
|
70
|
+
rawOptions !== null &&
|
|
71
|
+
!Array.isArray(rawOptions)
|
|
72
|
+
? rawOptions
|
|
73
|
+
: {};
|
|
74
|
+
if ('allowDeclareFields' in options) {
|
|
75
|
+
return item;
|
|
76
|
+
}
|
|
77
|
+
return [target, { ...options, allowDeclareFields: true }, ...rest];
|
|
78
|
+
};
|
|
79
|
+
const ensureAllowDeclareFieldsInBabelOptions = (babelOptions, scope = 'top') => {
|
|
80
|
+
let presetsChanged = false;
|
|
81
|
+
let pluginsChanged = false;
|
|
82
|
+
let overridesChanged = false;
|
|
83
|
+
let envChanged = false;
|
|
84
|
+
const presets = babelOptions.presets?.map((item) => {
|
|
85
|
+
const key = (0, getPluginKey_1.getPluginKey)(item);
|
|
86
|
+
if (!key || !isBabelPresetTypescript(key)) {
|
|
87
|
+
return item;
|
|
88
|
+
}
|
|
89
|
+
presetsChanged = true;
|
|
90
|
+
return withAllowDeclareFields(item);
|
|
91
|
+
});
|
|
92
|
+
const plugins = babelOptions.plugins?.map((item) => {
|
|
93
|
+
const key = (0, getPluginKey_1.getPluginKey)(item);
|
|
94
|
+
if (!key || !isBabelTransformTypescriptPlugin(key)) {
|
|
95
|
+
return item;
|
|
96
|
+
}
|
|
97
|
+
pluginsChanged = true;
|
|
98
|
+
return withAllowDeclareFields(item);
|
|
99
|
+
});
|
|
100
|
+
const { overrides: baseOverrides } = babelOptions;
|
|
101
|
+
let overrides = baseOverrides;
|
|
102
|
+
if (scope === 'top' && baseOverrides) {
|
|
103
|
+
const patchedOverrides = baseOverrides.map((override) => ensureAllowDeclareFieldsInBabelOptions(override, 'override'));
|
|
104
|
+
if (patchedOverrides.some((patchedOverride, idx) => patchedOverride !== baseOverrides[idx])) {
|
|
105
|
+
overridesChanged = true;
|
|
106
|
+
overrides = patchedOverrides;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const { env: baseEnv } = babelOptions;
|
|
110
|
+
let env = baseEnv;
|
|
111
|
+
if (scope === 'top' && baseEnv) {
|
|
112
|
+
const entries = Object.entries(baseEnv);
|
|
113
|
+
const patchedEntries = entries.map(([envName, envOptions]) => [
|
|
114
|
+
envName,
|
|
115
|
+
envOptions
|
|
116
|
+
? ensureAllowDeclareFieldsInBabelOptions(envOptions, 'env')
|
|
117
|
+
: envOptions,
|
|
118
|
+
]);
|
|
119
|
+
if (patchedEntries.some(([, patched], idx) => patched !== entries[idx][1])) {
|
|
120
|
+
envChanged = true;
|
|
121
|
+
env = Object.fromEntries(patchedEntries);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (!presetsChanged && !pluginsChanged && !overridesChanged && !envChanged) {
|
|
125
|
+
return babelOptions;
|
|
126
|
+
}
|
|
127
|
+
const next = { ...babelOptions };
|
|
128
|
+
if (presetsChanged)
|
|
129
|
+
next.presets = presets;
|
|
130
|
+
if (pluginsChanged)
|
|
131
|
+
next.plugins = plugins;
|
|
132
|
+
if (overridesChanged)
|
|
133
|
+
next.overrides = overrides;
|
|
134
|
+
if (envChanged)
|
|
135
|
+
next.env = env;
|
|
136
|
+
return next;
|
|
137
|
+
};
|
|
47
138
|
function buildConfigs(services, name, pluginOptions, babelOptions) {
|
|
48
139
|
const { babel, options } = services;
|
|
49
140
|
const commonOptions = {
|
|
@@ -54,10 +145,20 @@ function buildConfigs(services, name, pluginOptions, babelOptions) {
|
|
|
54
145
|
sourceFileName: name,
|
|
55
146
|
sourceMaps: true,
|
|
56
147
|
};
|
|
57
|
-
const
|
|
148
|
+
const isTypescriptFile = name.endsWith('.ts') ||
|
|
149
|
+
name.endsWith('.tsx') ||
|
|
150
|
+
name.endsWith('.mts') ||
|
|
151
|
+
name.endsWith('.cts');
|
|
152
|
+
let rawConfig = (0, buildOptions_1.buildOptions)(pluginOptions?.babelOptions, babelOptions, commonOptions);
|
|
153
|
+
if (isTypescriptFile) {
|
|
154
|
+
rawConfig = ensureAllowDeclareFieldsInBabelOptions(rawConfig);
|
|
155
|
+
}
|
|
58
156
|
const useBabelConfigs = (0, shared_1.isFeatureEnabled)(pluginOptions.features, 'useBabelConfigs', name);
|
|
59
157
|
if (!useBabelConfigs) {
|
|
60
|
-
rawConfig
|
|
158
|
+
rawConfig = {
|
|
159
|
+
...rawConfig,
|
|
160
|
+
configFile: false,
|
|
161
|
+
};
|
|
61
162
|
}
|
|
62
163
|
const parseConfig = (0, loadBabelOptions_1.loadBabelOptions)(babel, name, {
|
|
63
164
|
babelrc: useBabelConfigs,
|
|
@@ -73,11 +174,14 @@ function buildConfigs(services, name, pluginOptions, babelOptions) {
|
|
|
73
174
|
`Please add the module-resolver plugin to the babelOptions for the wyw-in-js plugin.`);
|
|
74
175
|
moduleResolverWarned = true;
|
|
75
176
|
}
|
|
76
|
-
rawConfig
|
|
77
|
-
...
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
177
|
+
rawConfig = {
|
|
178
|
+
...rawConfig,
|
|
179
|
+
plugins: [
|
|
180
|
+
...(parseConfig.plugins?.filter((plugin) => isModuleResolver(plugin)) ??
|
|
181
|
+
[]),
|
|
182
|
+
...(rawConfig.plugins ?? []),
|
|
183
|
+
],
|
|
184
|
+
};
|
|
81
185
|
}
|
|
82
186
|
const evalConfig = (0, loadBabelOptions_1.loadBabelOptions)(babel, name, {
|
|
83
187
|
babelrc: false,
|
|
@@ -90,24 +194,20 @@ function buildConfigs(services, name, pluginOptions, babelOptions) {
|
|
|
90
194
|
}
|
|
91
195
|
function loadAndParse(services, name, loadedCode, log) {
|
|
92
196
|
const { babel, eventEmitter, options: { pluginOptions }, } = services;
|
|
93
|
-
const
|
|
197
|
+
const filename = (0, parseRequest_1.stripQueryAndHash)(name);
|
|
198
|
+
const extension = (0, path_1.extname)(filename);
|
|
94
199
|
if (!pluginOptions.extensions.includes(extension)) {
|
|
95
|
-
log('[createEntrypoint] %s is ignored. If you want it to be processed, you should add \'%s\' to the "extensions" option.',
|
|
200
|
+
log('[createEntrypoint] %s is ignored. If you want it to be processed, you should add \'%s\' to the "extensions" option.', filename, extension);
|
|
96
201
|
return {
|
|
97
|
-
|
|
98
|
-
if ((0, path_1.isAbsolute)(name)) {
|
|
99
|
-
return loadedCode ?? (0, fs_1.readFileSync)(name, 'utf-8');
|
|
100
|
-
}
|
|
101
|
-
return ''; // it is a built-in module
|
|
102
|
-
},
|
|
202
|
+
code: (0, path_1.isAbsolute)(filename) ? loadedCode : '',
|
|
103
203
|
evaluator: 'ignored',
|
|
104
204
|
reason: 'extension',
|
|
105
205
|
};
|
|
106
206
|
}
|
|
107
|
-
const code = loadedCode ?? (0, fs_1.readFileSync)(
|
|
108
|
-
const { action, babelOptions } = getMatchedRule(pluginOptions.rules,
|
|
207
|
+
const code = loadedCode ?? (0, fs_1.readFileSync)(filename, 'utf-8');
|
|
208
|
+
const { action, babelOptions } = getMatchedRule(pluginOptions.rules, filename, code);
|
|
109
209
|
let ast;
|
|
110
|
-
const { evalConfig, parseConfig } = buildConfigs(services,
|
|
210
|
+
const { evalConfig, parseConfig } = buildConfigs(services, filename, pluginOptions, babelOptions);
|
|
111
211
|
const getOrParse = () => {
|
|
112
212
|
if (ast)
|
|
113
213
|
return ast;
|
|
@@ -128,7 +228,7 @@ function loadAndParse(services, name, loadedCode, log) {
|
|
|
128
228
|
const evaluator = typeof action === 'function'
|
|
129
229
|
? action
|
|
130
230
|
: require(require.resolve(action, {
|
|
131
|
-
paths: [(0, path_1.dirname)(
|
|
231
|
+
paths: [(0, path_1.dirname)(filename)],
|
|
132
232
|
})).default;
|
|
133
233
|
return {
|
|
134
234
|
get ast() {
|
|
@@ -139,7 +239,6 @@ function loadAndParse(services, name, loadedCode, log) {
|
|
|
139
239
|
evalConfig,
|
|
140
240
|
};
|
|
141
241
|
}
|
|
142
|
-
exports.loadAndParse = loadAndParse;
|
|
143
242
|
function getStack(entrypoint) {
|
|
144
243
|
if (!entrypoint)
|
|
145
244
|
return [];
|
|
@@ -151,13 +250,11 @@ function getStack(entrypoint) {
|
|
|
151
250
|
}
|
|
152
251
|
return stack;
|
|
153
252
|
}
|
|
154
|
-
exports.getStack = getStack;
|
|
155
253
|
function mergeOnly(a, b) {
|
|
156
254
|
const result = new Set(a);
|
|
157
255
|
b.forEach((item) => result.add(item));
|
|
158
256
|
return [...result].filter((i) => i).sort();
|
|
159
257
|
}
|
|
160
|
-
exports.mergeOnly = mergeOnly;
|
|
161
258
|
const isSuperSet = (a, b) => {
|
|
162
259
|
if (a.includes('*'))
|
|
163
260
|
return true;
|
|
@@ -4,6 +4,7 @@ exports.Entrypoint = void 0;
|
|
|
4
4
|
const ts_invariant_1 = require("ts-invariant");
|
|
5
5
|
const BaseEntrypoint_1 = require("./BaseEntrypoint");
|
|
6
6
|
const Entrypoint_helpers_1 = require("./Entrypoint.helpers");
|
|
7
|
+
const isStaticallyEvaluatableModule_1 = require("./isStaticallyEvaluatableModule");
|
|
7
8
|
const EvaluatedEntrypoint_1 = require("./EvaluatedEntrypoint");
|
|
8
9
|
const AbortError_1 = require("./actions/AbortError");
|
|
9
10
|
const BaseAction_1 = require("./actions/BaseAction");
|
|
@@ -105,8 +106,8 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
|
|
|
105
106
|
return ['cached', cached];
|
|
106
107
|
}
|
|
107
108
|
const exports = cached?.exports;
|
|
108
|
-
const evaluatedOnly = cached?.evaluatedOnly ?? [];
|
|
109
|
-
const mergedOnly = cached?.only ? (0, Entrypoint_helpers_1.mergeOnly)(cached.only, only) : only;
|
|
109
|
+
const evaluatedOnly = changed ? [] : cached?.evaluatedOnly ?? [];
|
|
110
|
+
const mergedOnly = cached?.only ? (0, Entrypoint_helpers_1.mergeOnly)(cached.only, only) : [...only];
|
|
110
111
|
if (cached?.evaluated) {
|
|
111
112
|
cached.log('is already evaluated with', cached.evaluatedOnly);
|
|
112
113
|
}
|
|
@@ -126,6 +127,17 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
|
|
|
126
127
|
return [isLoop ? 'loop' : 'created', cached.supersede(mergedOnly)];
|
|
127
128
|
}
|
|
128
129
|
const newEntrypoint = new Entrypoint(services, parent ? [parent] : [], loadedCode, name, mergedOnly, exports, evaluatedOnly, undefined, cached && 'resolveTasks' in cached ? cached.resolveTasks : undefined, cached && 'dependencies' in cached ? cached.dependencies : undefined, cached ? cached.generation + 1 : 1);
|
|
130
|
+
if (!newEntrypoint.ignored &&
|
|
131
|
+
!newEntrypoint.only.includes('*') &&
|
|
132
|
+
!newEntrypoint.only.includes('__wywPreval') &&
|
|
133
|
+
!newEntrypoint.only.includes('side-effect')) {
|
|
134
|
+
const { ast } = newEntrypoint.loadedAndParsed;
|
|
135
|
+
if (ast && (0, isStaticallyEvaluatableModule_1.isStaticallyEvaluatableModule)(ast)) {
|
|
136
|
+
newEntrypoint.log('[entrypoint] promote `only` to "*" for statically evaluatable module');
|
|
137
|
+
newEntrypoint.only.length = 0;
|
|
138
|
+
newEntrypoint.only.push('*');
|
|
139
|
+
}
|
|
140
|
+
}
|
|
129
141
|
if (cached && !cached.evaluated) {
|
|
130
142
|
cached.log('is cached, but with different code');
|
|
131
143
|
cached.supersede(newEntrypoint);
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="debug" />
|
|
2
1
|
import '../../utils/dispose-polyfill';
|
|
3
2
|
import type { Debugger } from '@wyw-in-js/shared';
|
|
4
3
|
import type { Entrypoint } from '../Entrypoint';
|
|
@@ -19,6 +18,7 @@ export declare class BaseAction<TAction extends ActionQueueItem> implements GetB
|
|
|
19
18
|
private activeScenario;
|
|
20
19
|
private activeScenarioError?;
|
|
21
20
|
private activeScenarioNextResults;
|
|
21
|
+
private handler;
|
|
22
22
|
constructor(type: TAction['type'], services: Services, entrypoint: Entrypoint, data: TAction['data'], abortSignal: AbortSignal | null);
|
|
23
23
|
get log(): Debugger;
|
|
24
24
|
get ref(): string;
|
|
@@ -16,6 +16,7 @@ class BaseAction {
|
|
|
16
16
|
activeScenario = null;
|
|
17
17
|
activeScenarioError;
|
|
18
18
|
activeScenarioNextResults = [];
|
|
19
|
+
handler = null;
|
|
19
20
|
constructor(type, services, entrypoint, data, abortSignal) {
|
|
20
21
|
this.type = type;
|
|
21
22
|
this.services = services;
|
|
@@ -63,6 +64,10 @@ class BaseAction {
|
|
|
63
64
|
};
|
|
64
65
|
}
|
|
65
66
|
run(handler) {
|
|
67
|
+
if (this.handler && this.handler !== handler) {
|
|
68
|
+
throw new Error(`action handler is already set`);
|
|
69
|
+
}
|
|
70
|
+
this.handler = handler;
|
|
66
71
|
if (!this.activeScenario) {
|
|
67
72
|
this.activeScenario = handler.call(this);
|
|
68
73
|
this.activeScenarioNextResults = [];
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.asyncActionRunner = asyncActionRunner;
|
|
4
|
+
exports.syncActionRunner = syncActionRunner;
|
|
4
5
|
const types_1 = require("../types");
|
|
5
6
|
const AbortError_1 = require("./AbortError");
|
|
6
7
|
function getHandler(action, actionHandlers) {
|
|
@@ -48,7 +49,6 @@ async function asyncActionRunner(action, actionHandlers, stack = [getActionRef(a
|
|
|
48
49
|
}
|
|
49
50
|
}
|
|
50
51
|
}
|
|
51
|
-
exports.asyncActionRunner = asyncActionRunner;
|
|
52
52
|
function syncActionRunner(action, actionHandlers, stack = [getActionRef(action.type, action.entrypoint)]) {
|
|
53
53
|
if (action.result !== types_1.Pending) {
|
|
54
54
|
action.log('result is cached');
|
|
@@ -83,4 +83,3 @@ function syncActionRunner(action, actionHandlers, stack = [getActionRef(action.t
|
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
|
-
exports.syncActionRunner = syncActionRunner;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.collect =
|
|
3
|
+
exports.collect = collect;
|
|
4
4
|
const buildOptions_1 = require("../../options/buildOptions");
|
|
5
5
|
const collector_1 = require("../../plugins/collector");
|
|
6
6
|
const TransformMetadata_1 = require("../../utils/TransformMetadata");
|
|
@@ -54,4 +54,3 @@ function* collect() {
|
|
|
54
54
|
metadata: transformMetadata ?? null,
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
|
-
exports.collect = collect;
|
|
@@ -15,15 +15,29 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
36
|
+
exports.stylisGlobalPlugin = void 0;
|
|
37
|
+
exports.transformUrl = transformUrl;
|
|
38
|
+
exports.createStylisUrlReplacePlugin = createStylisUrlReplacePlugin;
|
|
39
|
+
exports.createKeyframeSuffixerPlugin = createKeyframeSuffixerPlugin;
|
|
40
|
+
exports.createStylisPreprocessor = createStylisPreprocessor;
|
|
27
41
|
/* eslint-disable no-continue */
|
|
28
42
|
const path = __importStar(require("path"));
|
|
29
43
|
const stylis_1 = require("stylis");
|
|
@@ -38,7 +52,6 @@ function transformUrl(url, outputFilename, sourceFilename, platformPath = path)
|
|
|
38
52
|
}
|
|
39
53
|
return relative.split(platformPath.sep).join(POSIX_SEP);
|
|
40
54
|
}
|
|
41
|
-
exports.transformUrl = transformUrl;
|
|
42
55
|
const DEFINED_KEYFRAMES = Symbol('definedKeyframes');
|
|
43
56
|
const ORIGINAL_KEYFRAME_NAME = Symbol('originalKeyframeName');
|
|
44
57
|
const ORIGINAL_VALUE_KEY = Symbol('originalValue');
|
|
@@ -164,7 +177,6 @@ function createStylisUrlReplacePlugin(filename, outputFilename) {
|
|
|
164
177
|
}
|
|
165
178
|
};
|
|
166
179
|
}
|
|
167
|
-
exports.createStylisUrlReplacePlugin = createStylisUrlReplacePlugin;
|
|
168
180
|
function createKeyframeSuffixerPlugin() {
|
|
169
181
|
const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map((i) => i ? `-${i}-` : '');
|
|
170
182
|
const getPrefixedProp = (prop) => prefixes.map((prefix) => `${prefix}${prop}`);
|
|
@@ -268,19 +280,162 @@ function createKeyframeSuffixerPlugin() {
|
|
|
268
280
|
}
|
|
269
281
|
};
|
|
270
282
|
}
|
|
271
|
-
exports.createKeyframeSuffixerPlugin = createKeyframeSuffixerPlugin;
|
|
272
283
|
const isMiddleware = (obj) => obj !== null;
|
|
284
|
+
const displayKeywordRegexp = /^[a-z-]+$/;
|
|
285
|
+
const knownMultiKeywordDisplayTokens = new Set([
|
|
286
|
+
'block',
|
|
287
|
+
'inline',
|
|
288
|
+
'flow',
|
|
289
|
+
'flow-root',
|
|
290
|
+
'flex',
|
|
291
|
+
'grid',
|
|
292
|
+
'table',
|
|
293
|
+
'list-item',
|
|
294
|
+
]);
|
|
295
|
+
function normalizeMultiKeywordDisplayValue(value) {
|
|
296
|
+
const trimmed = value.trim();
|
|
297
|
+
if (trimmed === '' || !/\s/.test(trimmed)) {
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
300
|
+
const importantRegexp = /!\s*important\s*$/i;
|
|
301
|
+
const hasImportant = importantRegexp.test(trimmed);
|
|
302
|
+
const withoutImportant = trimmed.replace(importantRegexp, '').trim();
|
|
303
|
+
const tokens = withoutImportant.split(/\s+/).filter(Boolean);
|
|
304
|
+
if (tokens.length < 2) {
|
|
305
|
+
return null;
|
|
306
|
+
}
|
|
307
|
+
const normalizedTokens = tokens.map((token) => token.toLowerCase());
|
|
308
|
+
if (!normalizedTokens.every((token) => displayKeywordRegexp.test(token))) {
|
|
309
|
+
return null;
|
|
310
|
+
}
|
|
311
|
+
const tokenSet = new Set(normalizedTokens);
|
|
312
|
+
const hasInline = tokenSet.has('inline');
|
|
313
|
+
const hasBlock = tokenSet.has('block');
|
|
314
|
+
if (hasInline && hasBlock) {
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
let outside = null;
|
|
318
|
+
if (hasInline) {
|
|
319
|
+
outside = 'inline';
|
|
320
|
+
}
|
|
321
|
+
else if (hasBlock) {
|
|
322
|
+
outside = 'block';
|
|
323
|
+
}
|
|
324
|
+
const insideCandidates = [
|
|
325
|
+
'flow-root',
|
|
326
|
+
'flow',
|
|
327
|
+
'flex',
|
|
328
|
+
'grid',
|
|
329
|
+
'table',
|
|
330
|
+
].filter((candidate) => tokenSet.has(candidate));
|
|
331
|
+
if (insideCandidates.length > 1) {
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
const inside = insideCandidates[0] ?? null;
|
|
335
|
+
const hasListItem = tokenSet.has('list-item');
|
|
336
|
+
const canCanonicalize = normalizedTokens.every((token) => knownMultiKeywordDisplayTokens.has(token));
|
|
337
|
+
if (canCanonicalize) {
|
|
338
|
+
const canonicalOutside = outside ?? 'block';
|
|
339
|
+
const canonicalInside = inside ?? (hasListItem ? 'flow' : null);
|
|
340
|
+
if (canonicalInside) {
|
|
341
|
+
let canonical = null;
|
|
342
|
+
if (hasListItem) {
|
|
343
|
+
if (canonicalInside === 'flow' && canonicalOutside === 'block') {
|
|
344
|
+
canonical = 'list-item';
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
switch (canonicalInside) {
|
|
349
|
+
case 'flex':
|
|
350
|
+
canonical = canonicalOutside === 'inline' ? 'inline-flex' : 'flex';
|
|
351
|
+
break;
|
|
352
|
+
case 'grid':
|
|
353
|
+
canonical = canonicalOutside === 'inline' ? 'inline-grid' : 'grid';
|
|
354
|
+
break;
|
|
355
|
+
case 'table':
|
|
356
|
+
canonical =
|
|
357
|
+
canonicalOutside === 'inline' ? 'inline-table' : 'table';
|
|
358
|
+
break;
|
|
359
|
+
case 'flow-root':
|
|
360
|
+
canonical = canonicalOutside === 'block' ? 'flow-root' : null;
|
|
361
|
+
break;
|
|
362
|
+
case 'flow':
|
|
363
|
+
canonical = canonicalOutside === 'inline' ? 'inline' : 'block';
|
|
364
|
+
break;
|
|
365
|
+
default:
|
|
366
|
+
break;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
if (canonical) {
|
|
370
|
+
return hasImportant ? `${canonical}!important` : canonical;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
const innerDisplay = inside === 'flex' || inside === 'grid' ? inside : null;
|
|
375
|
+
if (innerDisplay &&
|
|
376
|
+
normalizedTokens[0] === innerDisplay &&
|
|
377
|
+
normalizedTokens.length > 1) {
|
|
378
|
+
const reordered = [
|
|
379
|
+
...(outside ? [outside] : []),
|
|
380
|
+
...normalizedTokens.filter((token) => token !== innerDisplay && token !== outside),
|
|
381
|
+
innerDisplay,
|
|
382
|
+
].join(' ');
|
|
383
|
+
return hasImportant ? `${reordered}!important` : reordered;
|
|
384
|
+
}
|
|
385
|
+
return null;
|
|
386
|
+
}
|
|
387
|
+
function createStylisDisplayNormalizationPlugin() {
|
|
388
|
+
return (element) => {
|
|
389
|
+
if (!isDeclaration(element) || element.props !== 'display') {
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
const normalized = normalizeMultiKeywordDisplayValue(element.children);
|
|
393
|
+
if (!normalized) {
|
|
394
|
+
return;
|
|
395
|
+
}
|
|
396
|
+
const decl = `display:${normalized};`;
|
|
397
|
+
Object.assign(element, {
|
|
398
|
+
children: normalized,
|
|
399
|
+
value: decl,
|
|
400
|
+
});
|
|
401
|
+
};
|
|
402
|
+
}
|
|
403
|
+
function createStylisStringifier(keepComments) {
|
|
404
|
+
if (!keepComments) {
|
|
405
|
+
return stylis_1.stringify;
|
|
406
|
+
}
|
|
407
|
+
const keepAllComments = keepComments === true;
|
|
408
|
+
const keepCommentsFilter = keepComments instanceof RegExp ? keepComments : null;
|
|
409
|
+
return (element, index, children, callback) => {
|
|
410
|
+
if (element.type === stylis_1.COMMENT) {
|
|
411
|
+
if (!keepAllComments && keepCommentsFilter) {
|
|
412
|
+
const commentValue = typeof element.children === 'string'
|
|
413
|
+
? element.children
|
|
414
|
+
: element.value;
|
|
415
|
+
keepCommentsFilter.lastIndex = 0;
|
|
416
|
+
if (!keepCommentsFilter.test(commentValue)) {
|
|
417
|
+
return '';
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
return element.value;
|
|
421
|
+
}
|
|
422
|
+
return (0, stylis_1.stringify)(element, index, children, callback);
|
|
423
|
+
};
|
|
424
|
+
}
|
|
273
425
|
function createStylisPreprocessor(options) {
|
|
426
|
+
const stringifier = createStylisStringifier(options.keepComments);
|
|
274
427
|
function stylisPreprocess(selector, text) {
|
|
275
428
|
const compiled = (0, stylis_1.compile)(`${selector} {${text}}\n`);
|
|
276
429
|
return (0, stylis_1.serialize)(compiled, (0, stylis_1.middleware)([
|
|
277
430
|
createStylisUrlReplacePlugin(options.filename, options.outputFilename),
|
|
278
431
|
exports.stylisGlobalPlugin,
|
|
432
|
+
options.prefixer === false
|
|
433
|
+
? null
|
|
434
|
+
: createStylisDisplayNormalizationPlugin(),
|
|
279
435
|
options.prefixer === false ? null : stylis_1.prefixer,
|
|
280
436
|
createKeyframeSuffixerPlugin(),
|
|
281
|
-
|
|
437
|
+
stringifier,
|
|
282
438
|
].filter(isMiddleware)));
|
|
283
439
|
}
|
|
284
440
|
return stylisPreprocess;
|
|
285
441
|
}
|
|
286
|
-
exports.createStylisPreprocessor = createStylisPreprocessor;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.evalFile =
|
|
6
|
+
exports.evalFile = evalFile;
|
|
7
7
|
const evaluators_1 = __importDefault(require("../../evaluators"));
|
|
8
8
|
const hasWywPreval_1 = __importDefault(require("../../utils/hasWywPreval"));
|
|
9
9
|
const UnprocessedEntrypointError_1 = require("../actions/UnprocessedEntrypointError");
|
|
@@ -53,4 +53,3 @@ function* evalFile() {
|
|
|
53
53
|
log(`<< evaluated __wywPreval %O`, valueCache);
|
|
54
54
|
return [valueCache, evaluated.dependencies];
|
|
55
55
|
}
|
|
56
|
-
exports.evalFile = evalFile;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.explodeReexports =
|
|
6
|
+
exports.explodeReexports = explodeReexports;
|
|
7
7
|
const generator_1 = __importDefault(require("@babel/generator"));
|
|
8
8
|
const getExports_1 = require("./getExports");
|
|
9
9
|
const getWildcardReexport = (babel, ast) => {
|
|
@@ -42,26 +42,23 @@ function* explodeReexports() {
|
|
|
42
42
|
const importedEntrypoints = (0, getExports_1.findExportsInImports)(this.entrypoint, resolvedImports);
|
|
43
43
|
const replacements = new Map();
|
|
44
44
|
for (const importedEntrypoint of importedEntrypoints) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
if (importedEntrypoint.entrypoint.loadedAndParsed.evaluator !== 'ignored') {
|
|
46
|
+
const reexport = reexportsFrom.find((i) => i.source === importedEntrypoint.import);
|
|
47
|
+
if (reexport) {
|
|
48
|
+
const exports = yield* this.getNext('getExports', importedEntrypoint.entrypoint, undefined);
|
|
49
|
+
if (exports.length !== 0) {
|
|
50
|
+
replacements.set(reexport.node, babel.types.exportNamedDeclaration(null, exports.map((i) => babel.types.exportSpecifier(babel.types.identifier(i), babel.types.identifier(i))), babel.types.stringLiteral(importedEntrypoint.import)));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
51
53
|
}
|
|
52
54
|
}
|
|
53
55
|
// Replace wildcard reexport with named reexports
|
|
54
56
|
babel.traverse(loadedAndParsed.ast, {
|
|
55
57
|
ExportAllDeclaration(path) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
path.remove();
|
|
62
|
-
}
|
|
58
|
+
if (!replacements.has(path.node))
|
|
59
|
+
return;
|
|
60
|
+
path.replaceWith(replacements.get(path.node));
|
|
63
61
|
},
|
|
64
62
|
});
|
|
65
63
|
loadedAndParsed.code = (0, generator_1.default)(loadedAndParsed.ast).code;
|
|
66
64
|
}
|
|
67
|
-
exports.explodeReexports = explodeReexports;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.extract =
|
|
3
|
+
exports.extract = extract;
|
|
4
4
|
const source_map_1 = require("source-map");
|
|
5
5
|
const createStylisPreprocessor_1 = require("./createStylisPreprocessor");
|
|
6
6
|
function extractCssFromAst(rules, originalCode, options) {
|
|
@@ -87,4 +87,3 @@ function* extract() {
|
|
|
87
87
|
replacements: allReplacements,
|
|
88
88
|
};
|
|
89
89
|
}
|
|
90
|
-
exports.extract = extract;
|