@ecrindigital/facetpack 0.1.6 → 0.1.8

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/dist/index.cjs CHANGED
@@ -248,7 +248,11 @@ function wrapModule(id, code) {
248
248
  var import_module = require("module");
249
249
  var import_path = require("path");
250
250
  var DEFAULT_SOURCE_EXTS = ["ts", "tsx", "js", "jsx", "mjs", "cjs"];
251
- var require2 = import_module.createRequire("file:///Users/alexischangridel/Projects/ecrindigital/facetpack/packages/facetpack/src/withFacetpack.ts");
251
+ function getPackageDir() {
252
+ const projectRequire = import_module.createRequire(import_path.join(process.cwd(), "package.json"));
253
+ const packageJsonPath = projectRequire.resolve("@ecrindigital/facetpack/package.json");
254
+ return import_path.dirname(packageJsonPath);
255
+ }
252
256
  function findFallbackTransformer(projectRoot) {
253
257
  const projectRequire = import_module.createRequire(import_path.join(projectRoot, "package.json"));
254
258
  const transformerPaths = [
@@ -265,9 +269,10 @@ function findFallbackTransformer(projectRoot) {
265
269
  }
266
270
  function withFacetpack(config, options = {}) {
267
271
  const sourceExts = options.sourceExts ?? DEFAULT_SOURCE_EXTS;
268
- const transformerPath = require2.resolve("@ecrindigital/facetpack/transformer");
272
+ const packageDir = getPackageDir();
273
+ const transformerPath = import_path.join(packageDir, "dist", "transformer.js");
269
274
  const useMinifier = options.minifier !== false;
270
- const minifierPath = useMinifier ? require2.resolve("@ecrindigital/facetpack/minifier") : config.transformer?.minifierPath;
275
+ const minifierPath = useMinifier ? import_path.join(packageDir, "dist", "minifier.js") : config.transformer?.minifierPath;
271
276
  const minifierConfig = typeof options.minifier === "object" ? options.minifier : {};
272
277
  const useTreeShake = options.treeShake !== false;
273
278
  const existingSerializer = config.serializer?.customSerializer;
@@ -435,10 +440,31 @@ function getOptions() {
435
440
  function isNodeModules(filename) {
436
441
  return filename.includes("node_modules");
437
442
  }
438
- function shouldTransform(filename, options) {
443
+ var BABEL_REQUIRED_PATTERNS = [
444
+ /'worklet'/,
445
+ /"worklet"/,
446
+ /useAnimatedStyle/,
447
+ /useAnimatedProps/,
448
+ /useDerivedValue/,
449
+ /useAnimatedReaction/,
450
+ /useAnimatedScrollHandler/,
451
+ /useAnimatedGestureHandler/,
452
+ /runOnUI/,
453
+ /runOnJS/
454
+ ];
455
+ function requiresBabelTransform(src) {
456
+ return BABEL_REQUIRED_PATTERNS.some((pattern) => pattern.test(src));
457
+ }
458
+ function shouldTransform(filename, src, options) {
439
459
  if (isNodeModules(filename)) {
440
460
  return false;
441
461
  }
462
+ if (requiresBabelTransform(src)) {
463
+ if (process.env.FACETPACK_DEBUG) {
464
+ console.log(`[Facetpack] Babel required for worklets: ${filename}`);
465
+ }
466
+ return false;
467
+ }
442
468
  const ext = filename.split(".").pop()?.toLowerCase();
443
469
  if (!ext)
444
470
  return false;
@@ -450,7 +476,7 @@ function transform(params) {
450
476
  if (process.env.FACETPACK_DEBUG) {
451
477
  console.log(`[Facetpack] Processing: ${filename}`);
452
478
  }
453
- if (!shouldTransform(filename, opts)) {
479
+ if (!shouldTransform(filename, src, opts)) {
454
480
  if (process.env.FACETPACK_DEBUG) {
455
481
  console.log(`[Facetpack] Fallback: ${filename}`);
456
482
  }
@@ -501,7 +527,7 @@ function createTransformer(options = {}) {
501
527
  return {
502
528
  transform(params) {
503
529
  const { filename, src, options: metroOptions } = params;
504
- if (!shouldTransform(filename, opts)) {
530
+ if (!shouldTransform(filename, src, opts)) {
505
531
  return getFallbackTransformer().transform(params);
506
532
  }
507
533
  const isClassic = opts.jsxRuntime === "classic";
package/dist/index.js CHANGED
@@ -292,10 +292,31 @@ function getOptions() {
292
292
  function isNodeModules(filename) {
293
293
  return filename.includes("node_modules");
294
294
  }
295
- function shouldTransform(filename, options) {
295
+ var BABEL_REQUIRED_PATTERNS = [
296
+ /'worklet'/,
297
+ /"worklet"/,
298
+ /useAnimatedStyle/,
299
+ /useAnimatedProps/,
300
+ /useDerivedValue/,
301
+ /useAnimatedReaction/,
302
+ /useAnimatedScrollHandler/,
303
+ /useAnimatedGestureHandler/,
304
+ /runOnUI/,
305
+ /runOnJS/
306
+ ];
307
+ function requiresBabelTransform(src) {
308
+ return BABEL_REQUIRED_PATTERNS.some((pattern) => pattern.test(src));
309
+ }
310
+ function shouldTransform(filename, src, options) {
296
311
  if (isNodeModules(filename)) {
297
312
  return false;
298
313
  }
314
+ if (requiresBabelTransform(src)) {
315
+ if (process.env.FACETPACK_DEBUG) {
316
+ console.log(`[Facetpack] Babel required for worklets: ${filename}`);
317
+ }
318
+ return false;
319
+ }
299
320
  const ext = filename.split(".").pop()?.toLowerCase();
300
321
  if (!ext)
301
322
  return false;
@@ -307,7 +328,7 @@ function transform(params) {
307
328
  if (process.env.FACETPACK_DEBUG) {
308
329
  console.log(`[Facetpack] Processing: ${filename}`);
309
330
  }
310
- if (!shouldTransform(filename, opts)) {
331
+ if (!shouldTransform(filename, src, opts)) {
311
332
  if (process.env.FACETPACK_DEBUG) {
312
333
  console.log(`[Facetpack] Fallback: ${filename}`);
313
334
  }
@@ -358,7 +379,7 @@ function createTransformer(options = {}) {
358
379
  return {
359
380
  transform(params) {
360
381
  const { filename, src, options: metroOptions } = params;
361
- if (!shouldTransform(filename, opts)) {
382
+ if (!shouldTransform(filename, src, opts)) {
362
383
  return getFallbackTransformer().transform(params);
363
384
  }
364
385
  const isClassic = opts.jsxRuntime === "classic";
@@ -419,9 +440,13 @@ var minifier_default = minify;
419
440
  // src/withFacetpack.ts
420
441
  import { resolveSync } from "@ecrindigital/facetpack-native";
421
442
  import { createRequire as createRequire2 } from "module";
422
- import { join } from "path";
443
+ import { join, dirname } from "path";
423
444
  var DEFAULT_SOURCE_EXTS = ["ts", "tsx", "js", "jsx", "mjs", "cjs"];
424
- var require2 = createRequire2(import.meta.url);
445
+ function getPackageDir() {
446
+ const projectRequire = createRequire2(join(process.cwd(), "package.json"));
447
+ const packageJsonPath = projectRequire.resolve("@ecrindigital/facetpack/package.json");
448
+ return dirname(packageJsonPath);
449
+ }
425
450
  function findFallbackTransformer(projectRoot) {
426
451
  const projectRequire = createRequire2(join(projectRoot, "package.json"));
427
452
  const transformerPaths = [
@@ -438,9 +463,10 @@ function findFallbackTransformer(projectRoot) {
438
463
  }
439
464
  function withFacetpack(config, options = {}) {
440
465
  const sourceExts = options.sourceExts ?? DEFAULT_SOURCE_EXTS;
441
- const transformerPath = require2.resolve("@ecrindigital/facetpack/transformer");
466
+ const packageDir = getPackageDir();
467
+ const transformerPath = join(packageDir, "dist", "transformer.js");
442
468
  const useMinifier = options.minifier !== false;
443
- const minifierPath = useMinifier ? require2.resolve("@ecrindigital/facetpack/minifier") : config.transformer?.minifierPath;
469
+ const minifierPath = useMinifier ? join(packageDir, "dist", "minifier.js") : config.transformer?.minifierPath;
444
470
  const minifierConfig = typeof options.minifier === "object" ? options.minifier : {};
445
471
  const useTreeShake = options.treeShake !== false;
446
472
  const existingSerializer = config.serializer?.customSerializer;
@@ -134,10 +134,31 @@ function getOptions() {
134
134
  function isNodeModules(filename) {
135
135
  return filename.includes("node_modules");
136
136
  }
137
- function shouldTransform(filename, options) {
137
+ var BABEL_REQUIRED_PATTERNS = [
138
+ /'worklet'/,
139
+ /"worklet"/,
140
+ /useAnimatedStyle/,
141
+ /useAnimatedProps/,
142
+ /useDerivedValue/,
143
+ /useAnimatedReaction/,
144
+ /useAnimatedScrollHandler/,
145
+ /useAnimatedGestureHandler/,
146
+ /runOnUI/,
147
+ /runOnJS/
148
+ ];
149
+ function requiresBabelTransform(src) {
150
+ return BABEL_REQUIRED_PATTERNS.some((pattern) => pattern.test(src));
151
+ }
152
+ function shouldTransform(filename, src, options) {
138
153
  if (isNodeModules(filename)) {
139
154
  return false;
140
155
  }
156
+ if (requiresBabelTransform(src)) {
157
+ if (process.env.FACETPACK_DEBUG) {
158
+ console.log(`[Facetpack] Babel required for worklets: ${filename}`);
159
+ }
160
+ return false;
161
+ }
141
162
  const ext = filename.split(".").pop()?.toLowerCase();
142
163
  if (!ext)
143
164
  return false;
@@ -149,7 +170,7 @@ function transform(params) {
149
170
  if (process.env.FACETPACK_DEBUG) {
150
171
  console.log(`[Facetpack] Processing: ${filename}`);
151
172
  }
152
- if (!shouldTransform(filename, opts)) {
173
+ if (!shouldTransform(filename, src, opts)) {
153
174
  if (process.env.FACETPACK_DEBUG) {
154
175
  console.log(`[Facetpack] Fallback: ${filename}`);
155
176
  }
@@ -200,7 +221,7 @@ function createTransformer(options = {}) {
200
221
  return {
201
222
  transform(params) {
202
223
  const { filename, src, options: metroOptions } = params;
203
- if (!shouldTransform(filename, opts)) {
224
+ if (!shouldTransform(filename, src, opts)) {
204
225
  return getFallbackTransformer().transform(params);
205
226
  }
206
227
  const isClassic = opts.jsxRuntime === "classic";
@@ -1 +1 @@
1
- {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAuFjF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAgCD,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAgElE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,gBAAqB;sBAI1C,eAAe,GAAG,eAAe;EA4BtD"}
1
+ {"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../src/transformer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAuFjF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAwDD,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CAgElE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,gBAAqB;sBAI1C,eAAe,GAAG,eAAe;EA4BtD"}
@@ -126,10 +126,31 @@ function getOptions() {
126
126
  function isNodeModules(filename) {
127
127
  return filename.includes("node_modules");
128
128
  }
129
- function shouldTransform(filename, options) {
129
+ var BABEL_REQUIRED_PATTERNS = [
130
+ /'worklet'/,
131
+ /"worklet"/,
132
+ /useAnimatedStyle/,
133
+ /useAnimatedProps/,
134
+ /useDerivedValue/,
135
+ /useAnimatedReaction/,
136
+ /useAnimatedScrollHandler/,
137
+ /useAnimatedGestureHandler/,
138
+ /runOnUI/,
139
+ /runOnJS/
140
+ ];
141
+ function requiresBabelTransform(src) {
142
+ return BABEL_REQUIRED_PATTERNS.some((pattern) => pattern.test(src));
143
+ }
144
+ function shouldTransform(filename, src, options) {
130
145
  if (isNodeModules(filename)) {
131
146
  return false;
132
147
  }
148
+ if (requiresBabelTransform(src)) {
149
+ if (process.env.FACETPACK_DEBUG) {
150
+ console.log(`[Facetpack] Babel required for worklets: ${filename}`);
151
+ }
152
+ return false;
153
+ }
133
154
  const ext = filename.split(".").pop()?.toLowerCase();
134
155
  if (!ext)
135
156
  return false;
@@ -141,7 +162,7 @@ function transform(params) {
141
162
  if (process.env.FACETPACK_DEBUG) {
142
163
  console.log(`[Facetpack] Processing: ${filename}`);
143
164
  }
144
- if (!shouldTransform(filename, opts)) {
165
+ if (!shouldTransform(filename, src, opts)) {
145
166
  if (process.env.FACETPACK_DEBUG) {
146
167
  console.log(`[Facetpack] Fallback: ${filename}`);
147
168
  }
@@ -192,7 +213,7 @@ function createTransformer(options = {}) {
192
213
  return {
193
214
  transform(params) {
194
215
  const { filename, src, options: metroOptions } = params;
195
- if (!shouldTransform(filename, opts)) {
216
+ if (!shouldTransform(filename, src, opts)) {
196
217
  return getFallbackTransformer().transform(params);
197
218
  }
198
219
  const isClassic = opts.jsxRuntime === "classic";
@@ -1 +1 @@
1
- {"version":3,"file":"withFacetpack.d.ts","sourceRoot":"","sources":["../src/withFacetpack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAkB,MAAM,SAAS,CAAA;AA8B5E,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,CAgGb;AASD,wBAAgB,gBAAgB,IAAI,gBAAgB,CASnD"}
1
+ {"version":3,"file":"withFacetpack.d.ts","sourceRoot":"","sources":["../src/withFacetpack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAkB,MAAM,SAAS,CAAA;AAkC5E,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,CAiGb;AASD,wBAAgB,gBAAgB,IAAI,gBAAgB,CASnD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecrindigital/facetpack",
3
- "version": "0.1.6",
3
+ "version": "0.1.8",
4
4
  "description": "High-performance Metro transformer powered by OXC",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -25,10 +25,12 @@
25
25
  "types": "./dist/serializer.d.ts",
26
26
  "import": "./dist/serializer.js",
27
27
  "require": "./dist/serializer.cjs"
28
- }
28
+ },
29
+ "./package.json": "./package.json"
29
30
  },
30
31
  "files": [
31
- "dist"
32
+ "dist",
33
+ "package.json"
32
34
  ],
33
35
  "author": {
34
36
  "name": "Ecrin Digital",
@@ -76,7 +78,8 @@
76
78
  "dev": "bun build ./src/index.ts --outdir ./dist --target node --watch",
77
79
  "typecheck": "tsc --noEmit",
78
80
  "test": "bun test",
79
- "clean": "rm -rf dist"
81
+ "clean": "rm -rf dist",
82
+ "prepublishOnly": "bun run build"
80
83
  },
81
84
  "engines": {
82
85
  "node": ">=18"