@rollipop/jest-preset 1.0.0-alpha.27 → 1.0.0-alpha.29

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.js CHANGED
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_transformer = require("./transformer-Bv1COwca.js");
2
+ const require_transformer = require("./transformer-aU6_6W3G.js");
3
3
  exports.createTransformer = require_transformer.createTransformer;
package/dist/mock.d.ts ADDED
@@ -0,0 +1,16 @@
1
+ //#region src/mock.d.ts
2
+ type GlobImportPattern = string | string[];
3
+ type GlobImportOptions = Record<string, unknown>;
4
+ type GlobImportResult = Record<string, unknown>;
5
+ interface GlobImportContext {
6
+ importer: string;
7
+ pattern: GlobImportPattern;
8
+ options?: GlobImportOptions;
9
+ }
10
+ type GlobImportMock = (context: GlobImportContext) => GlobImportResult;
11
+ declare function createGlobImport(importer: string): (pattern: GlobImportPattern, options?: GlobImportOptions) => GlobImportResult;
12
+ declare function mockGlobImport(implementation: GlobImportMock): void;
13
+ declare function resetGlobImport(): void;
14
+ declare function resetRollipopJestPresetMocks(): void;
15
+ //#endregion
16
+ export { GlobImportContext, GlobImportMock, GlobImportOptions, GlobImportPattern, GlobImportResult, createGlobImport, mockGlobImport, resetGlobImport, resetRollipopJestPresetMocks };
package/dist/mock.js ADDED
@@ -0,0 +1,40 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/mock.ts
3
+ let globImportMock;
4
+ function createGlobImport(importer) {
5
+ return function globImport(pattern, options) {
6
+ if (globImportMock == null) throw new Error([
7
+ "@rollipop/jest-preset: Glob import is a bundler-only feature.",
8
+ `Importer: ${importer}`,
9
+ `Pattern: ${formatValue(pattern)}`,
10
+ "",
11
+ "Mock it in Jest with `mockGlobImport()` from \"@rollipop/jest-preset/mock\"."
12
+ ].join("\n"));
13
+ return globImportMock({
14
+ importer,
15
+ pattern,
16
+ options
17
+ });
18
+ };
19
+ }
20
+ function mockGlobImport(implementation) {
21
+ globImportMock = implementation;
22
+ }
23
+ function resetGlobImport() {
24
+ globImportMock = void 0;
25
+ }
26
+ function resetRollipopJestPresetMocks() {
27
+ resetGlobImport();
28
+ }
29
+ function formatValue(value) {
30
+ try {
31
+ return JSON.stringify(value);
32
+ } catch {
33
+ return String(value);
34
+ }
35
+ }
36
+ //#endregion
37
+ exports.createGlobImport = createGlobImport;
38
+ exports.mockGlobImport = mockGlobImport;
39
+ exports.resetGlobImport = resetGlobImport;
40
+ exports.resetRollipopJestPresetMocks = resetRollipopJestPresetMocks;
@@ -33,6 +33,7 @@ function asLiteral(value) {
33
33
  }
34
34
  //#endregion
35
35
  //#region src/transformer.ts
36
+ const GLOB_IMPORT_HELPER = "require(\"@rollipop/jest-preset/mock\").createGlobImport(__filename)";
36
37
  function resolveMode(mode = process.env.NODE_ENV) {
37
38
  switch (mode) {
38
39
  case "development":
@@ -62,6 +63,7 @@ function createTransformer(options = {}) {
62
63
  globals: {
63
64
  "import.meta.hot": "undefined",
64
65
  "import.meta.env": JSON.stringify({}),
66
+ "import.meta.glob": GLOB_IMPORT_HELPER,
65
67
  ...defineEnvFromObject(env),
66
68
  ...defineEnvFromObject({ MODE: mode })
67
69
  },
@@ -1,5 +1,4 @@
1
1
  import { rolldownExperimental } from "rollipop";
2
-
3
2
  //#region src/transformer.d.ts
4
3
  interface TransformerOptions {
5
4
  mode?: 'development' | 'production';
@@ -1,3 +1,3 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_transformer = require("./transformer-Bv1COwca.js");
2
+ const require_transformer = require("./transformer-aU6_6W3G.js");
3
3
  exports.createTransformer = require_transformer.createTransformer;
package/jest-preset.js CHANGED
@@ -1,15 +1,26 @@
1
1
  const path = require('node:path');
2
2
 
3
+ const projectRoot = process.cwd();
4
+
5
+ function requireFromProjectRoot(id) {
6
+ return require(require.resolve(id, { paths: [projectRoot] }));
7
+ }
8
+
3
9
  function loadBasePreset() {
4
- let preset;
5
10
  try {
6
- preset = require('@react-native/jest-preset');
7
- return { preset, setup: '@react-native/jest-preset/setup.js' };
11
+ return {
12
+ preset: requireFromProjectRoot('@react-native/jest-preset'),
13
+ setup: '@react-native/jest-preset/setup.js',
14
+ };
8
15
  } catch {}
16
+
9
17
  try {
10
- preset = require('react-native/jest-preset');
11
- return { preset, setup: 'react-native/jest/setup.js' };
18
+ return {
19
+ preset: requireFromProjectRoot('react-native/jest-preset'),
20
+ setup: 'react-native/jest/setup.js',
21
+ };
12
22
  } catch {}
23
+
13
24
  throw new Error(
14
25
  '@rollipop/jest-preset: could not resolve a React Native jest preset. ' +
15
26
  'Install either `@react-native/jest-preset` (RN >= 0.85) or `react-native` (RN <= 0.84).',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rollipop/jest-preset",
3
- "version": "1.0.0-alpha.27",
3
+ "version": "1.0.0-alpha.29",
4
4
  "stableVersion": "1.0.0-alpha.23",
5
5
  "homepage": "https://github.com/rollipop-dev/rollipop#readme",
6
6
  "bugs": {
@@ -28,6 +28,10 @@
28
28
  "types": "./dist/transformer.d.ts",
29
29
  "default": "./dist/transformer.js"
30
30
  },
31
+ "./mock": {
32
+ "types": "./dist/mock.d.ts",
33
+ "default": "./dist/mock.js"
34
+ },
31
35
  "./jest-preset": "./jest-preset.js",
32
36
  "./package.json": "./package.json"
33
37
  },
@@ -37,15 +41,15 @@
37
41
  "build": "vp pack"
38
42
  },
39
43
  "devDependencies": {
40
- "rollipop": "1.0.0-alpha.27",
44
+ "rollipop": "1.0.0-alpha.29",
41
45
  "typescript": "6.0.3",
42
- "vite-plus": "0.1.24"
46
+ "vite-plus": "0.2.5"
43
47
  },
44
48
  "peerDependencies": {
45
49
  "@react-native/jest-preset": "*",
46
50
  "react": "*",
47
51
  "react-native": "*",
48
- "rollipop": "1.0.0-alpha.27"
52
+ "rollipop": "1.0.0-alpha.29"
49
53
  },
50
54
  "peerDependenciesMeta": {
51
55
  "@react-native/jest-preset": {