one 1.1.511 → 1.1.513

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 (100) hide show
  1. package/dist/cjs/babel-plugins/one-router-metro.cjs +4 -2
  2. package/dist/cjs/babel-plugins/one-router-metro.js +10 -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 +4 -2
  5. package/dist/cjs/babel-plugins/one-router-metro.native.js.map +2 -2
  6. package/dist/cjs/metro-config/getViteMetroPluginOptions.cjs +39 -13
  7. package/dist/cjs/metro-config/getViteMetroPluginOptions.js +42 -15
  8. package/dist/cjs/metro-config/getViteMetroPluginOptions.js.map +2 -2
  9. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js +43 -19
  10. package/dist/cjs/metro-config/getViteMetroPluginOptions.native.js.map +2 -2
  11. package/dist/cjs/router/glob-patterns.cjs +32 -0
  12. package/dist/cjs/router/glob-patterns.js +28 -0
  13. package/dist/cjs/router/glob-patterns.js.map +6 -0
  14. package/dist/cjs/router/glob-patterns.native.js +38 -0
  15. package/dist/cjs/router/glob-patterns.native.js.map +6 -0
  16. package/dist/cjs/typed-routes/generateRouteTypes.cjs +8 -2
  17. package/dist/cjs/typed-routes/generateRouteTypes.js +8 -3
  18. package/dist/cjs/typed-routes/generateRouteTypes.js.map +2 -2
  19. package/dist/cjs/typed-routes/generateRouteTypes.native.js +8 -3
  20. package/dist/cjs/typed-routes/generateRouteTypes.native.js.map +2 -2
  21. package/dist/cjs/vite/one.cjs +4 -3
  22. package/dist/cjs/vite/one.js +4 -3
  23. package/dist/cjs/vite/one.js.map +1 -1
  24. package/dist/cjs/vite/one.native.js +5 -4
  25. package/dist/cjs/vite/one.native.js.map +2 -2
  26. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.cjs +2 -2
  27. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js +2 -2
  28. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  29. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +6 -2
  30. package/dist/cjs/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +2 -2
  31. package/dist/cjs/vite/plugins/virtualEntryPlugin.cjs +8 -7
  32. package/dist/cjs/vite/plugins/virtualEntryPlugin.js +9 -6
  33. package/dist/cjs/vite/plugins/virtualEntryPlugin.js.map +1 -1
  34. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js +22 -6
  35. package/dist/cjs/vite/plugins/virtualEntryPlugin.native.js.map +2 -2
  36. package/dist/esm/babel-plugins/one-router-metro.js +10 -2
  37. package/dist/esm/babel-plugins/one-router-metro.js.map +1 -1
  38. package/dist/esm/babel-plugins/one-router-metro.mjs +4 -2
  39. package/dist/esm/babel-plugins/one-router-metro.mjs.map +1 -1
  40. package/dist/esm/babel-plugins/one-router-metro.native.js +4 -2
  41. package/dist/esm/babel-plugins/one-router-metro.native.js.map +1 -1
  42. package/dist/esm/metro-config/getViteMetroPluginOptions.js +46 -14
  43. package/dist/esm/metro-config/getViteMetroPluginOptions.js.map +1 -1
  44. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs +38 -12
  45. package/dist/esm/metro-config/getViteMetroPluginOptions.mjs.map +1 -1
  46. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js +45 -17
  47. package/dist/esm/metro-config/getViteMetroPluginOptions.native.js.map +1 -1
  48. package/dist/esm/router/glob-patterns.js +12 -0
  49. package/dist/esm/router/glob-patterns.js.map +6 -0
  50. package/dist/esm/router/glob-patterns.mjs +6 -0
  51. package/dist/esm/router/glob-patterns.mjs.map +1 -0
  52. package/dist/esm/router/glob-patterns.native.js +6 -0
  53. package/dist/esm/router/glob-patterns.native.js.map +1 -0
  54. package/dist/esm/typed-routes/generateRouteTypes.js +8 -2
  55. package/dist/esm/typed-routes/generateRouteTypes.js.map +1 -1
  56. package/dist/esm/typed-routes/generateRouteTypes.mjs +8 -2
  57. package/dist/esm/typed-routes/generateRouteTypes.mjs.map +1 -1
  58. package/dist/esm/typed-routes/generateRouteTypes.native.js +8 -3
  59. package/dist/esm/typed-routes/generateRouteTypes.native.js.map +1 -1
  60. package/dist/esm/vite/one.js +4 -3
  61. package/dist/esm/vite/one.js.map +1 -1
  62. package/dist/esm/vite/one.mjs +4 -3
  63. package/dist/esm/vite/one.mjs.map +1 -1
  64. package/dist/esm/vite/one.native.js +5 -4
  65. package/dist/esm/vite/one.native.js.map +1 -1
  66. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js +2 -2
  67. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.js.map +1 -1
  68. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs +2 -2
  69. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.mjs.map +1 -1
  70. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js +6 -2
  71. package/dist/esm/vite/plugins/generateFileSystemRouteTypesPlugin.native.js.map +1 -1
  72. package/dist/esm/vite/plugins/virtualEntryPlugin.js +14 -5
  73. package/dist/esm/vite/plugins/virtualEntryPlugin.js.map +1 -1
  74. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs +7 -6
  75. package/dist/esm/vite/plugins/virtualEntryPlugin.mjs.map +1 -1
  76. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js +15 -6
  77. package/dist/esm/vite/plugins/virtualEntryPlugin.native.js.map +1 -1
  78. package/metro-entry-ctx.js +1 -2
  79. package/package.json +10 -10
  80. package/src/babel-plugins/one-router-metro.ts +13 -1
  81. package/src/metro-config/getViteMetroPluginOptions.ts +80 -13
  82. package/src/router/glob-patterns.ts +16 -0
  83. package/src/typed-routes/generateRouteTypes.ts +13 -2
  84. package/src/vite/one.ts +2 -1
  85. package/src/vite/plugins/generateFileSystemRouteTypesPlugin.tsx +2 -2
  86. package/src/vite/plugins/virtualEntryPlugin.ts +22 -7
  87. package/src/vite/types.ts +11 -0
  88. package/types/babel-plugins/one-router-metro.d.ts +1 -0
  89. package/types/babel-plugins/one-router-metro.d.ts.map +1 -1
  90. package/types/metro-config/getViteMetroPluginOptions.d.ts +2 -1
  91. package/types/metro-config/getViteMetroPluginOptions.d.ts.map +1 -1
  92. package/types/router/glob-patterns.d.ts +11 -0
  93. package/types/router/glob-patterns.d.ts.map +1 -0
  94. package/types/typed-routes/generateRouteTypes.d.ts +1 -1
  95. package/types/typed-routes/generateRouteTypes.d.ts.map +1 -1
  96. package/types/vite/one.d.ts.map +1 -1
  97. package/types/vite/plugins/virtualEntryPlugin.d.ts +3 -0
  98. package/types/vite/plugins/virtualEntryPlugin.d.ts.map +1 -1
  99. package/types/vite/types.d.ts +11 -0
  100. package/types/vite/types.d.ts.map +1 -1
@@ -2,13 +2,20 @@ import type { metroPlugin } from '@vxrn/vite-plugin-metro'
2
2
  import module from 'node:module'
3
3
  import path from 'node:path'
4
4
  import tsconfigPaths from 'tsconfig-paths'
5
+ import mm from 'micromatch'
6
+ import {
7
+ API_ROUTE_GLOB_PATTERN,
8
+ ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS,
9
+ } from '../router/glob-patterns'
5
10
 
6
11
  export function getViteMetroPluginOptions({
7
12
  projectRoot,
8
13
  relativeRouterRoot,
14
+ ignoredRouteFiles,
9
15
  }: {
10
16
  projectRoot: string
11
17
  relativeRouterRoot: string
18
+ ignoredRouteFiles?: Array<`**/*${string}`>
12
19
  }): Parameters<typeof metroPlugin>[0] {
13
20
  const tsconfigPathsConfigLoadResult = tsconfigPaths.loadConfig(projectRoot)
14
21
 
@@ -24,6 +31,54 @@ export function getViteMetroPluginOptions({
24
31
  const metroEntryPath = require.resolve('one/metro-entry', {
25
32
  paths: [projectRoot],
26
33
  })
34
+
35
+ const routerRequireContextRegexString = (() => {
36
+ const excludeRes = [
37
+ ...(ignoredRouteFiles || []).map((pattern) => mm.makeRe(pattern)),
38
+ ...ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS.map((pattern) => mm.makeRe(pattern)),
39
+ mm.makeRe(API_ROUTE_GLOB_PATTERN),
40
+ ]
41
+
42
+ const supportedRegexMustStartWith = String.raw`^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?`
43
+ const supportedRegexMustEndWith = String.raw`)$`
44
+
45
+ const negativeLookaheadGroups = excludeRes.map((re, i) => {
46
+ /**
47
+ * Example:
48
+ * ```
49
+ * ^(?:(?:^|\/|(?:(?:(?!(?:^|\/)\.).)*?)\/)(?!\.)(?=.)[^/]*?\+api\.(ts|tsx))$
50
+ * ```
51
+ */
52
+ const reSource = re.source
53
+
54
+ if (
55
+ !(
56
+ reSource.startsWith(supportedRegexMustStartWith) &&
57
+ reSource.endsWith(supportedRegexMustEndWith)
58
+ )
59
+ ) {
60
+ const ignoredRouteFile = ignoredRouteFiles?.[i]
61
+
62
+ if (ignoredRouteFile) {
63
+ throw new Error(
64
+ `[one/metro] ignoredRouteFile pattern "${ignoredRouteFile}" is not supported. We cannot process the corresponding regex "${reSource}" for now.`
65
+ )
66
+ }
67
+
68
+ throw new Error(`Unsupported regex "${reSource}" in "ignoredRouteFiles".`)
69
+ }
70
+
71
+ const rePart = reSource.slice(
72
+ supportedRegexMustStartWith.length,
73
+ reSource.length - supportedRegexMustEndWith.length
74
+ )
75
+
76
+ return String.raw`(?:.*${rePart})`
77
+ })
78
+
79
+ return String.raw`^(?:\.\/)(?!${negativeLookaheadGroups.join('|')}$).*\.tsx?$`
80
+ })()
81
+
27
82
  return {
28
83
  defaultConfigOverrides: (defaultConfig) => {
29
84
  return {
@@ -33,20 +88,21 @@ export function getViteMetroPluginOptions({
33
88
  extraNodeModules: {
34
89
  ...defaultConfig?.resolver?.extraNodeModules,
35
90
  // "vite-tsconfig-paths" for Metro
36
- ...Object.fromEntries(
37
- Object.entries(tsconfigPathsConfigLoadResult.paths)
38
- .map(([k, v]) => {
39
- if (k.endsWith('/*') && v[0]?.endsWith('/*')) {
40
- const key = k.replace(/\/\*$/, '')
41
- let value = v[0].replace(/\/\*$/, '')
91
+ // Commenting out since we are using babel-plugin-module-resolver alias instead
92
+ // ...Object.fromEntries(
93
+ // Object.entries(tsconfigPathsConfigLoadResult.paths)
94
+ // .map(([k, v]) => {
95
+ // if (k.endsWith('/*') && v[0]?.endsWith('/*')) {
96
+ // const key = k.replace(/\/\*$/, '')
97
+ // let value = v[0].replace(/\/\*$/, '')
42
98
 
43
- value = path.join(tsconfigPathsConfigLoadResult.absoluteBaseUrl, value)
99
+ // value = path.join(tsconfigPathsConfigLoadResult.absoluteBaseUrl, value)
44
100
 
45
- return [key, value]
46
- }
47
- })
48
- .filter((i): i is NonNullable<typeof i> => !!i)
49
- ),
101
+ // return [key, value]
102
+ // }
103
+ // })
104
+ // .filter((i): i is NonNullable<typeof i> => !!i)
105
+ // ),
50
106
  },
51
107
  nodeModulesPaths: tsconfigPathsConfigLoadResult.absoluteBaseUrl
52
108
  ? [
@@ -88,9 +144,19 @@ export function getViteMetroPluginOptions({
88
144
  'babel-plugin-module-resolver',
89
145
  {
90
146
  alias: {
147
+ // "vite-tsconfig-paths" for Metro
91
148
  ...Object.fromEntries(
92
149
  Object.entries(tsconfigPathsConfigLoadResult.paths).map(([k, v]) => {
93
- const key = k.replace(/\/\*$/, '')
150
+ const key = (() => {
151
+ if (k.endsWith('/*')) {
152
+ return k.replace(/\/\*$/, '')
153
+ }
154
+
155
+ // If the key does not end with "/*", only alias exact matches.
156
+ // Ref: https://www.npmjs.com/package/babel-plugin-module-resolver/v/3.0.0#regular-expression-alias
157
+ return `${k}$`
158
+ })()
159
+
94
160
  let value = v[0].replace(/\/\*$/, '')
95
161
 
96
162
  if (!value.startsWith('./')) {
@@ -111,6 +177,7 @@ export function getViteMetroPluginOptions({
111
177
  path.join(projectRoot, relativeRouterRoot)
112
178
  ),
113
179
  ONE_ROUTER_ROOT_FOLDER_NAME: relativeRouterRoot,
180
+ ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING: routerRequireContextRegexString,
114
181
  },
115
182
  ],
116
183
  ],
@@ -0,0 +1,16 @@
1
+ export const ROUTE_GLOB_PATTERN = '**/*.{ts,tsx}'
2
+ export const API_ROUTE_GLOB_PATTERN = '**/*+api.{ts,tsx}'
3
+
4
+ /**
5
+ * Glob patterns that will definitely be excluded from web that we can ignore as early as possible.
6
+ */
7
+ export const ROUTE_WEB_EXCLUSION_GLOB_PATTERNS = [
8
+ '**/*.native.{ts,tsx}',
9
+ '**/*.ios.{ts,tsx}',
10
+ '**/*.android.{ts,tsx}',
11
+ ]
12
+
13
+ /**
14
+ * Glob patterns that will definitely be excluded from native that we can ignore as early as possible.
15
+ */
16
+ export const ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS = ['**/*.web.{ts,tsx}']
@@ -1,12 +1,23 @@
1
1
  import FSExtra from 'fs-extra'
2
2
  import { writeFile } from 'node:fs/promises'
3
3
  import { dirname } from 'node:path'
4
+ import micromatch from 'micromatch'
4
5
  import { globbedRoutesToRouteContext } from '../router/useViteRoutes'
5
6
  import { globDir } from '../utils/globDir'
6
7
  import { getTypedRoutesDeclarationFile } from './getTypedRoutesDeclarationFile'
7
8
 
8
- export async function generateRouteTypes(outFile: string, routerRoot: string) {
9
- const routePaths = globDir(routerRoot)
9
+ export async function generateRouteTypes(
10
+ outFile: string,
11
+ routerRoot: string,
12
+ ignoredRouteFiles?: string[]
13
+ ) {
14
+ let routePaths = globDir(routerRoot)
15
+ if (ignoredRouteFiles && ignoredRouteFiles.length > 0) {
16
+ routePaths = micromatch.not(routePaths, ignoredRouteFiles, {
17
+ // The path starts with './', such as './foo/bar/baz.test.tsx', and ignoredRouteFiles is like ['**/*.test.*'], so we need matchBase here.
18
+ matchBase: true,
19
+ })
20
+ }
10
21
  const routes = routePaths.reduce((acc, cur) => {
11
22
  acc[cur] = {}
12
23
  return acc
package/src/vite/one.ts CHANGED
@@ -63,6 +63,7 @@ export function one(options: One.PluginOptions = {}): PluginOption {
63
63
  const defaultMetroOptions = getViteMetroPluginOptions({
64
64
  projectRoot: process.cwd(), // TODO: hard-coded process.cwd(), we should make this optional since the plugin can have a default to vite's `config.root`.
65
65
  relativeRouterRoot: routerRoot,
66
+ ignoredRouteFiles: options.router?.ignoredRouteFiles,
66
67
  })
67
68
 
68
69
  const userMetroOptions = options.native?.bundlerOptions as typeof defaultMetroOptions
@@ -143,7 +144,7 @@ export function one(options: One.PluginOptions = {}): PluginOption {
143
144
  __get: options,
144
145
  },
145
146
 
146
- barrelOption === false
147
+ !barrelOption
147
148
  ? null
148
149
  : (barrel({
149
150
  packages: Array.isArray(barrelOption) ? barrelOption : ['@tamagui/lucide-icons'],
@@ -29,7 +29,7 @@ export function generateFileSystemRouteTypesPlugin(options: One.PluginOptions):
29
29
  if (type === 'add' || type === 'delete') {
30
30
  if (path.startsWith(appDir)) {
31
31
  // generate
32
- generateRouteTypes(outFile, routerRoot)
32
+ generateRouteTypes(outFile, routerRoot, options.router?.ignoredRouteFiles)
33
33
  }
34
34
  }
35
35
  }, 100)
@@ -39,7 +39,7 @@ export function generateFileSystemRouteTypesPlugin(options: One.PluginOptions):
39
39
  return () => {
40
40
  // once on startup:
41
41
 
42
- generateRouteTypes(outFile, routerRoot)
42
+ generateRouteTypes(outFile, routerRoot, options.router?.ignoredRouteFiles)
43
43
  }
44
44
  },
45
45
  } satisfies Plugin
@@ -7,6 +7,12 @@ import {
7
7
  virtualEntryId,
8
8
  virtualEntryIdNative,
9
9
  } from './virtualEntryConstants'
10
+ import {
11
+ API_ROUTE_GLOB_PATTERN,
12
+ ROUTE_GLOB_PATTERN,
13
+ ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS,
14
+ ROUTE_WEB_EXCLUSION_GLOB_PATTERNS,
15
+ } from '../../router/glob-patterns'
10
16
 
11
17
  const USE_ONE_SETUP_FILE = `
12
18
  if (process.env.ONE_SETUP_FILE) {
@@ -14,9 +20,18 @@ if (process.env.ONE_SETUP_FILE) {
14
20
  }
15
21
  `
16
22
 
17
- export function createVirtualEntry(options: { root: string; flags: One.Flags }): Plugin {
18
- const appDirGlob = `/${options.root}/**/*.tsx`
19
- const appDirApiGlob = `/${options.root}/**/*+api.tsx`
23
+ export function createVirtualEntry(options: {
24
+ root: string
25
+ router?: {
26
+ ignoredRouteFiles?: Array<string>
27
+ }
28
+ flags: One.Flags
29
+ }): Plugin {
30
+ const routeGlobs = [
31
+ `/${options.root}/${ROUTE_GLOB_PATTERN}`,
32
+ ...(options.router?.ignoredRouteFiles?.map((pattern) => `!/${options.root}/${pattern}`) || []),
33
+ ]
34
+ const apiRouteGlobs = `/${options.root}/${API_ROUTE_GLOB_PATTERN}`
20
35
 
21
36
  return {
22
37
  name: 'one-virtual-entry',
@@ -41,9 +56,9 @@ ${prependCode}
41
56
 
42
57
  import { createApp } from 'one'
43
58
 
44
- // globbing ${appDirGlob}
59
+ // globbing ${JSON.stringify(routeGlobs)}
45
60
  export default createApp({
46
- routes: import.meta.glob('${appDirGlob}', { exhaustive: true }),
61
+ routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...ROUTE_WEB_EXCLUSION_GLOB_PATTERNS.map((p) => `!${p}`)])}, { exhaustive: true }),
47
62
  routerRoot: ${JSON.stringify(options.root)},
48
63
  flags: ${JSON.stringify(options.flags)},
49
64
  })
@@ -59,9 +74,9 @@ ${prependCode}
59
74
 
60
75
  import { createApp } from 'one'
61
76
 
62
- // globbing ${appDirGlob}
77
+ // globbing ${JSON.stringify(routeGlobs)}
63
78
  export default createApp({
64
- routes: import.meta.glob(['${appDirGlob}', '!${appDirApiGlob}'], { exhaustive: true }),
79
+ routes: import.meta.glob(${JSON.stringify([...routeGlobs, ...ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS.map((p) => `!${p}`), `!${apiRouteGlobs}`])}, { exhaustive: true }),
65
80
  routerRoot: ${JSON.stringify(options.root)},
66
81
  flags: ${JSON.stringify(options.flags)},
67
82
  })
package/src/vite/types.ts CHANGED
@@ -117,6 +117,17 @@ export namespace One {
117
117
  transform?: GetTransform
118
118
 
119
119
  router?: {
120
+ /**
121
+ * An array of globs that One uses to ignore files in your routes directory. If a file matches any pattern, it will not be treated as a route.
122
+ *
123
+ * This is useful for ignoring test or utility files you wish to colocate.
124
+ *
125
+ * Currently, we only support patterns starting with <code>&#42;&#42;/&#42;</code>.
126
+ *
127
+ * Example:
128
+ * * <code>&#42;&#42;/&#42;.test.*</code>
129
+ */
130
+ ignoredRouteFiles?: Array<`**/*${string}`>,
120
131
  /**
121
132
  * Dangerously customize the router root directory. This may lead to unexpected behavior.
122
133
  */
@@ -1,6 +1,7 @@
1
1
  type PluginOptions = {
2
2
  ONE_ROUTER_APP_ROOT_RELATIVE_TO_ENTRY?: string;
3
3
  ONE_ROUTER_ROOT_FOLDER_NAME?: string;
4
+ ONE_ROUTER_REQUIRE_CONTEXT_REGEX_STRING?: string;
4
5
  };
5
6
  declare function oneRouterMetroPlugin(_: any, options: PluginOptions): {
6
7
  name: string;
@@ -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;CACrC,CAAA;AAED,iBAAS,oBAAoB,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,aAAa;;;+BAqB/B,GAAG,SAAS,GAAG;;EAc3C;AAED,eAAe,oBAAoB,CAAA"}
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,6 +1,7 @@
1
1
  import type { metroPlugin } from '@vxrn/vite-plugin-metro';
2
- export declare function getViteMetroPluginOptions({ projectRoot, relativeRouterRoot, }: {
2
+ export declare function getViteMetroPluginOptions({ projectRoot, relativeRouterRoot, ignoredRouteFiles, }: {
3
3
  projectRoot: string;
4
4
  relativeRouterRoot: string;
5
+ ignoredRouteFiles?: Array<`**/*${string}`>;
5
6
  }): Parameters<typeof metroPlugin>[0];
6
7
  //# sourceMappingURL=getViteMetroPluginOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getViteMetroPluginOptions.d.ts","sourceRoot":"","sources":["../../src/metro-config/getViteMetroPluginOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAK1D,wBAAgB,yBAAyB,CAAC,EACxC,WAAW,EACX,kBAAkB,GACnB,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;CAC3B,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CA2GpC"}
1
+ {"version":3,"file":"getViteMetroPluginOptions.d.ts","sourceRoot":"","sources":["../../src/metro-config/getViteMetroPluginOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAU1D,wBAAgB,yBAAyB,CAAC,EACxC,WAAW,EACX,kBAAkB,EAClB,iBAAiB,GAClB,EAAE;IACD,WAAW,EAAE,MAAM,CAAA;IACnB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,KAAK,CAAC,OAAO,MAAM,EAAE,CAAC,CAAA;CAC3C,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAAC,CAAC,CAAC,CAuKpC"}
@@ -0,0 +1,11 @@
1
+ export declare const ROUTE_GLOB_PATTERN = "**/*.{ts,tsx}";
2
+ export declare const API_ROUTE_GLOB_PATTERN = "**/*+api.{ts,tsx}";
3
+ /**
4
+ * Glob patterns that will definitely be excluded from web that we can ignore as early as possible.
5
+ */
6
+ export declare const ROUTE_WEB_EXCLUSION_GLOB_PATTERNS: string[];
7
+ /**
8
+ * Glob patterns that will definitely be excluded from native that we can ignore as early as possible.
9
+ */
10
+ export declare const ROUTE_NATIVE_EXCLUSION_GLOB_PATTERNS: string[];
11
+ //# sourceMappingURL=glob-patterns.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glob-patterns.d.ts","sourceRoot":"","sources":["../../src/router/glob-patterns.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,kBAAkB,CAAA;AACjD,eAAO,MAAM,sBAAsB,sBAAsB,CAAA;AAEzD;;GAEG;AACH,eAAO,MAAM,iCAAiC,UAI7C,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,oCAAoC,UAAwB,CAAA"}
@@ -1,2 +1,2 @@
1
- export declare function generateRouteTypes(outFile: string, routerRoot: string): Promise<void>;
1
+ export declare function generateRouteTypes(outFile: string, routerRoot: string, ignoredRouteFiles?: string[]): Promise<void>;
2
2
  //# sourceMappingURL=generateRouteTypes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateRouteTypes.d.ts","sourceRoot":"","sources":["../../src/typed-routes/generateRouteTypes.ts"],"names":[],"mappings":"AAOA,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,iBAU3E"}
1
+ {"version":3,"file":"generateRouteTypes.d.ts","sourceRoot":"","sources":["../../src/typed-routes/generateRouteTypes.ts"],"names":[],"mappings":"AAQA,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,iBAAiB,CAAC,EAAE,MAAM,EAAE,iBAiB7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"one.d.ts","sourceRoot":"","sources":["../../src/vite/one.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,YAAY,EAAc,MAAM,MAAM,CAAA;AAM5D,OAAO,qBAAqB,CAAA;AAW5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAyBlC,wBAAgB,GAAG,CAAC,OAAO,GAAE,GAAG,CAAC,aAAkB,GAAG,YAAY,CAyfjE"}
1
+ {"version":3,"file":"one.d.ts","sourceRoot":"","sources":["../../src/vite/one.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAU,YAAY,EAAc,MAAM,MAAM,CAAA;AAM5D,OAAO,qBAAqB,CAAA;AAW5B,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAyBlC,wBAAgB,GAAG,CAAC,OAAO,GAAE,GAAG,CAAC,aAAkB,GAAG,YAAY,CA0fjE"}
@@ -2,6 +2,9 @@ import type { Plugin } from 'vite';
2
2
  import type { One } from '../types';
3
3
  export declare function createVirtualEntry(options: {
4
4
  root: string;
5
+ router?: {
6
+ ignoredRouteFiles?: Array<string>;
7
+ };
5
8
  flags: One.Flags;
6
9
  }): Plugin;
7
10
  //# 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;AAElC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAcnC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAA;CAAE,GAAG,MAAM,CAuDtF"}
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;AAElC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAoBnC,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,CA0DT"}
@@ -95,6 +95,17 @@ export declare namespace One {
95
95
  */
96
96
  transform?: GetTransform;
97
97
  router?: {
98
+ /**
99
+ * An array of globs that One uses to ignore files in your routes directory. If a file matches any pattern, it will not be treated as a route.
100
+ *
101
+ * This is useful for ignoring test or utility files you wish to colocate.
102
+ *
103
+ * Currently, we only support patterns starting with <code>&#42;&#42;/&#42;</code>.
104
+ *
105
+ * Example:
106
+ * * <code>&#42;&#42;/&#42;.test.*</code>
107
+ */
108
+ ignoredRouteFiles?: Array<`**/*${string}`>;
98
109
  /**
99
110
  * Dangerously customize the router root directory. This may lead to unexpected behavior.
100
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vite/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vite/types.ts"],"names":[],"mappings":"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"}