@ecrindigital/facetpack 0.1.4 → 0.1.5

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
@@ -246,8 +246,23 @@ function wrapModule(id, code) {
246
246
 
247
247
  // src/withFacetpack.ts
248
248
  var import_module = require("module");
249
+ var import_path = require("path");
249
250
  var DEFAULT_SOURCE_EXTS = ["ts", "tsx", "js", "jsx", "mjs", "cjs"];
250
251
  var require2 = import_module.createRequire("file:///Users/alexischangridel/Projects/ecrindigital/facetpack/packages/facetpack/src/withFacetpack.ts");
252
+ function findFallbackTransformer(projectRoot) {
253
+ const projectRequire = import_module.createRequire(import_path.join(projectRoot, "package.json"));
254
+ const transformerPaths = [
255
+ "@expo/metro-config/babel-transformer",
256
+ "@react-native/metro-babel-transformer",
257
+ "metro-react-native-babel-transformer"
258
+ ];
259
+ for (const transformerPath of transformerPaths) {
260
+ try {
261
+ return projectRequire.resolve(transformerPath);
262
+ } catch {}
263
+ }
264
+ return;
265
+ }
251
266
  function withFacetpack(config, options = {}) {
252
267
  const sourceExts = options.sourceExts ?? DEFAULT_SOURCE_EXTS;
253
268
  const transformerPath = require2.resolve("@ecrindigital/facetpack/transformer");
@@ -257,7 +272,10 @@ function withFacetpack(config, options = {}) {
257
272
  const useTreeShake = options.treeShake !== false;
258
273
  const existingSerializer = config.serializer?.customSerializer;
259
274
  const customSerializer = useTreeShake ? createFacetpackSerializer(existingSerializer, { treeShake: true }) : existingSerializer;
260
- storeTransformerOptions(options);
275
+ const projectRoot = config.projectRoot || process.cwd();
276
+ const originalTransformerPath = config.transformer?.babelTransformerPath;
277
+ const fallbackTransformerPath = originalTransformerPath || findFallbackTransformer(projectRoot);
278
+ storeTransformerOptions(options, fallbackTransformerPath);
261
279
  return {
262
280
  ...config,
263
281
  transformer: {
@@ -314,8 +332,11 @@ function withFacetpack(config, options = {}) {
314
332
  }
315
333
  };
316
334
  }
317
- function storeTransformerOptions(options) {
335
+ function storeTransformerOptions(options, fallbackTransformerPath) {
318
336
  process.env.FACETPACK_OPTIONS = JSON.stringify(options);
337
+ if (fallbackTransformerPath) {
338
+ process.env.FACETPACK_FALLBACK_TRANSFORMER = fallbackTransformerPath;
339
+ }
319
340
  }
320
341
  function getStoredOptions() {
321
342
  try {
@@ -380,16 +401,14 @@ function getFallbackTransformer() {
380
401
  if (fallbackTransformer) {
381
402
  return fallbackTransformer;
382
403
  }
383
- const transformerPaths = [
384
- "@expo/metro-config/babel-transformer",
385
- "@react-native/metro-babel-transformer",
386
- "metro-react-native-babel-transformer"
387
- ];
388
- for (const transformerPath of transformerPaths) {
404
+ const fallbackPath = process.env.FACETPACK_FALLBACK_TRANSFORMER;
405
+ if (fallbackPath) {
389
406
  try {
390
- fallbackTransformer = require(transformerPath);
407
+ fallbackTransformer = require(fallbackPath);
391
408
  return fallbackTransformer;
392
- } catch {}
409
+ } catch (e) {
410
+ console.warn(`[Facetpack] Failed to load fallback transformer from ${fallbackPath}:`, e);
411
+ }
393
412
  }
394
413
  fallbackTransformer = {
395
414
  transform: ({ src }) => ({ code: src, map: null })
package/dist/index.js CHANGED
@@ -258,16 +258,14 @@ function getFallbackTransformer() {
258
258
  if (fallbackTransformer) {
259
259
  return fallbackTransformer;
260
260
  }
261
- const transformerPaths = [
262
- "@expo/metro-config/babel-transformer",
263
- "@react-native/metro-babel-transformer",
264
- "metro-react-native-babel-transformer"
265
- ];
266
- for (const transformerPath of transformerPaths) {
261
+ const fallbackPath = process.env.FACETPACK_FALLBACK_TRANSFORMER;
262
+ if (fallbackPath) {
267
263
  try {
268
- fallbackTransformer = __require(transformerPath);
264
+ fallbackTransformer = __require(fallbackPath);
269
265
  return fallbackTransformer;
270
- } catch {}
266
+ } catch (e) {
267
+ console.warn(`[Facetpack] Failed to load fallback transformer from ${fallbackPath}:`, e);
268
+ }
271
269
  }
272
270
  fallbackTransformer = {
273
271
  transform: ({ src }) => ({ code: src, map: null })
@@ -410,8 +408,23 @@ var minifier_default = minify;
410
408
  // src/withFacetpack.ts
411
409
  import { resolveSync } from "@ecrindigital/facetpack-native";
412
410
  import { createRequire as createRequire2 } from "module";
411
+ import { join } from "path";
413
412
  var DEFAULT_SOURCE_EXTS = ["ts", "tsx", "js", "jsx", "mjs", "cjs"];
414
413
  var require2 = createRequire2(import.meta.url);
414
+ function findFallbackTransformer(projectRoot) {
415
+ const projectRequire = createRequire2(join(projectRoot, "package.json"));
416
+ const transformerPaths = [
417
+ "@expo/metro-config/babel-transformer",
418
+ "@react-native/metro-babel-transformer",
419
+ "metro-react-native-babel-transformer"
420
+ ];
421
+ for (const transformerPath of transformerPaths) {
422
+ try {
423
+ return projectRequire.resolve(transformerPath);
424
+ } catch {}
425
+ }
426
+ return;
427
+ }
415
428
  function withFacetpack(config, options = {}) {
416
429
  const sourceExts = options.sourceExts ?? DEFAULT_SOURCE_EXTS;
417
430
  const transformerPath = require2.resolve("@ecrindigital/facetpack/transformer");
@@ -421,7 +434,10 @@ function withFacetpack(config, options = {}) {
421
434
  const useTreeShake = options.treeShake !== false;
422
435
  const existingSerializer = config.serializer?.customSerializer;
423
436
  const customSerializer = useTreeShake ? createFacetpackSerializer(existingSerializer, { treeShake: true }) : existingSerializer;
424
- storeTransformerOptions(options);
437
+ const projectRoot = config.projectRoot || process.cwd();
438
+ const originalTransformerPath = config.transformer?.babelTransformerPath;
439
+ const fallbackTransformerPath = originalTransformerPath || findFallbackTransformer(projectRoot);
440
+ storeTransformerOptions(options, fallbackTransformerPath);
425
441
  return {
426
442
  ...config,
427
443
  transformer: {
@@ -478,8 +494,11 @@ function withFacetpack(config, options = {}) {
478
494
  }
479
495
  };
480
496
  }
481
- function storeTransformerOptions(options) {
497
+ function storeTransformerOptions(options, fallbackTransformerPath) {
482
498
  process.env.FACETPACK_OPTIONS = JSON.stringify(options);
499
+ if (fallbackTransformerPath) {
500
+ process.env.FACETPACK_FALLBACK_TRANSFORMER = fallbackTransformerPath;
501
+ }
483
502
  }
484
503
  function getStoredOptions() {
485
504
  try {
@@ -100,16 +100,14 @@ function getFallbackTransformer() {
100
100
  if (fallbackTransformer) {
101
101
  return fallbackTransformer;
102
102
  }
103
- const transformerPaths = [
104
- "@expo/metro-config/babel-transformer",
105
- "@react-native/metro-babel-transformer",
106
- "metro-react-native-babel-transformer"
107
- ];
108
- for (const transformerPath of transformerPaths) {
103
+ const fallbackPath = process.env.FACETPACK_FALLBACK_TRANSFORMER;
104
+ if (fallbackPath) {
109
105
  try {
110
- fallbackTransformer = require(transformerPath);
106
+ fallbackTransformer = require(fallbackPath);
111
107
  return fallbackTransformer;
112
- } catch {}
108
+ } catch (e) {
109
+ console.warn(`[Facetpack] Failed to load fallback transformer from ${fallbackPath}:`, e);
110
+ }
113
111
  }
114
112
  fallbackTransformer = {
115
113
  transform: ({ src }) => ({ code: src, map: null })
@@ -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;AA0FjF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAoBD,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CA6DlE;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;AAsFjF,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAErE;AAoBD,wBAAgB,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,CA6DlE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,gBAAqB;sBAI1C,eAAe,GAAG,eAAe;EA4BtD"}
@@ -92,16 +92,14 @@ function getFallbackTransformer() {
92
92
  if (fallbackTransformer) {
93
93
  return fallbackTransformer;
94
94
  }
95
- const transformerPaths = [
96
- "@expo/metro-config/babel-transformer",
97
- "@react-native/metro-babel-transformer",
98
- "metro-react-native-babel-transformer"
99
- ];
100
- for (const transformerPath of transformerPaths) {
95
+ const fallbackPath = process.env.FACETPACK_FALLBACK_TRANSFORMER;
96
+ if (fallbackPath) {
101
97
  try {
102
- fallbackTransformer = __require(transformerPath);
98
+ fallbackTransformer = __require(fallbackPath);
103
99
  return fallbackTransformer;
104
- } catch {}
100
+ } catch (e) {
101
+ console.warn(`[Facetpack] Failed to load fallback transformer from ${fallbackPath}:`, e);
102
+ }
105
103
  }
106
104
  fallbackTransformer = {
107
105
  transform: ({ src }) => ({ code: src, map: null })
@@ -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;AAU5E,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,CA4Fb;AAMD,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;AA8B5E,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,CAgGb;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.4",
3
+ "version": "0.1.5",
4
4
  "description": "High-performance Metro transformer powered by OXC",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",