one 1.2.26 → 1.2.28

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 (56) 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/link/Redirect.cjs +11 -6
  7. package/dist/cjs/link/Redirect.js +9 -6
  8. package/dist/cjs/link/Redirect.js.map +1 -1
  9. package/dist/cjs/link/Redirect.native.js +11 -6
  10. package/dist/cjs/link/Redirect.native.js.map +1 -1
  11. package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +8 -2
  12. package/dist/cjs/metro-config/getViteMetroPluginOptions.js +12 -2
  13. package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +1 -1
  14. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +9 -2
  15. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  16. package/dist/cjs/vite/one.cjs +2 -1
  17. package/dist/cjs/vite/one.js +2 -1
  18. package/dist/cjs/vite/one.js.map +1 -1
  19. package/dist/cjs/vite/one.native.js +2 -1
  20. package/dist/cjs/vite/one.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/link/Redirect.js +9 -5
  28. package/dist/esm/link/Redirect.js.map +1 -1
  29. package/dist/esm/link/Redirect.mjs +10 -5
  30. package/dist/esm/link/Redirect.mjs.map +1 -1
  31. package/dist/esm/link/Redirect.native.js +10 -5
  32. package/dist/esm/link/Redirect.native.js.map +1 -1
  33. package/dist/esm/metro-config/getViteMetroPluginOptions.js +12 -2
  34. package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
  35. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +8 -2
  36. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
  37. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +9 -2
  38. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  39. package/dist/esm/vite/one.js +2 -1
  40. package/dist/esm/vite/one.js.map +1 -1
  41. package/dist/esm/vite/one.mjs +2 -1
  42. package/dist/esm/vite/one.mjs.map +1 -1
  43. package/dist/esm/vite/one.native.js +2 -1
  44. package/dist/esm/vite/one.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/link/Redirect.tsx +4 -0
  49. package/src/metro-config/getViteMetroPluginOptions.ts +16 -0
  50. package/src/vite/one.ts +1 -0
  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/link/Redirect.d.ts.map +1 -1
  54. package/types/metro-config/getViteMetroPluginOptions.d.ts +6 -1
  55. package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
  56. package/types/vite/one.d.ts.map +1 -1
@@ -1,3 +1,4 @@
1
+ import { useRef } from 'react'
1
2
  import { useRouter } from '../hooks'
2
3
  import type { OneRouter } from '../interfaces/router'
3
4
  import { useFocusEffect } from '../useFocusEffect'
@@ -6,8 +7,11 @@ import { useFocusEffect } from '../useFocusEffect'
6
7
 
7
8
  export function Redirect({ href }: { href: OneRouter.Href }) {
8
9
  const router = useRouter()
10
+ const hasRedirected = useRef(false)
9
11
 
10
12
  useFocusEffect(() => {
13
+ if (hasRedirected.current) return
14
+ hasRedirected.current = true
11
15
  try {
12
16
  router.replace(href)
13
17
  } catch (error) {
@@ -13,6 +13,7 @@ export function getViteMetroPluginOptions({
13
13
  relativeRouterRoot,
14
14
  ignoredRouteFiles,
15
15
  userDefaultConfigOverrides,
16
+ setupFile,
16
17
  }: {
17
18
  projectRoot: string
18
19
  relativeRouterRoot: string
@@ -20,6 +21,7 @@ export function getViteMetroPluginOptions({
20
21
  userDefaultConfigOverrides?: NonNullable<
21
22
  Parameters<typeof metroPlugin>[0]
22
23
  >['defaultConfigOverrides']
24
+ setupFile?: string | { native?: string; ios?: string; android?: string }
23
25
  }): Parameters<typeof metroPlugin>[0] {
24
26
  const tsconfigPathsConfigLoadResult = tsconfigPaths.loadConfig(projectRoot)
25
27
 
@@ -190,6 +192,20 @@ export function getViteMetroPluginOptions({
190
192
  ),
191
193
  ONE_ROUTER_ROOT_FOLDER_NAME: relativeRouterRoot,
192
194
  ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING: routerRequireContextRegexString,
195
+ ONE_SETUP_FILE_NATIVE: (() => {
196
+ if (!setupFile) return undefined
197
+ // Extract native setup file path
198
+ const nativeSetupFile =
199
+ typeof setupFile === 'string'
200
+ ? setupFile
201
+ : setupFile.native || setupFile.ios || setupFile.android
202
+ if (!nativeSetupFile) return undefined
203
+ // Return path relative to metro entry
204
+ return path.relative(
205
+ path.dirname(metroEntryPath),
206
+ path.join(projectRoot, nativeSetupFile)
207
+ )
208
+ })(),
193
209
  },
194
210
  ],
195
211
  ],
package/src/vite/one.ts CHANGED
@@ -65,6 +65,7 @@ export function one(options: One.PluginOptions = {}): PluginOption {
65
65
  relativeRouterRoot: routerRoot,
66
66
  ignoredRouteFiles: options.router?.ignoredRouteFiles,
67
67
  userDefaultConfigOverrides: (options.native?.bundlerOptions as any)?.defaultConfigOverrides,
68
+ setupFile: options.setupFile,
68
69
  })
69
70
 
70
71
  const userMetroOptions = options.native?.bundlerOptions as typeof defaultMetroOptions
@@ -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 +1 @@
1
- {"version":3,"file":"Redirect.d.ts","sourceRoot":"","sources":["../../src/link/Redirect.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGrD,iEAAiE;AAEjE,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAA;CAAE,QAY1D"}
1
+ {"version":3,"file":"Redirect.d.ts","sourceRoot":"","sources":["../../src/link/Redirect.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAGrD,iEAAiE;AAEjE,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAA;CAAE,QAe1D"}
@@ -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"}