@wyw-in-js/transform 0.3.0 → 0.4.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/transform/Entrypoint.js +2 -1
- package/esm/transform/Entrypoint.js.map +1 -1
- package/esm/transform/generators/createStylisPreprocessor.js +171 -51
- package/esm/transform/generators/createStylisPreprocessor.js.map +1 -1
- package/lib/transform/Entrypoint.js +2 -1
- package/lib/transform/Entrypoint.js.map +1 -1
- package/lib/transform/generators/createStylisPreprocessor.js +176 -51
- package/lib/transform/generators/createStylisPreprocessor.js.map +1 -1
- package/package.json +7 -7
- package/types/transform/Entrypoint.js +4 -1
- package/types/transform/generators/createStylisPreprocessor.d.ts +4 -1
- package/types/transform/generators/createStylisPreprocessor.js +187 -59
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.createKeyframeSuffixerPlugin = createKeyframeSuffixerPlugin;
|
|
6
7
|
exports.createStylisPreprocessor = createStylisPreprocessor;
|
|
7
8
|
exports.createStylisUrlReplacePlugin = createStylisUrlReplacePlugin;
|
|
8
9
|
exports.stylisGlobalPlugin = void 0;
|
|
@@ -11,6 +12,8 @@ var path = _interopRequireWildcard(require("path"));
|
|
|
11
12
|
var _stylis = require("stylis");
|
|
12
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
|
+
/* eslint-disable no-continue */
|
|
16
|
+
|
|
14
17
|
const POSIX_SEP = path.posix.sep;
|
|
15
18
|
function transformUrl(url, outputFilename, sourceFilename, platformPath = path) {
|
|
16
19
|
// Replace asset path with new path relative to the output CSS
|
|
@@ -22,12 +25,51 @@ function transformUrl(url, outputFilename, sourceFilename, platformPath = path)
|
|
|
22
25
|
}
|
|
23
26
|
return relative.split(platformPath.sep).join(POSIX_SEP);
|
|
24
27
|
}
|
|
28
|
+
const DEFINED_KEYFRAMES = Symbol('definedKeyframes');
|
|
29
|
+
const ORIGINAL_VALUE_KEY = Symbol('originalValue');
|
|
30
|
+
const IS_GLOBAL_KEYFRAMES = Symbol('isGlobalKeyframes');
|
|
31
|
+
const getOriginalElementValue = element => {
|
|
32
|
+
var _element$ORIGINAL_VAL;
|
|
33
|
+
return element ? (_element$ORIGINAL_VAL = element[ORIGINAL_VALUE_KEY]) !== null && _element$ORIGINAL_VAL !== void 0 ? _element$ORIGINAL_VAL : element.value : '';
|
|
34
|
+
};
|
|
35
|
+
function throwIfNotProd(key, value, type) {
|
|
36
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
37
|
+
throw new Error(`"element.${key}" has type "${type}" (${JSON.stringify(value, null, 2)}), it's not expected. Please report a bug if it happens.`);
|
|
38
|
+
}
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
function childrenIsString(children) {
|
|
42
|
+
return typeof children === 'string' || throwIfNotProd('children', children, 'Element[]');
|
|
43
|
+
}
|
|
44
|
+
function propsAreStrings(props) {
|
|
45
|
+
return Array.isArray(props) || throwIfNotProd('props', props, 'string');
|
|
46
|
+
}
|
|
47
|
+
function propsIsString(props) {
|
|
48
|
+
return typeof props === 'string' || throwIfNotProd('props', props, 'string[]');
|
|
49
|
+
}
|
|
50
|
+
const isDeclaration = element => {
|
|
51
|
+
return element.type === _stylis.DECLARATION && propsIsString(element.props) && childrenIsString(element.children);
|
|
52
|
+
};
|
|
53
|
+
const isKeyframes = element => {
|
|
54
|
+
return element.type === _stylis.KEYFRAMES && propsAreStrings(element.props);
|
|
55
|
+
};
|
|
56
|
+
const isRuleset = element => {
|
|
57
|
+
return element.type === _stylis.RULESET && propsAreStrings(element.props);
|
|
58
|
+
};
|
|
25
59
|
|
|
26
60
|
/**
|
|
27
61
|
* Stylis plugin that mimics :global() selector behavior from Stylis v3.
|
|
28
62
|
*/
|
|
29
63
|
const stylisGlobalPlugin = element => {
|
|
30
|
-
function getGlobalSelectorModifiers(
|
|
64
|
+
function getGlobalSelectorModifiers(el) {
|
|
65
|
+
const {
|
|
66
|
+
parent
|
|
67
|
+
} = el;
|
|
68
|
+
const value = getOriginalElementValue(el);
|
|
69
|
+
const parentValue = getOriginalElementValue(parent);
|
|
70
|
+
if ((parent === null || parent === void 0 ? void 0 : parent.children.length) === 0 && parentValue.includes(':global(') || parent && !value.includes(':global(')) {
|
|
71
|
+
return getGlobalSelectorModifiers(parent);
|
|
72
|
+
}
|
|
31
73
|
const match = value.match(/(&\f( )?)?:global\(/);
|
|
32
74
|
if (match === null) {
|
|
33
75
|
throw new Error(`Failed to match :global() selector in "${value}". Please report a bug if it happens.`);
|
|
@@ -38,58 +80,51 @@ const stylisGlobalPlugin = element => {
|
|
|
38
80
|
includeSpaceDelimiter: !!spaceDelimiter
|
|
39
81
|
};
|
|
40
82
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
83
|
+
if (!isRuleset(element)) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
Object.assign(element, {
|
|
87
|
+
props: element.props.map(cssSelector => {
|
|
88
|
+
// The value can be changed by other middlewares, but we need an original one with `&`
|
|
49
89
|
Object.assign(element, {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
// Avoids calling tokenize() on every string
|
|
53
|
-
if (!cssSelector.includes(':global(')) {
|
|
54
|
-
return cssSelector;
|
|
55
|
-
}
|
|
56
|
-
if (element.children.length === 0) {
|
|
57
|
-
Object.assign(element, {
|
|
58
|
-
global: getGlobalSelectorModifiers(element.value)
|
|
59
|
-
});
|
|
60
|
-
return cssSelector;
|
|
61
|
-
}
|
|
62
|
-
const {
|
|
63
|
-
includeBaseSelector,
|
|
64
|
-
includeSpaceDelimiter
|
|
65
|
-
} = ((_element$parent = element.parent) === null || _element$parent === void 0 ? void 0 : _element$parent.global) || getGlobalSelectorModifiers(element.value);
|
|
66
|
-
const tokens = (0, _stylis.tokenize)(cssSelector);
|
|
67
|
-
let selector = '';
|
|
68
|
-
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
69
|
-
const token = tokens[i];
|
|
90
|
+
[ORIGINAL_VALUE_KEY]: element.value
|
|
91
|
+
});
|
|
70
92
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
93
|
+
// Avoids calling tokenize() on every string
|
|
94
|
+
if (!cssSelector.includes(':global(')) {
|
|
95
|
+
return cssSelector;
|
|
96
|
+
}
|
|
97
|
+
if (element.children.length === 0) {
|
|
98
|
+
return cssSelector;
|
|
99
|
+
}
|
|
100
|
+
const {
|
|
101
|
+
includeBaseSelector,
|
|
102
|
+
includeSpaceDelimiter
|
|
103
|
+
} = getGlobalSelectorModifiers(element);
|
|
104
|
+
const tokens = (0, _stylis.tokenize)(cssSelector);
|
|
105
|
+
let selector = '';
|
|
106
|
+
for (let i = 0, len = tokens.length; i < len; i++) {
|
|
107
|
+
const token = tokens[i];
|
|
80
108
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
109
|
+
//
|
|
110
|
+
// Match for ":global("
|
|
111
|
+
if (token === ':' && tokens[i + 1] === 'global') {
|
|
112
|
+
//
|
|
113
|
+
// Match for ":global()"
|
|
114
|
+
if (tokens[i + 2] === '()') {
|
|
115
|
+
selector = [...tokens.slice(i + 4), includeSpaceDelimiter ? ' ' : '', ...(includeBaseSelector ? tokens.slice(0, i - 1) : []), includeSpaceDelimiter ? '' : ' '].join('');
|
|
116
|
+
break;
|
|
86
117
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
118
|
+
|
|
119
|
+
//
|
|
120
|
+
// Match for ":global(selector)"
|
|
121
|
+
selector = [tokens[i + 2].slice(1, -1), includeSpaceDelimiter ? ' ' : '', ...(includeBaseSelector ? tokens.slice(0, i - 1) : []), includeSpaceDelimiter ? '' : ' '].join('');
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return selector;
|
|
126
|
+
})
|
|
127
|
+
});
|
|
93
128
|
};
|
|
94
129
|
exports.stylisGlobalPlugin = stylisGlobalPlugin;
|
|
95
130
|
function createStylisUrlReplacePlugin(filename, outputFilename) {
|
|
@@ -98,14 +133,104 @@ function createStylisUrlReplacePlugin(filename, outputFilename) {
|
|
|
98
133
|
// When writing to a file, we need to adjust the relative paths inside url(..) expressions.
|
|
99
134
|
// It'll allow css-loader to resolve an imported asset properly.
|
|
100
135
|
// eslint-disable-next-line no-param-reassign
|
|
101
|
-
element.return = element.value.replace(/\b(url\((["']?))(\.[^)]+?)(\2\))/g, (
|
|
136
|
+
element.return = element.value.replace(/\b(url\((["']?))(\.[^)]+?)(\2\))/g, (_match, p1, _p2, p3, p4) => p1 + transformUrl(p3, outputFilename, filename) + p4);
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
function createKeyframeSuffixerPlugin() {
|
|
141
|
+
const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map(i => i ? `-${i}-` : '');
|
|
142
|
+
const getPrefixedProp = prop => prefixes.map(prefix => `${prefix}${prop}`);
|
|
143
|
+
const buildPropsRegexp = (prop, isAtRule) => {
|
|
144
|
+
const [at, colon] = isAtRule ? ['@', ''] : ['', ':'];
|
|
145
|
+
return new RegExp(`^(${at}(?:${getPrefixedProp(prop).join('|')})${colon})\\s*`);
|
|
146
|
+
};
|
|
147
|
+
const animationNameRegexp = /:global\(([\w_-]+)\)|([\w_-]+)/;
|
|
148
|
+
const getReplacer = (startsWith, searchValue, replacer) => {
|
|
149
|
+
return input => {
|
|
150
|
+
var _input$match;
|
|
151
|
+
const [fullMatch] = (_input$match = input.match(startsWith)) !== null && _input$match !== void 0 ? _input$match : [];
|
|
152
|
+
if (fullMatch === undefined) {
|
|
153
|
+
return input;
|
|
154
|
+
}
|
|
155
|
+
const rest = input.slice(fullMatch.length);
|
|
156
|
+
return fullMatch + rest.replace(searchValue, replacer);
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
const elementToKeyframeSuffix = el => {
|
|
160
|
+
if (el.parent) {
|
|
161
|
+
return elementToKeyframeSuffix(el.parent);
|
|
162
|
+
}
|
|
163
|
+
return el.value.replaceAll(/[^a-zA-Z0-9_-]/g, '');
|
|
164
|
+
};
|
|
165
|
+
const animationPropsSet = new Set([...getPrefixedProp('animation'), ...getPrefixedProp('animation-name')]);
|
|
166
|
+
const getDefinedKeyframes = element => {
|
|
167
|
+
if (element[DEFINED_KEYFRAMES]) {
|
|
168
|
+
return element[DEFINED_KEYFRAMES];
|
|
169
|
+
}
|
|
170
|
+
if (element.parent) {
|
|
171
|
+
return getDefinedKeyframes(element.parent);
|
|
172
|
+
}
|
|
173
|
+
const keyframes = new Set();
|
|
174
|
+
for (const sibling of (_element$siblings = element.siblings) !== null && _element$siblings !== void 0 ? _element$siblings : []) {
|
|
175
|
+
var _element$siblings;
|
|
176
|
+
if (!isKeyframes(sibling) || sibling[IS_GLOBAL_KEYFRAMES] === true) {
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
keyframes.add(sibling.props[0]);
|
|
180
|
+
}
|
|
181
|
+
Object.assign(element, {
|
|
182
|
+
[DEFINED_KEYFRAMES]: keyframes
|
|
183
|
+
});
|
|
184
|
+
return keyframes;
|
|
185
|
+
};
|
|
186
|
+
return element => {
|
|
187
|
+
if (isKeyframes(element) && element.parent) {
|
|
188
|
+
var _element$props$0$star, _element$props$;
|
|
189
|
+
const suffix = elementToKeyframeSuffix(element);
|
|
190
|
+
const replaceFn = (_match, globalMatch, scopedMatch) => globalMatch || `${scopedMatch}-${suffix}`;
|
|
191
|
+
Object.assign(element, {
|
|
192
|
+
[IS_GLOBAL_KEYFRAMES]: (_element$props$0$star = (_element$props$ = element.props[0]) === null || _element$props$ === void 0 ? void 0 : _element$props$.startsWith(':global(')) !== null && _element$props$0$star !== void 0 ? _element$props$0$star : false,
|
|
193
|
+
props: element.props.map(getReplacer(/^\s*/, animationNameRegexp, replaceFn)),
|
|
194
|
+
value: getReplacer(buildPropsRegexp('keyframes', true), animationNameRegexp, replaceFn)(element.value)
|
|
195
|
+
});
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
if (isDeclaration(element)) {
|
|
199
|
+
const suffix = elementToKeyframeSuffix(element);
|
|
200
|
+
const keys = ['children', 'return', 'value'];
|
|
201
|
+
if (animationPropsSet.has(element.props)) {
|
|
202
|
+
const scopedKeyframes = getDefinedKeyframes(element);
|
|
203
|
+
const patch = Object.fromEntries(keys.map(key => {
|
|
204
|
+
const tokens = (0, _stylis.tokenize)(element[key]);
|
|
205
|
+
let result = '';
|
|
206
|
+
for (let i = 0; i < tokens.length; i += 1) {
|
|
207
|
+
if (tokens[i] === ':' && tokens[i + 1] === 'global' && tokens[i + 2].startsWith('(')) {
|
|
208
|
+
const globalName = tokens[i + 2].substring(1, tokens[i + 2].length - 1);
|
|
209
|
+
i += 2;
|
|
210
|
+
result += globalName;
|
|
211
|
+
if (tokens[i + 1] !== ';') {
|
|
212
|
+
result += ' ';
|
|
213
|
+
}
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
if (scopedKeyframes.has(tokens[i])) {
|
|
217
|
+
result += `${tokens[i]}-${suffix}`;
|
|
218
|
+
continue;
|
|
219
|
+
}
|
|
220
|
+
result += tokens[i];
|
|
221
|
+
}
|
|
222
|
+
return [key, result];
|
|
223
|
+
}));
|
|
224
|
+
Object.assign(element, patch);
|
|
225
|
+
}
|
|
102
226
|
}
|
|
103
227
|
};
|
|
104
228
|
}
|
|
229
|
+
const isMiddleware = obj => obj !== null;
|
|
105
230
|
function createStylisPreprocessor(options) {
|
|
106
231
|
function stylisPreprocess(selector, text) {
|
|
107
232
|
const compiled = (0, _stylis.compile)(`${selector} {${text}}\n`);
|
|
108
|
-
return (0, _stylis.serialize)(compiled, (0, _stylis.middleware)([createStylisUrlReplacePlugin(options.filename, options.outputFilename), stylisGlobalPlugin, _stylis.prefixer, _stylis.stringify]));
|
|
233
|
+
return (0, _stylis.serialize)(compiled, (0, _stylis.middleware)([createStylisUrlReplacePlugin(options.filename, options.outputFilename), stylisGlobalPlugin, options.prefixer === false ? null : _stylis.prefixer, createKeyframeSuffixerPlugin(), _stylis.stringify].filter(isMiddleware)));
|
|
109
234
|
}
|
|
110
235
|
return stylisPreprocess;
|
|
111
236
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createStylisPreprocessor.js","names":["path","_interopRequireWildcard","require","_stylis","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","POSIX_SEP","posix","sep","transformUrl","url","outputFilename","sourceFilename","platformPath","relative","dirname","resolve","split","join","stylisGlobalPlugin","element","getGlobalSelectorModifiers","value","match","Error","baseSelector","spaceDelimiter","includeBaseSelector","includeSpaceDelimiter","type","RULESET","props","process","env","NODE_ENV","JSON","stringify","assign","map","cssSelector","_element$parent","includes","children","length","global","parent","tokens","tokenize","selector","len","token","slice","exports","createStylisUrlReplacePlugin","filename","return","replace","p1","p2","p3","p4","createStylisPreprocessor","options","stylisPreprocess","text","compiled","compile","serialize","middleware","prefixer"],"sources":["../../../src/transform/generators/createStylisPreprocessor.ts"],"sourcesContent":["import * as path from 'path';\nimport {\n compile,\n middleware,\n prefixer,\n serialize,\n stringify,\n tokenize,\n RULESET,\n} from 'stylis';\nimport type { Middleware } from 'stylis';\n\nimport type { Options } from '../../types';\n\nconst POSIX_SEP = path.posix.sep;\n\nexport function transformUrl(\n url: string,\n outputFilename: string,\n sourceFilename: string,\n platformPath: typeof path = path\n) {\n // Replace asset path with new path relative to the output CSS\n const relative = platformPath.relative(\n platformPath.dirname(outputFilename),\n // Get the absolute path to the asset from the path relative to the JS file\n platformPath.resolve(platformPath.dirname(sourceFilename), url)\n );\n\n if (platformPath.sep === POSIX_SEP) {\n return relative;\n }\n\n return relative.split(platformPath.sep).join(POSIX_SEP);\n}\n\n/**\n * Stylis plugin that mimics :global() selector behavior from Stylis v3.\n */\nexport const stylisGlobalPlugin: Middleware = (element) => {\n function getGlobalSelectorModifiers(value: string) {\n const match = value.match(/(&\\f( )?)?:global\\(/);\n\n if (match === null) {\n throw new Error(\n `Failed to match :global() selector in \"${value}\". Please report a bug if it happens.`\n );\n }\n\n const [, baseSelector, spaceDelimiter] = match;\n\n return {\n includeBaseSelector: !!baseSelector,\n includeSpaceDelimiter: !!spaceDelimiter,\n };\n }\n\n switch (element.type) {\n case RULESET:\n if (typeof element.props === 'string') {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `\"element.props\" has type \"string\" (${JSON.stringify(\n element.props,\n null,\n 2\n )}), it's not expected. Please report a bug if it happens.`\n );\n }\n\n return;\n }\n\n Object.assign(element, {\n props: element.props.map((cssSelector) => {\n // Avoids calling tokenize() on every string\n if (!cssSelector.includes(':global(')) {\n return cssSelector;\n }\n\n if (element.children.length === 0) {\n Object.assign(element, {\n global: getGlobalSelectorModifiers(element.value),\n });\n return cssSelector;\n }\n\n const { includeBaseSelector, includeSpaceDelimiter } =\n (\n element.parent as unknown as\n | (Element & {\n global: ReturnType<typeof getGlobalSelectorModifiers>;\n })\n | undefined\n )?.global || getGlobalSelectorModifiers(element.value);\n\n const tokens = tokenize(cssSelector);\n let selector = '';\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n\n //\n // Match for \":global(\"\n if (token === ':' && tokens[i + 1] === 'global') {\n //\n // Match for \":global()\"\n if (tokens[i + 2] === '()') {\n selector = [\n ...tokens.slice(i + 4),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n\n //\n // Match for \":global(selector)\"\n selector = [\n tokens[i + 2].slice(1, -1),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n }\n\n return selector;\n }),\n });\n\n break;\n\n default:\n }\n};\n\nexport function createStylisUrlReplacePlugin(\n filename: string,\n outputFilename: string | undefined\n): Middleware {\n return (element) => {\n if (element.type === 'decl' && outputFilename) {\n // When writing to a file, we need to adjust the relative paths inside url(..) expressions.\n // It'll allow css-loader to resolve an imported asset properly.\n // eslint-disable-next-line no-param-reassign\n element.return = element.value.replace(\n /\\b(url\\(([\"']?))(\\.[^)]+?)(\\2\\))/g,\n (match, p1, p2, p3, p4) =>\n p1 + transformUrl(p3, outputFilename, filename) + p4\n );\n }\n };\n}\n\nexport function createStylisPreprocessor(options: Options) {\n function stylisPreprocess(selector: string, text: string): string {\n const compiled = compile(`${selector} {${text}}\\n`);\n\n return serialize(\n compiled,\n middleware([\n createStylisUrlReplacePlugin(options.filename, options.outputFilename),\n stylisGlobalPlugin,\n prefixer,\n stringify,\n ])\n );\n }\n\n return stylisPreprocess;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"createStylisPreprocessor.js","names":["path","_interopRequireWildcard","require","_stylis","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","POSIX_SEP","posix","sep","transformUrl","url","outputFilename","sourceFilename","platformPath","relative","dirname","resolve","split","join","DEFINED_KEYFRAMES","Symbol","ORIGINAL_VALUE_KEY","IS_GLOBAL_KEYFRAMES","getOriginalElementValue","element","_element$ORIGINAL_VAL","value","throwIfNotProd","key","type","process","env","NODE_ENV","Error","JSON","stringify","childrenIsString","children","propsAreStrings","props","Array","isArray","propsIsString","isDeclaration","DECLARATION","isKeyframes","KEYFRAMES","isRuleset","RULESET","stylisGlobalPlugin","getGlobalSelectorModifiers","el","parent","parentValue","length","includes","match","baseSelector","spaceDelimiter","includeBaseSelector","includeSpaceDelimiter","assign","map","cssSelector","tokens","tokenize","selector","len","token","slice","exports","createStylisUrlReplacePlugin","filename","return","replace","_match","p1","_p2","p3","p4","createKeyframeSuffixerPlugin","prefixes","getPrefixedProp","prop","prefix","buildPropsRegexp","isAtRule","at","colon","RegExp","animationNameRegexp","getReplacer","startsWith","searchValue","replacer","input","_input$match","fullMatch","undefined","rest","elementToKeyframeSuffix","replaceAll","animationPropsSet","Set","getDefinedKeyframes","keyframes","sibling","_element$siblings","siblings","add","_element$props$0$star","_element$props$","suffix","replaceFn","globalMatch","scopedMatch","keys","scopedKeyframes","patch","fromEntries","result","globalName","substring","isMiddleware","obj","createStylisPreprocessor","options","stylisPreprocess","text","compiled","compile","serialize","middleware","prefixer","filter"],"sources":["../../../src/transform/generators/createStylisPreprocessor.ts"],"sourcesContent":["/* eslint-disable no-continue */\nimport * as path from 'path';\nimport {\n compile,\n middleware,\n prefixer,\n serialize,\n stringify,\n tokenize,\n RULESET,\n KEYFRAMES,\n DECLARATION,\n} from 'stylis';\nimport type { Middleware, Element } from 'stylis';\n\nimport type { Options } from '../../types';\n\nconst POSIX_SEP = path.posix.sep;\n\nexport function transformUrl(\n url: string,\n outputFilename: string,\n sourceFilename: string,\n platformPath: typeof path = path\n) {\n // Replace asset path with new path relative to the output CSS\n const relative = platformPath.relative(\n platformPath.dirname(outputFilename),\n // Get the absolute path to the asset from the path relative to the JS file\n platformPath.resolve(platformPath.dirname(sourceFilename), url)\n );\n\n if (platformPath.sep === POSIX_SEP) {\n return relative;\n }\n\n return relative.split(platformPath.sep).join(POSIX_SEP);\n}\n\ninterface IGlobalSelectorModifiers {\n includeBaseSelector: boolean;\n includeSpaceDelimiter: boolean;\n}\n\nconst DEFINED_KEYFRAMES = Symbol('definedKeyframes');\nconst ORIGINAL_VALUE_KEY = Symbol('originalValue');\nconst IS_GLOBAL_KEYFRAMES = Symbol('isGlobalKeyframes');\n\nconst getOriginalElementValue = (\n element: (Element & { [ORIGINAL_VALUE_KEY]?: string }) | null\n) => {\n return element ? element[ORIGINAL_VALUE_KEY] ?? element.value : '';\n};\n\nfunction throwIfNotProd(key: string, value: unknown, type: string): false {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `\"element.${key}\" has type \"${type}\" (${JSON.stringify(\n value,\n null,\n 2\n )}), it's not expected. Please report a bug if it happens.`\n );\n }\n\n return false;\n}\n\ntype SpecificElement<TFields> = Omit<Element, keyof TFields> & TFields;\ntype Declaration = SpecificElement<{\n children: string;\n props: string;\n type: typeof DECLARATION;\n}>;\ntype Keyframes = SpecificElement<{\n [IS_GLOBAL_KEYFRAMES]?: boolean;\n props: string[];\n type: typeof KEYFRAMES;\n}>;\ntype Ruleset = SpecificElement<{\n props: string[];\n type: typeof RULESET;\n}>;\n\nfunction childrenIsString(children: string | Element[]): children is string {\n return (\n typeof children === 'string' ||\n throwIfNotProd('children', children, 'Element[]')\n );\n}\n\nfunction propsAreStrings(props: string | string[]): props is string[] {\n return Array.isArray(props) || throwIfNotProd('props', props, 'string');\n}\n\nfunction propsIsString(props: string | string[]): props is string {\n return (\n typeof props === 'string' || throwIfNotProd('props', props, 'string[]')\n );\n}\n\nconst isDeclaration = (element: Element): element is Declaration => {\n return (\n element.type === DECLARATION &&\n propsIsString(element.props) &&\n childrenIsString(element.children)\n );\n};\n\nconst isKeyframes = (element: Element): element is Keyframes => {\n return element.type === KEYFRAMES && propsAreStrings(element.props);\n};\n\nconst isRuleset = (element: Element): element is Ruleset => {\n return element.type === RULESET && propsAreStrings(element.props);\n};\n\n/**\n * Stylis plugin that mimics :global() selector behavior from Stylis v3.\n */\nexport const stylisGlobalPlugin: Middleware = (element) => {\n function getGlobalSelectorModifiers(el: Element): IGlobalSelectorModifiers {\n const { parent } = el;\n\n const value = getOriginalElementValue(el);\n const parentValue = getOriginalElementValue(parent);\n\n if (\n (parent?.children.length === 0 && parentValue.includes(':global(')) ||\n (parent && !value.includes(':global('))\n ) {\n return getGlobalSelectorModifiers(parent);\n }\n\n const match = value.match(/(&\\f( )?)?:global\\(/);\n\n if (match === null) {\n throw new Error(\n `Failed to match :global() selector in \"${value}\". Please report a bug if it happens.`\n );\n }\n\n const [, baseSelector, spaceDelimiter] = match;\n\n return {\n includeBaseSelector: !!baseSelector,\n includeSpaceDelimiter: !!spaceDelimiter,\n };\n }\n\n if (!isRuleset(element)) {\n return;\n }\n\n Object.assign(element, {\n props: element.props.map((cssSelector) => {\n // The value can be changed by other middlewares, but we need an original one with `&`\n Object.assign(element, { [ORIGINAL_VALUE_KEY]: element.value });\n\n // Avoids calling tokenize() on every string\n if (!cssSelector.includes(':global(')) {\n return cssSelector;\n }\n\n if (element.children.length === 0) {\n return cssSelector;\n }\n\n const { includeBaseSelector, includeSpaceDelimiter } =\n getGlobalSelectorModifiers(element);\n\n const tokens = tokenize(cssSelector);\n let selector = '';\n\n for (let i = 0, len = tokens.length; i < len; i++) {\n const token = tokens[i];\n\n //\n // Match for \":global(\"\n if (token === ':' && tokens[i + 1] === 'global') {\n //\n // Match for \":global()\"\n if (tokens[i + 2] === '()') {\n selector = [\n ...tokens.slice(i + 4),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n\n //\n // Match for \":global(selector)\"\n selector = [\n tokens[i + 2].slice(1, -1),\n includeSpaceDelimiter ? ' ' : '',\n ...(includeBaseSelector ? tokens.slice(0, i - 1) : []),\n includeSpaceDelimiter ? '' : ' ',\n ].join('');\n\n break;\n }\n }\n\n return selector;\n }),\n });\n};\n\nexport function createStylisUrlReplacePlugin(\n filename: string,\n outputFilename: string | undefined\n): Middleware {\n return (element) => {\n if (element.type === 'decl' && outputFilename) {\n // When writing to a file, we need to adjust the relative paths inside url(..) expressions.\n // It'll allow css-loader to resolve an imported asset properly.\n // eslint-disable-next-line no-param-reassign\n element.return = element.value.replace(\n /\\b(url\\(([\"']?))(\\.[^)]+?)(\\2\\))/g,\n (_match, p1, _p2, p3, p4) =>\n p1 + transformUrl(p3, outputFilename, filename) + p4\n );\n }\n };\n}\n\nexport function createKeyframeSuffixerPlugin(): Middleware {\n const prefixes = ['webkit', 'moz', 'ms', 'o', ''].map((i) =>\n i ? `-${i}-` : ''\n );\n\n const getPrefixedProp = (prop: string): string[] =>\n prefixes.map((prefix) => `${prefix}${prop}`);\n\n const buildPropsRegexp = (prop: string, isAtRule: boolean) => {\n const [at, colon] = isAtRule ? ['@', ''] : ['', ':'];\n return new RegExp(\n `^(${at}(?:${getPrefixedProp(prop).join('|')})${colon})\\\\s*`\n );\n };\n\n const animationNameRegexp = /:global\\(([\\w_-]+)\\)|([\\w_-]+)/;\n\n const getReplacer = (\n startsWith: RegExp,\n searchValue: RegExp,\n replacer: (substring: string, ...matches: string[]) => string\n ): ((input: string) => string) => {\n return (input) => {\n const [fullMatch] = input.match(startsWith) ?? [];\n if (fullMatch === undefined) {\n return input;\n }\n\n const rest = input.slice(fullMatch.length);\n return fullMatch + rest.replace(searchValue, replacer);\n };\n };\n\n const elementToKeyframeSuffix = (el: Element): string => {\n if (el.parent) {\n return elementToKeyframeSuffix(el.parent);\n }\n\n return el.value.replaceAll(/[^a-zA-Z0-9_-]/g, '');\n };\n\n const animationPropsSet = new Set([\n ...getPrefixedProp('animation'),\n ...getPrefixedProp('animation-name'),\n ]);\n\n const getDefinedKeyframes = (\n element: Element & {\n [DEFINED_KEYFRAMES]?: Set<string>;\n siblings?: (Element & { [IS_GLOBAL_KEYFRAMES]?: boolean })[];\n }\n ): Set<string> => {\n if (element[DEFINED_KEYFRAMES]) {\n return element[DEFINED_KEYFRAMES];\n }\n\n if (element.parent) {\n return getDefinedKeyframes(element.parent);\n }\n\n const keyframes = new Set<string>();\n for (const sibling of element.siblings ?? []) {\n if (!isKeyframes(sibling) || sibling[IS_GLOBAL_KEYFRAMES] === true) {\n continue;\n }\n\n keyframes.add(sibling.props[0]);\n }\n\n Object.assign(element, { [DEFINED_KEYFRAMES]: keyframes });\n\n return keyframes;\n };\n\n return (element) => {\n if (isKeyframes(element) && element.parent) {\n const suffix = elementToKeyframeSuffix(element);\n\n const replaceFn = (\n _match: string,\n globalMatch: string,\n scopedMatch: string\n ): string => globalMatch || `${scopedMatch}-${suffix}`;\n\n Object.assign(element, {\n [IS_GLOBAL_KEYFRAMES]:\n element.props[0]?.startsWith(':global(') ?? false,\n props: element.props.map(\n getReplacer(/^\\s*/, animationNameRegexp, replaceFn)\n ),\n value: getReplacer(\n buildPropsRegexp('keyframes', true),\n animationNameRegexp,\n replaceFn\n )(element.value),\n });\n\n return;\n }\n\n if (isDeclaration(element)) {\n const suffix = elementToKeyframeSuffix(element);\n const keys = [\n 'children',\n 'return',\n 'value',\n ] satisfies (keyof Declaration)[];\n\n if (animationPropsSet.has(element.props)) {\n const scopedKeyframes = getDefinedKeyframes(element);\n const patch = Object.fromEntries(\n keys.map((key) => {\n const tokens = tokenize(element[key]);\n let result = '';\n for (let i = 0; i < tokens.length; i += 1) {\n if (\n tokens[i] === ':' &&\n tokens[i + 1] === 'global' &&\n tokens[i + 2].startsWith('(')\n ) {\n const globalName = tokens[i + 2].substring(\n 1,\n tokens[i + 2].length - 1\n );\n i += 2;\n\n result += globalName;\n if (tokens[i + 1] !== ';') {\n result += ' ';\n }\n continue;\n }\n\n if (scopedKeyframes.has(tokens[i])) {\n result += `${tokens[i]}-${suffix}`;\n continue;\n }\n\n result += tokens[i];\n }\n\n return [key, result];\n })\n );\n\n Object.assign(element, patch);\n }\n }\n };\n}\n\nconst isMiddleware = (obj: Middleware | null): obj is Middleware =>\n obj !== null;\n\nexport function createStylisPreprocessor(\n options: Options & { prefixer?: boolean }\n) {\n function stylisPreprocess(selector: string, text: string): string {\n const compiled = compile(`${selector} {${text}}\\n`);\n\n return serialize(\n compiled,\n middleware(\n [\n createStylisUrlReplacePlugin(\n options.filename,\n options.outputFilename\n ),\n stylisGlobalPlugin,\n options.prefixer === false ? null : prefixer,\n createKeyframeSuffixerPlugin(),\n stringify,\n ].filter(isMiddleware)\n )\n );\n }\n\n return stylisPreprocess;\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wyw-in-js/transform",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@babel/core": "^7.23.5",
|
|
6
6
|
"@babel/generator": "^7.23.5",
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
"source-map": "^0.7.4",
|
|
16
16
|
"stylis": "^4.3.0",
|
|
17
17
|
"ts-invariant": "^0.10.3",
|
|
18
|
-
"@wyw-in-js/processor-utils": "0.
|
|
19
|
-
"@wyw-in-js/shared": "0.
|
|
18
|
+
"@wyw-in-js/processor-utils": "0.4.0",
|
|
19
|
+
"@wyw-in-js/shared": "0.4.0"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@babel/plugin-syntax-typescript": "^7.23.3",
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"glob": "^10.3.10",
|
|
38
38
|
"strip-ansi": "^5.2.0",
|
|
39
39
|
"typescript": "^5.2.2",
|
|
40
|
-
"@wyw-in-js/babel-config": "0.
|
|
41
|
-
"@wyw-in-js/eslint-config": "0.
|
|
42
|
-
"@wyw-in-js/jest-preset": "0.
|
|
43
|
-
"@wyw-in-js/ts-config": "0.
|
|
40
|
+
"@wyw-in-js/babel-config": "0.4.0",
|
|
41
|
+
"@wyw-in-js/eslint-config": "0.4.0",
|
|
42
|
+
"@wyw-in-js/jest-preset": "0.4.0",
|
|
43
|
+
"@wyw-in-js/ts-config": "0.4.0"
|
|
44
44
|
},
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=16.0.0"
|
|
@@ -43,7 +43,10 @@ class Entrypoint extends BaseEntrypoint_1.BaseEntrypoint {
|
|
|
43
43
|
if (this.loadedAndParsed.code !== undefined) {
|
|
44
44
|
services.cache.invalidateIfChanged(name, this.loadedAndParsed.code);
|
|
45
45
|
}
|
|
46
|
-
|
|
46
|
+
const code = this.loadedAndParsed.evaluator === 'ignored'
|
|
47
|
+
? '[IGNORED]'
|
|
48
|
+
: this.originalCode || EMPTY_FILE;
|
|
49
|
+
this.log.extend('source')('created %s (%o)\n%s', name, only, code);
|
|
47
50
|
}
|
|
48
51
|
get ignored() {
|
|
49
52
|
return this.loadedAndParsed.evaluator === 'ignored';
|
|
@@ -8,4 +8,7 @@ export declare function transformUrl(url: string, outputFilename: string, source
|
|
|
8
8
|
*/
|
|
9
9
|
export declare const stylisGlobalPlugin: Middleware;
|
|
10
10
|
export declare function createStylisUrlReplacePlugin(filename: string, outputFilename: string | undefined): Middleware;
|
|
11
|
-
export declare function
|
|
11
|
+
export declare function createKeyframeSuffixerPlugin(): Middleware;
|
|
12
|
+
export declare function createStylisPreprocessor(options: Options & {
|
|
13
|
+
prefixer?: boolean;
|
|
14
|
+
}): (selector: string, text: string) => string;
|