one 1.2.24 → 1.2.27

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.
Files changed (57) hide show
  1. package/dist/cjs/babel-plugins/one-router-metro.cjs +9 -2
  2. package/dist/cjs/babel-plugins/one-router-metro.js +11 -2
  3. package/dist/cjs/babel-plugins/one-router-metro.js.map +1 -1
  4. package/dist/cjs/babel-plugins/one-router-metro.native.js +10 -2
  5. package/dist/cjs/babel-plugins/one-router-metro.native.js.map +1 -1
  6. package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +8 -2
  7. package/dist/cjs/metro-config/getViteMetroPluginOptions.js +12 -2
  8. package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +1 -1
  9. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +9 -2
  10. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  11. package/dist/cjs/vite/one.cjs +2 -1
  12. package/dist/cjs/vite/one.js +2 -1
  13. package/dist/cjs/vite/one.js.map +1 -1
  14. package/dist/cjs/vite/one.native.js +2 -1
  15. package/dist/cjs/vite/one.native.js.map +1 -1
  16. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +43 -16
  17. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +42 -16
  18. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  19. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +38 -17
  20. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  21. package/dist/esm/babel-plugins/one-router-metro.js +11 -2
  22. package/dist/esm/babel-plugins/one-router-metro.js.map +1 -1
  23. package/dist/esm/babel-plugins/one-router-metro.mjs +9 -2
  24. package/dist/esm/babel-plugins/one-router-metro.mjs.map +1 -1
  25. package/dist/esm/babel-plugins/one-router-metro.native.js +10 -2
  26. package/dist/esm/babel-plugins/one-router-metro.native.js.map +1 -1
  27. package/dist/esm/metro-config/getViteMetroPluginOptions.js +12 -2
  28. package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
  29. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +8 -2
  30. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
  31. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +9 -2
  32. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  33. package/dist/esm/vite/one.js +2 -1
  34. package/dist/esm/vite/one.js.map +1 -1
  35. package/dist/esm/vite/one.mjs +2 -1
  36. package/dist/esm/vite/one.mjs.map +1 -1
  37. package/dist/esm/vite/one.native.js +2 -1
  38. package/dist/esm/vite/one.native.js.map +1 -1
  39. package/dist/esm/vite/plugins/virtualEntryPlugin.js +42 -16
  40. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  41. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +43 -16
  42. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  43. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +38 -17
  44. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  45. package/metro-entry.js +1 -0
  46. package/package.json +9 -9
  47. package/src/babel-plugins/one-router-metro.ts +15 -0
  48. package/src/metro-config/getViteMetroPluginOptions.ts +16 -0
  49. package/src/vite/one.ts +1 -0
  50. package/src/vite/plugins/virtualEntryPlugin.ts +63 -19
  51. package/types/babel-plugins/one-router-metro.d.ts +4 -0
  52. package/types/babel-plugins/one-router-metro.d.ts.map +1 -1
  53. package/types/metro-config/getViteMetroPluginOptions.d.ts +6 -1
  54. package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
  55. package/types/vite/one.d.ts.map +1 -1
  56. package/types/vite/plugins/virtualEntryPlugin.d.ts +1 -0
  57. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
@@ -14,22 +14,65 @@ import {
14
14
  virtualEntryIdNative,
15
15
  } from './virtualEntryConstants'
16
16
 
17
- function getSetupFileImport(environmentName: string): string {
18
- const envVarMap = {
19
- client: 'ONE_SETUP_FILE_CLIENT',
20
- ssr: 'ONE_SETUP_FILE_SERVER',
21
- ios: 'ONE_SETUP_FILE_IOS',
22
- android: 'ONE_SETUP_FILE_ANDROID',
17
+ type NormalizedSetupFiles = {
18
+ client?: string
19
+ server?: string
20
+ ios?: string
21
+ android?: string
22
+ }
23
+
24
+ function normalizeSetupFile(setupFile: One.PluginOptions['setupFile']): NormalizedSetupFiles {
25
+ if (!setupFile) return {}
26
+ if (typeof setupFile === 'string') {
27
+ return {
28
+ client: setupFile,
29
+ server: setupFile,
30
+ ios: setupFile,
31
+ android: setupFile,
32
+ }
23
33
  }
34
+ if ('native' in setupFile) {
35
+ return {
36
+ client: setupFile.client,
37
+ server: setupFile.server,
38
+ ios: setupFile.native,
39
+ android: setupFile.native,
40
+ }
41
+ }
42
+ const sf = setupFile as { client?: string; server?: string; ios?: string; android?: string }
43
+ return {
44
+ client: sf.client,
45
+ server: sf.server,
46
+ ios: sf.ios,
47
+ android: sf.android,
48
+ }
49
+ }
24
50
 
25
- const envVar = envVarMap[environmentName]
26
- if (!envVar) return ''
51
+ function getSetupFileImport(
52
+ environmentName: string,
53
+ setupFiles: NormalizedSetupFiles,
54
+ useStaticImport: boolean
55
+ ): string {
56
+ const envMap: Record<string, keyof NormalizedSetupFiles> = {
57
+ client: 'client',
58
+ ssr: 'server',
59
+ ios: 'ios',
60
+ android: 'android',
61
+ }
27
62
 
28
- return `
29
- if (process.env.${envVar}) {
30
- import(/* @vite-ignore */ process.env.${envVar})
31
- }
32
- `
63
+ const key = envMap[environmentName]
64
+ if (!key) return ''
65
+
66
+ const setupFile = setupFiles[key]
67
+ if (!setupFile) return ''
68
+
69
+ // For native, use static import since dynamic import doesn't work
70
+ // For web, use top-level await with dynamic import to ensure setup runs before app
71
+ if (useStaticImport) {
72
+ return `import ${JSON.stringify(setupFile)}`
73
+ }
74
+
75
+ return `await import(/* @vite-ignore */ ${JSON.stringify(setupFile)})`
33
76
  }
34
77
 
35
78
  export function createVirtualEntry(options: {
@@ -38,6 +81,7 @@ export function createVirtualEntry(options: {
38
81
  ignoredRouteFiles?: Array<string>
39
82
  }
40
83
  flags: One.Flags
84
+ setupFile?: One.PluginOptions['setupFile']
41
85
  }): Plugin {
42
86
  const routeGlobs = [
43
87
  `/${options.root}/${ROUTE_GLOB_PATTERN}`,
@@ -45,6 +89,8 @@ export function createVirtualEntry(options: {
45
89
  ]
46
90
  const apiRouteGlobs = `/${options.root}/${API_ROUTE_GLOB_PATTERN}`
47
91
 
92
+ const setupFiles = normalizeSetupFile(options.setupFile)
93
+
48
94
  return {
49
95
  name: 'one-virtual-entry',
50
96
  enforce: 'pre',
@@ -60,9 +106,8 @@ export function createVirtualEntry(options: {
60
106
 
61
107
  load(id) {
62
108
  if (id === resolvedVirtualEntryId) {
63
- const prependCode = isNativeEnvironment(this.environment)
64
- ? '' /* `import()` will not work on native */
65
- : getSetupFileImport(this.environment.name)
109
+ const isNative = isNativeEnvironment(this.environment)
110
+ const prependCode = getSetupFileImport(this.environment.name, setupFiles, isNative)
66
111
  return `
67
112
  ${prependCode}
68
113
 
@@ -89,9 +134,8 @@ export default createApp({
89
134
  }
90
135
 
91
136
  if (id === resolvedVirtualEntryIdNative) {
92
- const prependCode = isNativeEnvironment(this.environment)
93
- ? '' /* `import()` will not work on native */
94
- : getSetupFileImport(this.environment.name)
137
+ const isNative = isNativeEnvironment(this.environment)
138
+ const prependCode = getSetupFileImport(this.environment.name, setupFiles, isNative)
95
139
  return `
96
140
  ${prependCode}
97
141
 
@@ -1,11 +1,15 @@
1
+ import type { NodePath } from '@babel/core';
2
+ import * as t from '@babel/types';
1
3
  type PluginOptions = {
2
4
  ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY?: string;
3
5
  ONE_ROUTER_ROOT_FOLDER_NAME?: string;
4
6
  ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING?: string;
7
+ ONE_SETUP_FILE_NATIVE?: string;
5
8
  };
6
9
  declare function oneRouterMetroPlugin(_: any, options: PluginOptions): {
7
10
  name: string;
8
11
  visitor: {
12
+ Program(path: NodePath<t.Program>, state: any): void;
9
13
  MemberExpression(path: any, state: any): void;
10
14
  };
11
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"one-router-metro.d.ts","sourceRoot":"","sources":["../../src/babel-plugins/one-router-metro.ts"],"names":[],"mappings":"AAGA,KAAK,aAAa,GAAG;IACnB,qCAAqC,CAAC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,uCAAuC,CAAC,EAAE,MAAM,CAAA;CACjD,CAAA;AAED,iBAAS,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;;;+BA8B/B,GAAG,SAAS,GAAG;;EAgB3C;AAED,eAAe,oBAAoB,CAAA"}
1
+ {"version":3,"file":"one-router-metro.d.ts","sourceRoot":"","sources":["../../src/babel-plugins/one-router-metro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,KAAK,aAAa,GAAG;IACnB,qCAAqC,CAAC,EAAE,MAAM,CAAA;IAC9C,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,uCAAuC,CAAC,EAAE,MAAM,CAAA;IAChD,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC/B,CAAA;AAED,iBAAS,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;;;sBA+BxC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,GAAG;+BAOtB,GAAG,SAAS,GAAG;;EAsB3C;AAED,eAAe,oBAAoB,CAAA"}
@@ -1,8 +1,13 @@
1
1
  import type { metroPlugin } from '@vxrn/vite-plugin-metro';
2
- export declare function getViteMetroPluginOptions({ projectRoot, relativeRouterRoot, ignoredRouteFiles, userDefaultConfigOverrides, }: {
2
+ export declare function getViteMetroPluginOptions({ projectRoot, relativeRouterRoot, ignoredRouteFiles, userDefaultConfigOverrides, setupFile, }: {
3
3
  projectRoot: string;
4
4
  relativeRouterRoot: string;
5
5
  ignoredRouteFiles?: Array<`**/*${string}`>;
6
6
  userDefaultConfigOverrides?: NonNullable<Parameters<typeof metroPlugin>[0]>['defaultConfigOverrides'];
7
+ setupFile?: string | {
8
+ native?: string;
9
+ ios?: string;
10
+ android?: string;
11
+ };
7
12
  }): Parameters<typeof metroPlugin>[0];
8
13
  //# sourceMappingURL=getViteMetroPluginOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getViteMetroPluginOptions.d.ts","sourceRoot":"","sources":["../../src/metro-config/getViteMetroPluginOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAQ1D,wBAAgB,yBAAyB,CAAC,EACxC,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,GAC3B,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;IAC1C,0BAA0B,CAAC,EAAE,WAAW,CACtC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC,wBAAwB,CAAC,CAAA;CAC5B,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CA+KpC"}
1
+ {"version":3,"file":"getViteMetroPluginOptions.d.ts","sourceRoot":"","sources":["../../src/metro-config/getViteMetroPluginOptions.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAQ1D,wBAAgB,yBAAyB,CAAC,EACxC,WAAW,EACX,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,SAAS,GACV,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;IAC1C,0BAA0B,CAAC,EAAE,WAAW,CACtC,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC,wBAAwB,CAAC,CAAA;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACzE,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CA6LpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"one.d.ts","sourceRoot":"","sources":["../../src/vite/one.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,MAAM,CAAA;AAOhD,OAAO,qBAAqB,CAAA;AAW5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAoBlC,wBAAgB,GAAG,CAAC,OAAO,GAAE,GAAG,CAAC,aAAkB,GAAG,YAAY,CA4iBjE"}
1
+ {"version":3,"file":"one.d.ts","sourceRoot":"","sources":["../../src/vite/one.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,MAAM,CAAA;AAOhD,OAAO,qBAAqB,CAAA;AAW5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAoBlC,wBAAgB,GAAG,CAAC,OAAO,GAAE,GAAG,CAAC,aAAkB,GAAG,YAAY,CA6iBjE"}
@@ -6,5 +6,6 @@ export declare function createVirtualEntry(options: {
6
6
  ignoredRouteFiles?: Array<string>;
7
7
  };
8
8
  flags: One.Flags;
9
+ setupFile?: One.PluginOptions['setupFile'];
9
10
  }): Plugin;
10
11
  //# sourceMappingURL=virtualEntryPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtualEntryPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/virtualEntryPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAQlC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AA0BnC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE;QACP,iBAAiB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAClC,CAAA;IACD,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;CACjB,GAAG,MAAM,CAqET"}
1
+ {"version":3,"file":"virtualEntryPlugin.d.ts","sourceRoot":"","sources":["../../../src/vite/plugins/virtualEntryPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAQlC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAqEnC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE;QACP,iBAAiB,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAClC,CAAA;IACD,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;IAChB,SAAS,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,CAAA;CAC3C,GAAG,MAAM,CAqET"}