@colorye/react-native-css 0.3.0 → 0.3.2
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/crates/transformer/index.js +1 -0
- package/crates/transformer/transformer.darwin-arm64.node +0 -0
- package/crates/transformer/transformer.darwin-x64.node +0 -0
- package/crates/transformer/transformer.linux-x64-gnu.node +0 -0
- package/crates/transformer/transformer.node +0 -0
- package/crates/transformer/transformer.win32-x64-msvc.node +0 -0
- package/dist/babel.js +68 -159
- package/dist/index.d.ts +22 -8
- package/dist/interop.js +17 -5
- package/dist/metro.js +55 -0
- package/dist/transformer-runtime.js +170 -18
- package/dist/transformer.js +73 -20
- package/package.json +10 -1
- package/src/babel.js +71 -224
- package/src/index.d.ts +22 -8
- package/src/interop.js +13 -1
- package/src/metro.js +42 -0
- package/src/transformer-runtime.js +169 -15
- package/src/transformer.js +75 -15
- package/dist/exported-stylesheet.json +0 -1
- package/dist/features/build-transform.js +0 -575
- package/dist/features/css-calc.js +0 -539
- package/dist/features/css-media.js +0 -77
- package/dist/features/css-transform.js +0 -426
- package/dist/features/css-vars.js +0 -153
- package/dist/features/stylesheet.js +0 -45
- package/dist/utils/babel.js +0 -363
- package/dist/utils/css.js +0 -263
- package/dist/utils/helper.js +0 -11
- package/src/exported-stylesheet.json +0 -1
- package/src/features/build-transform.js +0 -536
- package/src/features/css-calc.js +0 -490
- package/src/features/css-media.js +0 -78
- package/src/features/css-transform.js +0 -446
- package/src/features/css-vars.js +0 -138
- package/src/features/stylesheet.js +0 -29
- package/src/utils/babel.js +0 -425
- package/src/utils/css.js +0 -221
- package/src/utils/helper.js +0 -3
|
@@ -4,14 +4,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
8
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
7
9
|
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
8
10
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
-
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
10
|
-
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
11
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
12
11
|
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
13
12
|
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
14
|
-
function
|
|
13
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
14
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
15
15
|
var RN = {};
|
|
16
16
|
try {
|
|
17
17
|
RN = require("react-native");
|
|
@@ -31,6 +31,9 @@ var Dimensions = RN.Dimensions || {
|
|
|
31
31
|
};
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
|
+
var Platform = RN.Platform || {
|
|
35
|
+
OS: "ios"
|
|
36
|
+
};
|
|
34
37
|
|
|
35
38
|
// ============================================================================
|
|
36
39
|
// Constants
|
|
@@ -77,7 +80,8 @@ function getCacheKey() {
|
|
|
77
80
|
width = _getDimensions.width,
|
|
78
81
|
height = _getDimensions.height;
|
|
79
82
|
var colorScheme = getColorScheme();
|
|
80
|
-
|
|
83
|
+
var os = (Platform === null || Platform === void 0 ? void 0 : Platform.OS) || "ios";
|
|
84
|
+
return "".concat(width, "x").concat(height, ":").concat(colorScheme, ":").concat(os);
|
|
81
85
|
}
|
|
82
86
|
function invalidateCache() {
|
|
83
87
|
cachedDimensions = null;
|
|
@@ -133,6 +137,109 @@ function getFlattenStyle(declarations) {
|
|
|
133
137
|
}
|
|
134
138
|
return Object.keys(result).length > 0 ? result : undefined;
|
|
135
139
|
}
|
|
140
|
+
function resolveCssVars(val, rootVars, localVars) {
|
|
141
|
+
if (typeof val !== "string" || !val.includes("var(")) return val;
|
|
142
|
+
var res = val;
|
|
143
|
+
var iterations = 0;
|
|
144
|
+
while (res.includes("var(") && iterations < 5) {
|
|
145
|
+
iterations++;
|
|
146
|
+
res = res.replace(/var\(\s*(--[a-zA-Z0-9_-]+)(?:\s*,\s*([^)]+))?\s*\)/g, function (_, name, fb) {
|
|
147
|
+
if (localVars && localVars[name] !== undefined) return localVars[name];
|
|
148
|
+
return rootVars[name] !== undefined ? rootVars[name] : fb || "";
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
return res;
|
|
152
|
+
}
|
|
153
|
+
function resolveCssValue(prop, val, rootVars, localVars) {
|
|
154
|
+
if (typeof val !== "string") return val;
|
|
155
|
+
var v = resolveCssVars(val, rootVars, localVars).trim();
|
|
156
|
+
if (prop === "boxShadow") {
|
|
157
|
+
var parts = v.split(/,(?![^(]*\))/).map(function (p) {
|
|
158
|
+
return p.trim();
|
|
159
|
+
}).filter(function (p) {
|
|
160
|
+
return p && !p.includes("0 0 #0000") && !p.includes("0 0 #000") && !p.includes("0 0 0 0");
|
|
161
|
+
});
|
|
162
|
+
if (parts.length === 0) return undefined;
|
|
163
|
+
v = parts.join(", ");
|
|
164
|
+
}
|
|
165
|
+
if (v.startsWith("calc(") && v.endsWith(")")) {
|
|
166
|
+
var inner = v.slice(5, -1).trim();
|
|
167
|
+
inner = inner.replace(/([\d.]+)rem/g, function (_, n) {
|
|
168
|
+
return parseFloat(n) * 16 + "px";
|
|
169
|
+
});
|
|
170
|
+
inner = inner.replace(/px/g, "");
|
|
171
|
+
try {
|
|
172
|
+
v = Function('"use strict"; return (' + inner + ')')();
|
|
173
|
+
} catch (_unused5) {}
|
|
174
|
+
}
|
|
175
|
+
if (typeof v === "string" && v.endsWith("rem")) {
|
|
176
|
+
v = parseFloat(v) * 16;
|
|
177
|
+
} else if (typeof v === "string" && v.endsWith("px")) {
|
|
178
|
+
v = parseFloat(v);
|
|
179
|
+
} else if (typeof v === "string" && (v.endsWith("vh") || v.endsWith("vw"))) {
|
|
180
|
+
v = parseFloat(v) + "%";
|
|
181
|
+
}
|
|
182
|
+
if (prop.toLowerCase().endsWith("radius") && (v === "50%" || v === "9999px" || v === 9999)) {
|
|
183
|
+
return 9999;
|
|
184
|
+
}
|
|
185
|
+
if (prop === "fontWeight") {
|
|
186
|
+
return String(v).replace("px", "").replace("rem", "");
|
|
187
|
+
}
|
|
188
|
+
if (typeof v === "string" && !isNaN(Number(v)) && !["color", "fontFamily", "fontWeight"].includes(prop) && !prop.endsWith("Color")) {
|
|
189
|
+
v = Number(v);
|
|
190
|
+
}
|
|
191
|
+
return v;
|
|
192
|
+
}
|
|
193
|
+
function applyResolvedEntry(resolved, entry, rootVars) {
|
|
194
|
+
if (!entry) return;
|
|
195
|
+
var localVars = {};
|
|
196
|
+
if (entry._static) {
|
|
197
|
+
for (var _i2 = 0, _Object$entries = Object.entries(entry._static); _i2 < _Object$entries.length; _i2++) {
|
|
198
|
+
var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2),
|
|
199
|
+
k = _Object$entries$_i[0],
|
|
200
|
+
v = _Object$entries$_i[1];
|
|
201
|
+
if (k.startsWith("--") && typeof v === "string") {
|
|
202
|
+
localVars[k] = v;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (entry._static) {
|
|
207
|
+
for (var _i3 = 0, _Object$entries2 = Object.entries(entry._static); _i3 < _Object$entries2.length; _i3++) {
|
|
208
|
+
var _Object$entries2$_i = _slicedToArray(_Object$entries2[_i3], 2),
|
|
209
|
+
_k = _Object$entries2$_i[0],
|
|
210
|
+
_v = _Object$entries2$_i[1];
|
|
211
|
+
if (_k.startsWith("--")) continue;
|
|
212
|
+
var val = resolveCssValue(_k, _v, rootVars, localVars);
|
|
213
|
+
if (val !== undefined && val !== null) {
|
|
214
|
+
resolved[_k] = val;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (entry._dynamic) {
|
|
219
|
+
for (var _i4 = 0, _Object$entries3 = Object.entries(entry._dynamic); _i4 < _Object$entries3.length; _i4++) {
|
|
220
|
+
var _Object$entries3$_i = _slicedToArray(_Object$entries3[_i4], 2),
|
|
221
|
+
_k2 = _Object$entries3$_i[0],
|
|
222
|
+
_v2 = _Object$entries3$_i[1];
|
|
223
|
+
if (_k2.startsWith("--")) continue;
|
|
224
|
+
var _val = resolveCssValue(_k2, _v2, rootVars, localVars);
|
|
225
|
+
if (_val !== undefined && _val !== null) {
|
|
226
|
+
resolved[_k2] = _val;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
if (!entry._static && !entry._dynamic) {
|
|
231
|
+
for (var _i5 = 0, _Object$entries4 = Object.entries(entry); _i5 < _Object$entries4.length; _i5++) {
|
|
232
|
+
var _Object$entries4$_i = _slicedToArray(_Object$entries4[_i5], 2),
|
|
233
|
+
_k3 = _Object$entries4$_i[0],
|
|
234
|
+
_v3 = _Object$entries4$_i[1];
|
|
235
|
+
if (_k3.startsWith("--")) continue;
|
|
236
|
+
var _val2 = resolveCssValue(_k3, _v3, rootVars, localVars);
|
|
237
|
+
if (_val2 !== undefined && _val2 !== null) {
|
|
238
|
+
resolved[_k3] = _val2;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
136
243
|
|
|
137
244
|
// ============================================================================
|
|
138
245
|
// Main Native Rust Stylesheet Transform
|
|
@@ -142,6 +249,7 @@ function transformStyles(stylesheet, classNames) {
|
|
|
142
249
|
if (stylesheet["default"] && _typeof(stylesheet["default"]) === "object" && !stylesheet[":root"]) {
|
|
143
250
|
stylesheet = stylesheet["default"];
|
|
144
251
|
}
|
|
252
|
+
var rootVars = stylesheet[":root"] || {};
|
|
145
253
|
var _getDimensions2 = getDimensions(),
|
|
146
254
|
width = _getDimensions2.width,
|
|
147
255
|
height = _getDimensions2.height;
|
|
@@ -156,21 +264,55 @@ function transformStyles(stylesheet, classNames) {
|
|
|
156
264
|
}
|
|
157
265
|
var classes = classNames.trim().split(/\s+/);
|
|
158
266
|
var resolved = {};
|
|
267
|
+
var os = (Platform === null || Platform === void 0 ? void 0 : Platform.OS) || "ios";
|
|
159
268
|
var _iterator = _createForOfIteratorHelper(classes),
|
|
160
269
|
_step;
|
|
161
270
|
try {
|
|
162
271
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
163
272
|
var cls = _step.value;
|
|
164
273
|
if (!cls) continue;
|
|
274
|
+
|
|
275
|
+
// Platform variants: ios:, android:, web:
|
|
276
|
+
if (cls.startsWith("ios:")) {
|
|
277
|
+
if (os !== "ios") continue;
|
|
278
|
+
cls = cls.slice(4);
|
|
279
|
+
} else if (cls.startsWith("android:")) {
|
|
280
|
+
if (os !== "android") continue;
|
|
281
|
+
cls = cls.slice(8);
|
|
282
|
+
} else if (cls.startsWith("web:")) {
|
|
283
|
+
if (os !== "web") continue;
|
|
284
|
+
cls = cls.slice(4);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
// Media query variants: sm:, md:, lg:, xl:, 2xl:
|
|
288
|
+
if (cls.startsWith("sm:")) {
|
|
289
|
+
if (width < 640) continue;
|
|
290
|
+
cls = cls.slice(3);
|
|
291
|
+
} else if (cls.startsWith("md:")) {
|
|
292
|
+
if (width < 768) continue;
|
|
293
|
+
cls = cls.slice(3);
|
|
294
|
+
} else if (cls.startsWith("lg:")) {
|
|
295
|
+
if (width < 1024) continue;
|
|
296
|
+
cls = cls.slice(3);
|
|
297
|
+
} else if (cls.startsWith("xl:")) {
|
|
298
|
+
if (width < 1280) continue;
|
|
299
|
+
cls = cls.slice(3);
|
|
300
|
+
} else if (cls.startsWith("2xl:")) {
|
|
301
|
+
if (width < 1536) continue;
|
|
302
|
+
cls = cls.slice(4);
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
// Dark / Light variants
|
|
306
|
+
if (cls.startsWith("dark:")) {
|
|
307
|
+
if (colorScheme !== "dark") continue;
|
|
308
|
+
cls = cls.slice(5);
|
|
309
|
+
} else if (cls.startsWith("light:")) {
|
|
310
|
+
if (colorScheme !== "light") continue;
|
|
311
|
+
cls = cls.slice(6);
|
|
312
|
+
}
|
|
165
313
|
var entry = stylesheet[cls];
|
|
166
314
|
if (!entry) continue;
|
|
167
|
-
|
|
168
|
-
Object.assign(resolved, entry._static);
|
|
169
|
-
} else if (entry._dynamic) {
|
|
170
|
-
Object.assign(resolved, entry._dynamic);
|
|
171
|
-
} else if (_typeof(entry) === "object") {
|
|
172
|
-
Object.assign(resolved, entry);
|
|
173
|
-
}
|
|
315
|
+
applyResolvedEntry(resolved, entry, rootVars);
|
|
174
316
|
}
|
|
175
317
|
} catch (err) {
|
|
176
318
|
_iterator.e(err);
|
|
@@ -187,14 +329,16 @@ function transformStyles(stylesheet, classNames) {
|
|
|
187
329
|
// ============================================================================
|
|
188
330
|
function getInheritStyle(declarations) {
|
|
189
331
|
if (!declarations) return undefined;
|
|
332
|
+
var flat = Array.isArray(declarations) ? getFlattenStyle(declarations) : declarations;
|
|
333
|
+
if (!flat || _typeof(flat) !== "object") return undefined;
|
|
190
334
|
var inheritDeclarations = {};
|
|
191
335
|
var _iterator2 = _createForOfIteratorHelper(INHERIT_PROPERTIES),
|
|
192
336
|
_step2;
|
|
193
337
|
try {
|
|
194
338
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
195
339
|
var key = _step2.value;
|
|
196
|
-
if (
|
|
197
|
-
inheritDeclarations[key] =
|
|
340
|
+
if (flat[key] !== undefined) {
|
|
341
|
+
inheritDeclarations[key] = flat[key];
|
|
198
342
|
}
|
|
199
343
|
}
|
|
200
344
|
} catch (err) {
|
|
@@ -256,13 +400,21 @@ function mergeStyles(inheritStyle, staticStyles, inlineStyle) {
|
|
|
256
400
|
var result = {};
|
|
257
401
|
if (inherited) Object.assign(result, inherited);
|
|
258
402
|
if (staticStyles) {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
403
|
+
var flatStatic = Array.isArray(staticStyles) ? getFlattenStyle(staticStyles) : staticStyles;
|
|
404
|
+
if (flatStatic && _typeof(flatStatic) === "object") {
|
|
405
|
+
for (var _key in flatStatic) {
|
|
406
|
+
if (!_key.startsWith("--")) {
|
|
407
|
+
result[_key] = flatStatic[_key];
|
|
408
|
+
}
|
|
262
409
|
}
|
|
263
410
|
}
|
|
264
411
|
}
|
|
265
|
-
if (inlineStyle)
|
|
412
|
+
if (inlineStyle) {
|
|
413
|
+
var flatInline = Array.isArray(inlineStyle) ? getFlattenStyle(inlineStyle) : inlineStyle;
|
|
414
|
+
if (flatInline && _typeof(flatInline) === "object") {
|
|
415
|
+
Object.assign(result, flatInline);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
266
418
|
return Object.keys(result).length > 0 ? result : undefined;
|
|
267
419
|
}
|
|
268
420
|
var _default = exports["default"] = {
|
package/dist/transformer.js
CHANGED
|
@@ -9,14 +9,37 @@ exports.transform = transform;
|
|
|
9
9
|
exports.writeStylesheetJSON = writeStylesheetJSON;
|
|
10
10
|
var _fs = _interopRequireDefault(require("fs"));
|
|
11
11
|
var _path = _interopRequireDefault(require("path"));
|
|
12
|
-
var _stylesheet = _interopRequireDefault(require("./features/stylesheet"));
|
|
13
|
-
var _css = require("./utils/css");
|
|
14
12
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
+
var _native = null;
|
|
14
|
+
try {
|
|
15
|
+
_native = require("./native");
|
|
16
|
+
} catch (_unused) {
|
|
17
|
+
try {
|
|
18
|
+
_native = require("../crates/transformer");
|
|
19
|
+
} catch (_unused2) {}
|
|
20
|
+
}
|
|
21
|
+
var cachedStylesheet = null;
|
|
22
|
+
function getCachedStylesheetJson(projectRoot) {
|
|
23
|
+
if (cachedStylesheet) return cachedStylesheet;
|
|
24
|
+
try {
|
|
25
|
+
var root = projectRoot || process.cwd();
|
|
26
|
+
var candidates = [_path["default"].resolve(root, "index.css.json"), _path["default"].resolve(root, "src/assets/styles/index.css.json"), _path["default"].join(__dirname, "exported-stylesheet.json"), _path["default"].resolve(__dirname, "../src/exported-stylesheet.json")];
|
|
27
|
+
for (var _i = 0, _candidates = candidates; _i < _candidates.length; _i++) {
|
|
28
|
+
var p = _candidates[_i];
|
|
29
|
+
if (_fs["default"].existsSync(p)) {
|
|
30
|
+
cachedStylesheet = _fs["default"].readFileSync(p, "utf-8");
|
|
31
|
+
return cachedStylesheet;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
} catch (_unused3) {}
|
|
35
|
+
return "{}";
|
|
36
|
+
}
|
|
15
37
|
function getStylesheet(css, filename) {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var jsonContent =
|
|
38
|
+
if (!_native || !_native.compileCss) {
|
|
39
|
+
throw new Error("[@colorye/react-native-css] Native Rust transformer binding is not loaded. Cannot compile CSS.");
|
|
40
|
+
}
|
|
41
|
+
var jsonContent = _native.compileCss(css);
|
|
42
|
+
cachedStylesheet = jsonContent;
|
|
20
43
|
writeStylesheetJSON(jsonContent, filename);
|
|
21
44
|
return jsonContent;
|
|
22
45
|
}
|
|
@@ -37,7 +60,7 @@ function writeStylesheetJSON(content, filename) {
|
|
|
37
60
|
mode: 493
|
|
38
61
|
});
|
|
39
62
|
}
|
|
40
|
-
} catch (
|
|
63
|
+
} catch (_unused4) {
|
|
41
64
|
// Silently fail - Babel will fall back to runtime
|
|
42
65
|
}
|
|
43
66
|
}
|
|
@@ -49,29 +72,29 @@ function transform(_ref) {
|
|
|
49
72
|
var resolveTransformer = function () {
|
|
50
73
|
try {
|
|
51
74
|
return require("@expo/metro-config/babel-transformer");
|
|
52
|
-
} catch (
|
|
75
|
+
} catch (_unused5) {
|
|
53
76
|
try {
|
|
54
77
|
return require("@react-native/metro-babel-transformer");
|
|
55
|
-
} catch (
|
|
78
|
+
} catch (_unused6) {
|
|
56
79
|
try {
|
|
57
80
|
return require("metro-react-native-babel-transformer");
|
|
58
|
-
} catch (
|
|
81
|
+
} catch (_unused7) {
|
|
59
82
|
var resolveOptions = {
|
|
60
83
|
paths: [projectRoot]
|
|
61
84
|
};
|
|
62
85
|
try {
|
|
63
86
|
var resolved = require.resolve("@expo/metro-config/babel-transformer", resolveOptions);
|
|
64
87
|
return eval("require")(resolved);
|
|
65
|
-
} catch (
|
|
88
|
+
} catch (_unused8) {
|
|
66
89
|
try {
|
|
67
90
|
var _resolved = require.resolve("@react-native/metro-babel-transformer", resolveOptions);
|
|
68
91
|
return eval("require")(_resolved);
|
|
69
|
-
} catch (
|
|
92
|
+
} catch (_unused9) {
|
|
70
93
|
try {
|
|
71
94
|
var _resolved2 = require.resolve("metro-react-native-babel-transformer", resolveOptions);
|
|
72
95
|
return eval("require")(_resolved2);
|
|
73
|
-
} catch (
|
|
74
|
-
|
|
96
|
+
} catch (_unused0) {
|
|
97
|
+
return null;
|
|
75
98
|
}
|
|
76
99
|
}
|
|
77
100
|
}
|
|
@@ -81,17 +104,47 @@ function transform(_ref) {
|
|
|
81
104
|
}();
|
|
82
105
|
if (filename.endsWith(".css")) {
|
|
83
106
|
var jsonContent = getStylesheet(src, filename);
|
|
107
|
+
var cssCode = "const sheet = ".concat(jsonContent, ";\nmodule.exports = sheet;\nmodule.exports.default = sheet;\nmodule.exports.__esModule = true;");
|
|
108
|
+
if (resolveTransformer && resolveTransformer.transform) {
|
|
109
|
+
return resolveTransformer.transform({
|
|
110
|
+
src: cssCode,
|
|
111
|
+
filename: filename,
|
|
112
|
+
options: options
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
code: cssCode,
|
|
117
|
+
map: null
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// Fast native Rust SWC transformer for JSX/TSX
|
|
122
|
+
if (_native && _native.transformJsx && (filename.endsWith(".tsx") || filename.endsWith(".jsx")) && !filename.includes("node_modules")) {
|
|
123
|
+
try {
|
|
124
|
+
var stylesheetJson = (options === null || options === void 0 ? void 0 : options.stylesheetJson) || getCachedStylesheetJson(projectRoot);
|
|
125
|
+
var res = _native.transformJsx(src, {
|
|
126
|
+
filename: filename,
|
|
127
|
+
stylesheetJson: stylesheetJson,
|
|
128
|
+
sourceMaps: true
|
|
129
|
+
});
|
|
130
|
+
if (res && res.code) {
|
|
131
|
+
src = res.code;
|
|
132
|
+
}
|
|
133
|
+
} catch (_unused1) {
|
|
134
|
+
// Graceful fallback to Babel if native transform hits unexpected syntax
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (resolveTransformer && resolveTransformer.transform) {
|
|
84
138
|
return resolveTransformer.transform({
|
|
85
|
-
src:
|
|
139
|
+
src: src,
|
|
86
140
|
filename: filename,
|
|
87
141
|
options: options
|
|
88
142
|
});
|
|
89
143
|
}
|
|
90
|
-
return
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
});
|
|
144
|
+
return {
|
|
145
|
+
code: src,
|
|
146
|
+
map: null
|
|
147
|
+
};
|
|
95
148
|
}
|
|
96
149
|
var _default = exports["default"] = {
|
|
97
150
|
transform: transform,
|
package/package.json
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@colorye/react-native-css",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"author": "Rye Nguyen <ryenguyen7411@gmail.com>",
|
|
5
5
|
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/colorye/react-native-css.git"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
6
13
|
"main": "./dist/index.js",
|
|
7
14
|
"types": "./dist/index.d.ts",
|
|
8
15
|
"packageManager": "yarn@4.18.0+sha512.fcb8716fe7cd0eece141ffc18b92193a9df9204c1ba83189c288835223fc0bbe64af473bab0d5e9927a7daeb5caf2bb07eb2787cc9338ca040ea125f2a1f2f7e",
|
|
@@ -41,10 +48,12 @@
|
|
|
41
48
|
"default": "./dist/index.js"
|
|
42
49
|
},
|
|
43
50
|
"./types": "./types.d.ts",
|
|
51
|
+
"./metro": "./dist/metro.js",
|
|
44
52
|
"./transformer": "./dist/transformer.js",
|
|
45
53
|
"./native": "./crates/transformer/index.js",
|
|
46
54
|
"./babel": "./dist/babel.js",
|
|
47
55
|
"./exported-stylesheet.json": "./dist/exported-stylesheet.json",
|
|
56
|
+
"./dist/*": "./dist/*",
|
|
48
57
|
"./dist/transformer-runtime": "./dist/transformer-runtime.js",
|
|
49
58
|
"./dist/transformer-runtime.js": "./dist/transformer-runtime.js"
|
|
50
59
|
}
|