one 1.16.12 → 1.17.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/dist/cjs/babel-preset/index.cjs +154 -0
- package/dist/cjs/babel-preset/index.native.js +186 -0
- package/dist/cjs/babel-preset/index.native.js.map +1 -0
- package/dist/cjs/babel-preset/index.test.cjs +143 -0
- package/dist/cjs/babel-preset/index.test.native.js +165 -0
- package/dist/cjs/babel-preset/index.test.native.js.map +1 -0
- package/dist/cjs/babel-preset/integration.test.cjs +94 -0
- package/dist/cjs/babel-preset/integration.test.native.js +97 -0
- package/dist/cjs/babel-preset/integration.test.native.js.map +1 -0
- package/dist/cjs/cli/generateBundlerConfig.cjs +247 -0
- package/dist/cjs/cli/generateBundlerConfig.native.js +316 -0
- package/dist/cjs/cli/generateBundlerConfig.native.js.map +1 -0
- package/dist/cjs/cli/generateBundlerConfig.test.cjs +350 -0
- package/dist/cjs/cli/generateBundlerConfig.test.native.js +380 -0
- package/dist/cjs/cli/generateBundlerConfig.test.native.js.map +1 -0
- package/dist/cjs/cli/patch.cjs +19 -2
- package/dist/cjs/cli/patch.native.js +26 -2
- package/dist/cjs/cli/patch.native.js.map +1 -1
- package/dist/cjs/cli/patch.test.cjs +56 -0
- package/dist/cjs/cli/patch.test.native.js +65 -0
- package/dist/cjs/cli/patch.test.native.js.map +1 -0
- package/dist/cjs/cli.cjs +39 -2
- package/dist/cjs/cli.native.js +40 -2
- package/dist/cjs/cli.native.js.map +1 -1
- package/dist/cjs/metro-config/buildOneMetroResolverOverrides.cjs +102 -0
- package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js +109 -0
- package/dist/cjs/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -0
- package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +17 -150
- package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.cjs +84 -0
- package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js +90 -0
- package/dist/cjs/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -0
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +17 -158
- package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/cjs/metro-config/withOne.cjs +82 -0
- package/dist/cjs/metro-config/withOne.native.js +88 -0
- package/dist/cjs/metro-config/withOne.native.js.map +1 -0
- package/dist/cjs/metro-config/withOne.test.cjs +129 -0
- package/dist/cjs/metro-config/withOne.test.native.js +156 -0
- package/dist/cjs/metro-config/withOne.test.native.js.map +1 -0
- package/dist/cjs/vite/loadConfig.cjs +20 -1
- package/dist/cjs/vite/loadConfig.native.js +20 -1
- package/dist/cjs/vite/loadConfig.native.js.map +1 -1
- package/dist/cjs/vite/plugins/warmRoutesPlugin.cjs +13 -7
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js +13 -7
- package/dist/cjs/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
- package/dist/esm/babel-preset/index.mjs +116 -0
- package/dist/esm/babel-preset/index.mjs.map +1 -0
- package/dist/esm/babel-preset/index.native.js +145 -0
- package/dist/esm/babel-preset/index.native.js.map +1 -0
- package/dist/esm/babel-preset/index.test.mjs +120 -0
- package/dist/esm/babel-preset/index.test.mjs.map +1 -0
- package/dist/esm/babel-preset/index.test.native.js +139 -0
- package/dist/esm/babel-preset/index.test.native.js.map +1 -0
- package/dist/esm/babel-preset/integration.test.mjs +71 -0
- package/dist/esm/babel-preset/integration.test.mjs.map +1 -0
- package/dist/esm/babel-preset/integration.test.native.js +71 -0
- package/dist/esm/babel-preset/integration.test.native.js.map +1 -0
- package/dist/esm/cli/generateBundlerConfig.mjs +207 -0
- package/dist/esm/cli/generateBundlerConfig.mjs.map +1 -0
- package/dist/esm/cli/generateBundlerConfig.native.js +273 -0
- package/dist/esm/cli/generateBundlerConfig.native.js.map +1 -0
- package/dist/esm/cli/generateBundlerConfig.test.mjs +327 -0
- package/dist/esm/cli/generateBundlerConfig.test.mjs.map +1 -0
- package/dist/esm/cli/generateBundlerConfig.test.native.js +354 -0
- package/dist/esm/cli/generateBundlerConfig.test.native.js.map +1 -0
- package/dist/esm/cli/patch.mjs +19 -2
- package/dist/esm/cli/patch.mjs.map +1 -1
- package/dist/esm/cli/patch.native.js +26 -2
- package/dist/esm/cli/patch.native.js.map +1 -1
- package/dist/esm/cli/patch.test.mjs +57 -0
- package/dist/esm/cli/patch.test.mjs.map +1 -0
- package/dist/esm/cli/patch.test.native.js +63 -0
- package/dist/esm/cli/patch.test.native.js.map +1 -0
- package/dist/esm/cli.mjs +39 -2
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/cli.native.js +40 -2
- package/dist/esm/cli.native.js.map +1 -1
- package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs +66 -0
- package/dist/esm/metro-config/buildOneMetroResolverOverrides.mjs.map +1 -0
- package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js +70 -0
- package/dist/esm/metro-config/buildOneMetroResolverOverrides.native.js.map +1 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.mjs +61 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.mjs.map +1 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.native.js +64 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.integration.test.native.js.map +1 -0
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +17 -138
- package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +17 -146
- package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
- package/dist/esm/metro-config/withOne.mjs +45 -0
- package/dist/esm/metro-config/withOne.mjs.map +1 -0
- package/dist/esm/metro-config/withOne.native.js +48 -0
- package/dist/esm/metro-config/withOne.native.js.map +1 -0
- package/dist/esm/metro-config/withOne.test.mjs +106 -0
- package/dist/esm/metro-config/withOne.test.mjs.map +1 -0
- package/dist/esm/metro-config/withOne.test.native.js +130 -0
- package/dist/esm/metro-config/withOne.test.native.js.map +1 -0
- package/dist/esm/vite/loadConfig.mjs +20 -1
- package/dist/esm/vite/loadConfig.mjs.map +1 -1
- package/dist/esm/vite/loadConfig.native.js +20 -1
- package/dist/esm/vite/loadConfig.native.js.map +1 -1
- package/dist/esm/vite/plugins/warmRoutesPlugin.mjs +13 -7
- package/dist/esm/vite/plugins/warmRoutesPlugin.mjs.map +1 -1
- package/dist/esm/vite/plugins/warmRoutesPlugin.native.js +13 -7
- package/dist/esm/vite/plugins/warmRoutesPlugin.native.js.map +1 -1
- package/package.json +20 -9
- package/src/babel-preset/index.test.ts +148 -0
- package/src/babel-preset/index.ts +250 -0
- package/src/babel-preset/integration.test.ts +91 -0
- package/src/cli/generateBundlerConfig.test.ts +343 -0
- package/src/cli/generateBundlerConfig.ts +339 -0
- package/src/cli/patch.test.ts +65 -0
- package/src/cli/patch.ts +30 -2
- package/src/cli.ts +31 -0
- package/src/metro-config/buildOneMetroResolverOverrides.ts +104 -0
- package/src/metro-config/getViteMetroPluginOptions.integration.test.ts +75 -0
- package/src/metro-config/getViteMetroPluginOptions.ts +15 -230
- package/src/metro-config/withOne.test.ts +120 -0
- package/src/metro-config/withOne.ts +112 -0
- package/src/vite/loadConfig.ts +22 -0
- package/src/vite/plugins/warmRoutesPlugin.ts +22 -6
- package/types/babel-preset/index.d.ts +68 -0
- package/types/babel-preset/index.d.ts.map +1 -0
- package/types/babel-preset/index.test.d.ts +2 -0
- package/types/babel-preset/index.test.d.ts.map +1 -0
- package/types/babel-preset/integration.test.d.ts +2 -0
- package/types/babel-preset/integration.test.d.ts.map +1 -0
- package/types/cli/generateBundlerConfig.d.ts +61 -0
- package/types/cli/generateBundlerConfig.d.ts.map +1 -0
- package/types/cli/generateBundlerConfig.test.d.ts +2 -0
- package/types/cli/generateBundlerConfig.test.d.ts.map +1 -0
- package/types/cli/patch.d.ts.map +1 -1
- package/types/cli/patch.test.d.ts +2 -0
- package/types/cli/patch.test.d.ts.map +1 -0
- package/types/metro-config/buildOneMetroResolverOverrides.d.ts +20 -0
- package/types/metro-config/buildOneMetroResolverOverrides.d.ts.map +1 -0
- package/types/metro-config/getViteMetroPluginOptions.d.ts +0 -5
- package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
- package/types/metro-config/getViteMetroPluginOptions.integration.test.d.ts +2 -0
- package/types/metro-config/getViteMetroPluginOptions.integration.test.d.ts.map +1 -0
- package/types/metro-config/withOne.d.ts +44 -0
- package/types/metro-config/withOne.d.ts.map +1 -0
- package/types/metro-config/withOne.test.d.ts +2 -0
- package/types/metro-config/withOne.test.d.ts.map +1 -0
- package/types/vite/loadConfig.d.ts +1 -0
- package/types/vite/loadConfig.d.ts.map +1 -1
- package/types/vite/plugins/warmRoutesPlugin.d.ts.map +1 -1
- package/dist/cjs/metro-config/getViteMetroPluginOptions.test.cjs +0 -23
- package/dist/cjs/metro-config/getViteMetroPluginOptions.test.native.js +0 -26
- package/dist/cjs/metro-config/getViteMetroPluginOptions.test.native.js.map +0 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.test.mjs +0 -24
- package/dist/esm/metro-config/getViteMetroPluginOptions.test.mjs.map +0 -1
- package/dist/esm/metro-config/getViteMetroPluginOptions.test.native.js +0 -24
- package/dist/esm/metro-config/getViteMetroPluginOptions.test.native.js.map +0 -1
- package/src/metro-config/getViteMetroPluginOptions.test.ts +0 -34
- package/types/metro-config/getViteMetroPluginOptions.test.d.ts +0 -2
- package/types/metro-config/getViteMetroPluginOptions.test.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["import_path","__toESM","require","import_vitest","import_index","_type_of","obj","Symbol","constructor","projectRoot","default","resolve","__dirname","fakeApi","cwd","cache","describe","it","result","includeExpoPreset","expect","toHaveProperty","Array","isArray","plugins","toBe","toHaveLength","names","map","p","toEqual","removeServer","find","routerRoot","caller","cb","oneViteMetroBabelConfig","buildOneBabelPlugins","relativeRouterRoot","ignoredRouteFiles","linking","setupFile","includeImportMetaEnv","toMatchObject","alias","oneRouterMetro","ONE_ROUTER_ROOT_FOLDER_NAME","ONE_ROUTER_LINKING_CONFIG","ONE_SETUP_FILE_NATIVE","ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY","ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING"],"sources":["../../../src/babel-preset/index.test.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __copyProps = (to, from, except, desc) => {
|
|
8
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
9
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
10
|
+
get: () => from[key],
|
|
11
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
17
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
18
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
19
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
20
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
21
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
22
|
+
value: mod,
|
|
23
|
+
enumerable: true
|
|
24
|
+
}) : target, mod));
|
|
25
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
26
|
+
var import_core = require("@babel/core");
|
|
27
|
+
var import_vitest = require("vitest");
|
|
28
|
+
var import_index = __toESM(require("./index.cjs"), 1);
|
|
29
|
+
const projectRoot = import_node_path.default.resolve(__dirname, "../../");
|
|
30
|
+
(0, import_vitest.describe)("one/babel-preset integration", () => {
|
|
31
|
+
const presetWithOpts = [import_index.default, {
|
|
32
|
+
projectRoot,
|
|
33
|
+
includeExpoPreset: false
|
|
34
|
+
}];
|
|
35
|
+
(0, import_vitest.it)("runs against a route file without throwing", () => {
|
|
36
|
+
const code = `
|
|
37
|
+
import { useLoader } from 'one'
|
|
38
|
+
export default function Page() {
|
|
39
|
+
return null
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
42
|
+
const result = (0, import_core.transformSync)(code, {
|
|
43
|
+
filename: import_node_path.default.join(projectRoot, "app/index.tsx"),
|
|
44
|
+
cwd: projectRoot,
|
|
45
|
+
presets: [presetWithOpts],
|
|
46
|
+
parserOpts: {
|
|
47
|
+
sourceType: "module",
|
|
48
|
+
plugins: ["jsx"]
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
(0, import_vitest.expect)(result?.code).toBeTruthy();
|
|
52
|
+
(0, import_vitest.expect)(result?.code).toContain("useLoader");
|
|
53
|
+
});
|
|
54
|
+
(0, import_vitest.it)("substitutes ONE_ROUTER_* process.env placeholders in metro-entry", () => {
|
|
55
|
+
const code = `
|
|
56
|
+
const ctx = require.context(
|
|
57
|
+
process.env.ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY,
|
|
58
|
+
true,
|
|
59
|
+
process.env.ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING
|
|
60
|
+
)
|
|
61
|
+
const folder = process.env.ONE_ROUTER_ROOT_FOLDER_NAME
|
|
62
|
+
module.exports = { ctx, folder }
|
|
63
|
+
`;
|
|
64
|
+
const result = (0, import_core.transformSync)(code, {
|
|
65
|
+
filename: import_node_path.default.join(projectRoot, "metro-entry-ctx.js"),
|
|
66
|
+
cwd: projectRoot,
|
|
67
|
+
presets: [presetWithOpts],
|
|
68
|
+
parserOpts: {
|
|
69
|
+
sourceType: "module"
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
(0, import_vitest.expect)(result?.code).toBeTruthy();
|
|
73
|
+
(0, import_vitest.expect)(result?.code).not.toContain("process.env.ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY");
|
|
74
|
+
(0, import_vitest.expect)(result?.code).not.toContain("process.env.ONE_ROUTER_ROOT_FOLDER_NAME");
|
|
75
|
+
(0, import_vitest.expect)(result?.code).not.toContain("process.env.ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING");
|
|
76
|
+
(0, import_vitest.expect)(result?.code).toContain('"app"');
|
|
77
|
+
(0, import_vitest.expect)(result?.code).toMatch(/\/\^.*\.tsx\?\$\//);
|
|
78
|
+
});
|
|
79
|
+
(0, import_vitest.it)("keeps client code intact in non-route files", () => {
|
|
80
|
+
const code = `
|
|
81
|
+
const x = 1
|
|
82
|
+
export default x
|
|
83
|
+
`;
|
|
84
|
+
const result = (0, import_core.transformSync)(code, {
|
|
85
|
+
filename: import_node_path.default.join(projectRoot, "src/utils/x.ts"),
|
|
86
|
+
cwd: projectRoot,
|
|
87
|
+
presets: [presetWithOpts],
|
|
88
|
+
parserOpts: {
|
|
89
|
+
sourceType: "module"
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
(0, import_vitest.expect)(result?.code).toContain("const x = 1");
|
|
93
|
+
});
|
|
94
|
+
});
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __create = Object.create;
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: () => from[key],
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
19
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
20
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
21
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
22
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
23
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
24
|
+
value: mod,
|
|
25
|
+
enumerable: true
|
|
26
|
+
}) : target, mod));
|
|
27
|
+
var import_path = __toESM(require("path"), 1);
|
|
28
|
+
var import_core = require("@babel/core");
|
|
29
|
+
var import_vitest = require("vitest");
|
|
30
|
+
var import_index = __toESM(require("./index.native.js"), 1);
|
|
31
|
+
var projectRoot = import_path.default.resolve(__dirname, "../../");
|
|
32
|
+
(0, import_vitest.describe)("one/babel-preset integration", function () {
|
|
33
|
+
var presetWithOpts = [import_index.default, {
|
|
34
|
+
projectRoot,
|
|
35
|
+
includeExpoPreset: false
|
|
36
|
+
}];
|
|
37
|
+
(0, import_vitest.it)("runs against a route file without throwing", function () {
|
|
38
|
+
var code = `
|
|
39
|
+
import { useLoader } from 'one'
|
|
40
|
+
export default function Page() {
|
|
41
|
+
return null
|
|
42
|
+
}
|
|
43
|
+
`;
|
|
44
|
+
var result = (0, import_core.transformSync)(code, {
|
|
45
|
+
filename: import_path.default.join(projectRoot, "app/index.tsx"),
|
|
46
|
+
cwd: projectRoot,
|
|
47
|
+
presets: [presetWithOpts],
|
|
48
|
+
parserOpts: {
|
|
49
|
+
sourceType: "module",
|
|
50
|
+
plugins: ["jsx"]
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).toBeTruthy();
|
|
54
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).toContain("useLoader");
|
|
55
|
+
});
|
|
56
|
+
(0, import_vitest.it)("substitutes ONE_ROUTER_* process.env placeholders in metro-entry", function () {
|
|
57
|
+
var code = `
|
|
58
|
+
const ctx = require.context(
|
|
59
|
+
process.env.ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY,
|
|
60
|
+
true,
|
|
61
|
+
process.env.ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING
|
|
62
|
+
)
|
|
63
|
+
const folder = process.env.ONE_ROUTER_ROOT_FOLDER_NAME
|
|
64
|
+
module.exports = { ctx, folder }
|
|
65
|
+
`;
|
|
66
|
+
var result = (0, import_core.transformSync)(code, {
|
|
67
|
+
filename: import_path.default.join(projectRoot, "metro-entry-ctx.js"),
|
|
68
|
+
cwd: projectRoot,
|
|
69
|
+
presets: [presetWithOpts],
|
|
70
|
+
parserOpts: {
|
|
71
|
+
sourceType: "module"
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).toBeTruthy();
|
|
75
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).not.toContain("process.env.ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY");
|
|
76
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).not.toContain("process.env.ONE_ROUTER_ROOT_FOLDER_NAME");
|
|
77
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).not.toContain("process.env.ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING");
|
|
78
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).toContain('"app"');
|
|
79
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).toMatch(/\/\^.*\.tsx\?\$\//);
|
|
80
|
+
});
|
|
81
|
+
(0, import_vitest.it)("keeps client code intact in non-route files", function () {
|
|
82
|
+
var code = `
|
|
83
|
+
const x = 1
|
|
84
|
+
export default x
|
|
85
|
+
`;
|
|
86
|
+
var result = (0, import_core.transformSync)(code, {
|
|
87
|
+
filename: import_path.default.join(projectRoot, "src/utils/x.ts"),
|
|
88
|
+
cwd: projectRoot,
|
|
89
|
+
presets: [presetWithOpts],
|
|
90
|
+
parserOpts: {
|
|
91
|
+
sourceType: "module"
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
(0, import_vitest.expect)(result === null || result === void 0 ? void 0 : result.code).toContain("const x = 1");
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
//# sourceMappingURL=integration.test.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["import_path","__toESM","require","import_core","import_vitest","import_index","projectRoot","default","resolve","__dirname","describe","presetWithOpts","includeExpoPreset","it","code","result","transformSync","filename","join","cwd","presets","parserOpts","sourceType","plugins","expect","toBeTruthy","toContain","not","toMatch"],"sources":["../../../src/babel-preset/integration.test.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;gBAAA;AACA,IAAAA,WAAA,GAA8BC,OAAA,CAAAC,OAAA;AAC9B,IAAAC,WAAA,GAAAD,OAAqC;AACrC,IAAAE,aAAA,GAA2BF,OAAA;AAE3B,IAAAG,YAAM,GAAAJ,OAAc,CAAAC,OAAA,qBAAK;AAA2B,IAYpDI,WAAA,GAAAN,WAAS,CAAAO,OAAA,CAAAC,OAAA,CAAAC,SAAA,UAAgC,CAAM;AAC7C,IAAAL,aAAM,CAAAM,QAAiB;EAAA,IACrBC,cAAA,IACAN,YAAE,CAAAE,OAAa,EACjB;IAEAD,WAAA;IACEM,iBAAa;EAAA;EAAA,IAAAR,aAAA,CAAAS,EAAA;IAAA,IAAAC,IAAA;AAAA;AAMb;AAAmC;AACe;AAC3C;IACmB,IACxBC,MAAA,IAAY,GAAEZ,WAAY,CAAAa,aAAU,EAAAF,IAAU;MAC/CG,QAAA,EAAAjB,WAAA,CAAAO,OAAA,CAAAW,IAAA,CAAAZ,WAAA;MAEDa,GAAA,EAAAb,WAAA;MAIAc,OAAA,GACDT,cAAA,CAED;MAGEU,UAAM,EAAO;QAAAC,UAAA;QAAAC,OAAA;MAAA;IAAA;IAAA,IAAAnB,aAAA,CAAAoB,MAAA,EAAAT,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAD,IAAA,EAAAW,UAAA;IAAA,IAAArB,aAAA,CAAAoB,MAAA,EAAAT,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAD,IAAA,EAAAY,SAAA;EASb;EAAmC,IACjCtB,aAAU,CAAAS,EAAA,oEAA2C;IAAA,IACrDC,IAAK;AAAA;AACmB;AACW;AAGrC;AAEA;AACA;AACA;AAAyB;IAEzB,IAAAC,MAAA,OAAAZ,WAAA,CAAAa,aAAA,EAAAF,IAAA;MAEAG,QAAA,EAAAjB,WAAA,CAAAO,OAAO,CAAAW,IAAQ,CAAAZ,WAAM,EAAU,oBAAO;MAEtCa,GAAA,EAAAb,WAAA;MACDc,OAAA,GAEDT,cAAA,CACE;MAAaU,UAAA;QAAAC,UAAA;MAAA;IAIb;IAAmC,EACjC,EAAAlB,aAAU,CAAAoB,MAAA,EAAAT,MAAA,KAAK,QAAKA,MAAA,KAAa,eAAgB,GAAAA,MAAA,CAAAD,IAAA,EAAAW,UAAA;IAAA,EACjD,EAAArB,aAAK,CAAAoB,MAAA,EAAAT,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAD,IAAA,EAAAa,GAAA,CAAAD,SAAA;IAAA,EACL,EAAAtB,aAAU,CAAAoB,MAAA,EAAcT,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAD,IAAA,EAAAa,GAAA,CAAAD,SAAA;IAAA,EACxB,EAAAtB,aAAc,CAAAoB,MAAA,EAAAT,MAAY,KAAS,QAAAA,MAAA,uBAAAA,MAAA,CAAAD,IAAA,EAAAa,GAAA,CAAAD,SAAA;IACrC,CAAC,GAAAtB,aAAA,CAAAoB,MAAA,EAAAT,MAAA,aAAAA,MAAA,uBAAAA,MAAA,CAAAD,IAAA,EAAAY,SAAA;IAED,IAAAtB,aAAA,CAAAoB,MAAA,EAAOT,MAAA,KAAQ,IAAM,IAAAA,MAAU,cAAa,SAAAA,MAAA,CAAAD,IAAA,EAAAc,OAAA;EAC9C,CAAC;EACF,IAAAxB,aAAA,CAAAS,EAAA","ignoreList":[]}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __export = (target, all) => {
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
16
|
+
get: () => from[key],
|
|
17
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: true
|
|
30
|
+
}) : target, mod));
|
|
31
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: true
|
|
33
|
+
}), mod);
|
|
34
|
+
var generateBundlerConfig_exports = {};
|
|
35
|
+
__export(generateBundlerConfig_exports, {
|
|
36
|
+
ONE_GENERATED_MARKER: () => ONE_GENERATED_MARKER,
|
|
37
|
+
generateBundlerConfig: () => generateBundlerConfig,
|
|
38
|
+
getBundlerConfigOptionsFromOneOptions: () => getBundlerConfigOptionsFromOneOptions,
|
|
39
|
+
isCiEnvironment: () => isCiEnvironment,
|
|
40
|
+
maybeGenerateBundlerConfigOnInstall: () => maybeGenerateBundlerConfigOnInstall
|
|
41
|
+
});
|
|
42
|
+
module.exports = __toCommonJS(generateBundlerConfig_exports);
|
|
43
|
+
var import_node_fs = require("node:fs");
|
|
44
|
+
var import_node_module = __toESM(require("node:module"), 1);
|
|
45
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
46
|
+
var import_picocolors = __toESM(require("picocolors"), 1);
|
|
47
|
+
var import_getRouterRootFromOneOptions = require("../utils/getRouterRootFromOneOptions.cjs");
|
|
48
|
+
const ONE_GENERATED_MARKER = "@one/generated bundler-config";
|
|
49
|
+
function buildBabelConfigContent({
|
|
50
|
+
eject,
|
|
51
|
+
options
|
|
52
|
+
}) {
|
|
53
|
+
const header = eject ? `// you own this file. edit freely \u2014 \`one\` will not regenerate it.
|
|
54
|
+
// delegates to one/babel-preset which holds the canonical plugin chain.
|
|
55
|
+
` : `// ${ONE_GENERATED_MARKER}
|
|
56
|
+
//
|
|
57
|
+
// auto-generated by \`one patch\` on ci/eas workers when expo-updates is
|
|
58
|
+
// in deps. delegates to one/babel-preset so expo export / eas update
|
|
59
|
+
// use the same router/setup options as \`one dev\` and \`one build\`.
|
|
60
|
+
//
|
|
61
|
+
// to customize, delete this header and edit freely \u2014 re-runs will then
|
|
62
|
+
// leave this file alone.
|
|
63
|
+
`;
|
|
64
|
+
return `${header}
|
|
65
|
+
const oneBabelPreset = require('one/babel-preset')
|
|
66
|
+
const preset = oneBabelPreset.default || oneBabelPreset
|
|
67
|
+
const oneBundlerOptions = ${serializeBundlerConfigOptions(options)}
|
|
68
|
+
|
|
69
|
+
module.exports = function (api) {
|
|
70
|
+
return preset(api, oneBundlerOptions)
|
|
71
|
+
}
|
|
72
|
+
`;
|
|
73
|
+
}
|
|
74
|
+
function buildMetroConfigContent({
|
|
75
|
+
eject,
|
|
76
|
+
options
|
|
77
|
+
}) {
|
|
78
|
+
const header = eject ? `// you own this file. edit freely \u2014 \`one\` will not regenerate it.
|
|
79
|
+
// withOne() invokes the same Metro pipeline One uses for production bundles.
|
|
80
|
+
` : `// ${ONE_GENERATED_MARKER}
|
|
81
|
+
//
|
|
82
|
+
// auto-generated by \`one patch\` on ci/eas workers when expo-updates is
|
|
83
|
+
// in deps. delegates to one/metro-config which invokes the exact same
|
|
84
|
+
// metro pipeline one uses for production native bundles with your
|
|
85
|
+
// router/setup options \u2014 no separate expo/metro-config setup needed.
|
|
86
|
+
//
|
|
87
|
+
// to customize, delete this header and edit freely \u2014 re-runs will then
|
|
88
|
+
// leave this file alone.
|
|
89
|
+
`;
|
|
90
|
+
return `${header}
|
|
91
|
+
const { withOne } = require('one/metro-config')
|
|
92
|
+
const oneBundlerOptions = ${serializeBundlerConfigOptions(options)}
|
|
93
|
+
|
|
94
|
+
module.exports = withOne(__dirname, oneBundlerOptions)
|
|
95
|
+
`;
|
|
96
|
+
}
|
|
97
|
+
const FILES = [{
|
|
98
|
+
name: "babel.config.cjs",
|
|
99
|
+
getContent: buildBabelConfigContent,
|
|
100
|
+
conflicting: ["babel.config.js", "babel.config.mjs", ".babelrc", ".babelrc.js"]
|
|
101
|
+
}, {
|
|
102
|
+
name: "metro.config.cjs",
|
|
103
|
+
getContent: buildMetroConfigContent,
|
|
104
|
+
conflicting: ["metro.config.js", "metro.config.mjs"]
|
|
105
|
+
}];
|
|
106
|
+
function stripUndefined(value) {
|
|
107
|
+
if (Array.isArray(value)) {
|
|
108
|
+
return value.map(stripUndefined);
|
|
109
|
+
}
|
|
110
|
+
if (value && typeof value === "object") {
|
|
111
|
+
return Object.fromEntries(Object.entries(value).filter(([, entry]) => entry !== void 0).map(([key, entry]) => [key, stripUndefined(entry)]));
|
|
112
|
+
}
|
|
113
|
+
return value;
|
|
114
|
+
}
|
|
115
|
+
function assertSerializable(value, keyPath = "one bundler options") {
|
|
116
|
+
if (typeof value === "function" || typeof value === "symbol" || typeof value === "bigint") {
|
|
117
|
+
throw new Error(`[one] ${keyPath} must be JSON-serializable to generate Babel/Metro config files. Move function-valued native linking/customization into an ejected config.`);
|
|
118
|
+
}
|
|
119
|
+
if (Array.isArray(value)) {
|
|
120
|
+
value.forEach((entry, index) => assertSerializable(entry, `${keyPath}[${index}]`));
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (value && typeof value === "object") {
|
|
124
|
+
for (const [key, entry] of Object.entries(value)) {
|
|
125
|
+
assertSerializable(entry, `${keyPath}.${key}`);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
function serializeBundlerConfigOptions(options) {
|
|
130
|
+
const clean = stripUndefined(options);
|
|
131
|
+
assertSerializable(clean);
|
|
132
|
+
return JSON.stringify(clean, null, 2);
|
|
133
|
+
}
|
|
134
|
+
function getBundlerConfigOptionsFromOneOptions(oneOptions = {}) {
|
|
135
|
+
return stripUndefined({
|
|
136
|
+
routerRoot: (0, import_getRouterRootFromOneOptions.getRouterRootFromOneOptions)(oneOptions),
|
|
137
|
+
ignoredRouteFiles: oneOptions.router?.ignoredRouteFiles,
|
|
138
|
+
linking: oneOptions.router?.linking,
|
|
139
|
+
setupFile: oneOptions.setupFile
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
function generateBundlerConfig(args = {}) {
|
|
143
|
+
const cwd = import_node_path.default.resolve(args.cwd ?? process.cwd());
|
|
144
|
+
const force = !!args.force;
|
|
145
|
+
const check = !!args.check;
|
|
146
|
+
const quiet = !!args.quiet;
|
|
147
|
+
const log = msg => {
|
|
148
|
+
if (!quiet) console.info(msg);
|
|
149
|
+
};
|
|
150
|
+
const warn = msg => {
|
|
151
|
+
if (!quiet) console.warn(msg);
|
|
152
|
+
};
|
|
153
|
+
const results = [];
|
|
154
|
+
const eject = !!args.eject;
|
|
155
|
+
const bundlerOptions = getBundlerConfigOptionsFromOneOptions(args.oneOptions);
|
|
156
|
+
for (const file of FILES) {
|
|
157
|
+
const filePath = import_node_path.default.join(cwd, file.name);
|
|
158
|
+
const targetContent = file.getContent({
|
|
159
|
+
eject,
|
|
160
|
+
options: bundlerOptions
|
|
161
|
+
});
|
|
162
|
+
const conflict = file.conflicting.find(alt => (0, import_node_fs.existsSync)(import_node_path.default.join(cwd, alt)));
|
|
163
|
+
if (conflict && !(0, import_node_fs.existsSync)(filePath)) {
|
|
164
|
+
results.push({
|
|
165
|
+
filePath: import_node_path.default.join(cwd, conflict),
|
|
166
|
+
action: "skipped-other-format",
|
|
167
|
+
reason: `Found ${conflict}; not creating ${file.name}. To switch, delete ${conflict} and re-run with --force.`
|
|
168
|
+
});
|
|
169
|
+
warn(import_picocolors.default.yellow(`[one] found ${conflict} \u2014 leaving it alone. Delete it and re-run with --force to switch to ${file.name}.`));
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
if (!(0, import_node_fs.existsSync)(filePath)) {
|
|
173
|
+
if (check) {
|
|
174
|
+
results.push({
|
|
175
|
+
filePath,
|
|
176
|
+
action: "would-write"
|
|
177
|
+
});
|
|
178
|
+
log(import_picocolors.default.yellow(`[one] missing: ${file.name}`));
|
|
179
|
+
continue;
|
|
180
|
+
}
|
|
181
|
+
(0, import_node_fs.writeFileSync)(filePath, targetContent);
|
|
182
|
+
results.push({
|
|
183
|
+
filePath,
|
|
184
|
+
action: "wrote"
|
|
185
|
+
});
|
|
186
|
+
log(import_picocolors.default.green(`[one] wrote ${file.name}`));
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
const existing = (0, import_node_fs.readFileSync)(filePath, "utf8");
|
|
190
|
+
if (existing === targetContent) {
|
|
191
|
+
results.push({
|
|
192
|
+
filePath,
|
|
193
|
+
action: "kept"
|
|
194
|
+
});
|
|
195
|
+
log(import_picocolors.default.dim(`[one] up to date: ${file.name}`));
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
const hasMarker = existing.includes(ONE_GENERATED_MARKER);
|
|
199
|
+
if (!hasMarker && !force) {
|
|
200
|
+
results.push({
|
|
201
|
+
filePath,
|
|
202
|
+
action: "skipped-customized",
|
|
203
|
+
reason: `${file.name} has been customized (no @one marker). Re-add the marker comment or pass --force to overwrite.`
|
|
204
|
+
});
|
|
205
|
+
warn(import_picocolors.default.yellow(`[one] ${file.name} appears customized \u2014 skipping. Pass --force to overwrite.`));
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
if (check) {
|
|
209
|
+
results.push({
|
|
210
|
+
filePath,
|
|
211
|
+
action: "would-overwrite"
|
|
212
|
+
});
|
|
213
|
+
log(import_picocolors.default.yellow(`[one] out of date: ${file.name}`));
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
(0, import_node_fs.writeFileSync)(filePath, targetContent);
|
|
217
|
+
results.push({
|
|
218
|
+
filePath,
|
|
219
|
+
action: "wrote"
|
|
220
|
+
});
|
|
221
|
+
log(import_picocolors.default.green(`[one] updated ${file.name}`));
|
|
222
|
+
}
|
|
223
|
+
const acceptableAlways = /* @__PURE__ */new Set(["wrote", "kept", "skipped-other-format", "skipped-customized"]);
|
|
224
|
+
const acceptableInCheck = /* @__PURE__ */new Set(["kept", "skipped-other-format", "skipped-customized"]);
|
|
225
|
+
const ok = (check ? acceptableInCheck : acceptableAlways).size ? results.every(r => (check ? acceptableInCheck : acceptableAlways).has(r.action)) : false;
|
|
226
|
+
return {
|
|
227
|
+
results,
|
|
228
|
+
ok
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
function isCiEnvironment() {
|
|
232
|
+
const truthy = v => !!v && v !== "false" && v !== "0";
|
|
233
|
+
return truthy(process.env.EAS_BUILD) || truthy(process.env.CI);
|
|
234
|
+
}
|
|
235
|
+
function maybeGenerateBundlerConfigOnInstall(cwd = process.cwd(), oneOptions) {
|
|
236
|
+
if (!isCiEnvironment()) return;
|
|
237
|
+
try {
|
|
238
|
+
import_node_module.default.createRequire(cwd + "/").resolve("expo-updates/package.json");
|
|
239
|
+
} catch {
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
generateBundlerConfig({
|
|
243
|
+
cwd,
|
|
244
|
+
quiet: false,
|
|
245
|
+
oneOptions
|
|
246
|
+
});
|
|
247
|
+
}
|