@react-router/dev 0.0.0-experimental-2d5e406e4 → 0.0.0-experimental-3bba3331c

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 (54) hide show
  1. package/dist/cli/commands.d.ts +1 -0
  2. package/dist/cli/commands.js +12 -1
  3. package/dist/cli/detectPackageManager.js +1 -1
  4. package/dist/cli/index.js +1 -1
  5. package/dist/cli/run.js +8 -1
  6. package/dist/cli/useJavascript.js +1 -1
  7. package/dist/colors.js +1 -1
  8. package/dist/config/format.js +1 -1
  9. package/dist/config/routes.js +1 -1
  10. package/dist/invariant.js +1 -1
  11. package/dist/routes.js +1 -1
  12. package/dist/typescript/plugin.js +2 -13
  13. package/dist/typescript/typegen.d.ts +8 -4
  14. package/dist/typescript/typegen.js +24 -24
  15. package/dist/vite/babel.js +1 -1
  16. package/dist/vite/build.js +1 -1
  17. package/dist/vite/cloudflare-dev-proxy.js +1 -1
  18. package/dist/vite/cloudflare.js +1 -1
  19. package/dist/vite/combine-urls.js +1 -1
  20. package/dist/vite/config.js +1 -1
  21. package/dist/vite/dev.js +1 -1
  22. package/dist/vite/import-vite-esm-sync.js +1 -1
  23. package/dist/vite/node-adapter.js +1 -1
  24. package/dist/vite/plugin.js +1 -1
  25. package/dist/vite/profiler.js +1 -1
  26. package/dist/vite/remove-exports.js +1 -1
  27. package/dist/vite/resolve-file-url.js +1 -1
  28. package/dist/vite/styles.js +1 -1
  29. package/dist/vite/vite-node.js +1 -1
  30. package/dist/vite/vmod.js +1 -1
  31. package/dist/vite/with-props.js +1 -1
  32. package/dist/vite.js +1 -1
  33. package/package.json +6 -7
  34. package/dist/typescript/ast.d.ts +0 -8
  35. package/dist/typescript/ast.js +0 -98
  36. package/dist/typescript/autotype/api.completions.d.ts +0 -5
  37. package/dist/typescript/autotype/api.completions.js +0 -75
  38. package/dist/typescript/autotype/api.definitions.d.ts +0 -4
  39. package/dist/typescript/autotype/api.definitions.js +0 -55
  40. package/dist/typescript/autotype/api.diagnostics.d.ts +0 -5
  41. package/dist/typescript/autotype/api.diagnostics.js +0 -60
  42. package/dist/typescript/autotype/api.hover.d.ts +0 -3
  43. package/dist/typescript/autotype/api.hover.js +0 -33
  44. package/dist/typescript/autotype/api.inlay-hints.d.ts +0 -3
  45. package/dist/typescript/autotype/api.inlay-hints.js +0 -31
  46. package/dist/typescript/autotype/index.d.ts +0 -5
  47. package/dist/typescript/autotype/language-service.d.ts +0 -35
  48. package/dist/typescript/autotype/language-service.js +0 -290
  49. package/dist/typescript/context.d.ts +0 -15
  50. package/dist/typescript/decorate.d.ts +0 -2
  51. package/dist/typescript/decorate.js +0 -233
  52. package/dist/typescript/routes.d.ts +0 -10
  53. package/dist/typescript/routes.js +0 -102
  54. package/dist/typescript/typecheck.d.ts +0 -1
@@ -10,3 +10,4 @@ export declare function generateEntry(entry: string, reactRouterRoot: string, fl
10
10
  typescript?: boolean;
11
11
  config?: string;
12
12
  }): Promise<void>;
13
+ export declare function typegen(root?: string): Promise<void>;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -21,6 +21,7 @@ var format = require('../config/format.js');
21
21
  var plugin = require('../vite/plugin.js');
22
22
  var useJavascript = require('./useJavascript.js');
23
23
  var profiler = require('../vite/profiler.js');
24
+ var typegen$1 = require('../typescript/typegen.js');
24
25
 
25
26
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
26
27
 
@@ -160,8 +161,18 @@ async function createClientEntry(rootDirectory, appDirectory, inputFile) {
160
161
  let contents = await fse__default["default"].readFile(inputFile, "utf-8");
161
162
  return contents;
162
163
  }
164
+ async function typegen(root) {
165
+ let ctx = await plugin.loadPluginContext({
166
+ root
167
+ });
168
+ await typegen$1.writeAll({
169
+ rootDirectory: ctx.rootDirectory,
170
+ appDirectory: ctx.reactRouterConfig.appDirectory
171
+ }, ctx.reactRouterConfig.routes);
172
+ }
163
173
 
164
174
  exports.build = build;
165
175
  exports.dev = dev;
166
176
  exports.generateEntry = generateEntry;
167
177
  exports.routes = routes;
178
+ exports.typegen = typegen;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/cli/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/cli/run.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -86,6 +86,10 @@ ${colors.logoBlue("react-router")}
86
86
  $ react-router reveal entry.client --no-typescript
87
87
  $ react-router reveal entry.server --no-typescript
88
88
  $ react-router reveal entry.server --config vite.react-router.config.ts
89
+
90
+ ${colors.heading("Generate types for route modules")}:
91
+
92
+ $ react-router typegen
89
93
  `;
90
94
  /**
91
95
  * Programmatic interface for running the react-router CLI with the given command line
@@ -171,6 +175,9 @@ async function run(argv = process.argv.slice(2)) {
171
175
  case "dev":
172
176
  await commands.dev(input[1], flags);
173
177
  break;
178
+ case "typegen":
179
+ await commands.typegen(input[1]);
180
+ break;
174
181
  default:
175
182
  // `react-router ./my-project` is shorthand for `react-router dev ./my-project`
176
183
  await commands.dev(input[0], flags);
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/colors.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/invariant.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/routes.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -12,7 +12,6 @@
12
12
 
13
13
  var Path = require('pathe');
14
14
  var typegen = require('./typegen.js');
15
- var decorate = require('./decorate.js');
16
15
 
17
16
  function _interopNamespace(e) {
18
17
  if (e && e.__esModule) return e;
@@ -42,21 +41,11 @@ function init(modules) {
42
41
  } = info.project.projectService;
43
42
  logger.info("[react-router] setup");
44
43
  const rootDirectory = Path__namespace.normalize(info.project.getCurrentDirectory());
45
- const config = {
44
+ const ctx = {
46
45
  rootDirectory,
47
46
  appDirectory: Path__namespace.join(rootDirectory, "app")
48
47
  };
49
- const ctx = {
50
- config,
51
- routes: {},
52
- // will be updated by `Typegen.watch`
53
- languageService: info.languageService,
54
- languageServiceHost: info.languageServiceHost,
55
- ts: modules.typescript,
56
- logger
57
- };
58
48
  typegen.watch(ctx);
59
- decorate.decorateLanguageService(ctx);
60
49
  return info.languageService;
61
50
  }
62
51
  return {
@@ -1,5 +1,9 @@
1
- import { type RouteManifestEntry } from "../config/routes";
2
- import type { Context } from "./context";
3
- export declare function getPath(ctx: Context, route: Pick<RouteManifestEntry, "file">): string;
1
+ import { type RouteManifest, type RouteManifestEntry } from "../config/routes";
2
+ type Context = {
3
+ rootDirectory: string;
4
+ appDirectory: string;
5
+ };
6
+ export declare function getPath(ctx: Context, route: RouteManifestEntry): string;
4
7
  export declare function watch(ctx: Context): Promise<void>;
5
- export declare function typegenAll(ctx: Context): Promise<void>;
8
+ export declare function writeAll(ctx: Context, routes: RouteManifest): Promise<void>;
9
+ export {};
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -47,75 +47,75 @@ var Path__namespace = /*#__PURE__*/_interopNamespace(Path);
47
47
  var Pathe__namespace = /*#__PURE__*/_interopNamespace(Pathe);
48
48
 
49
49
  function getDirectory(ctx) {
50
- return Path__namespace.join(ctx.config.rootDirectory, ".react-router/types");
50
+ return Path__namespace.join(ctx.rootDirectory, ".react-router/types");
51
51
  }
52
52
  function getPath(ctx, route) {
53
53
  return Path__namespace.join(getDirectory(ctx), "app", Path__namespace.dirname(route.file), "+types." + Path__namespace.basename(route.file));
54
54
  }
55
55
  async function watch(ctx) {
56
- const appDirectory = Path__namespace.normalize(ctx.config.appDirectory);
56
+ const appDirectory = Path__namespace.normalize(ctx.appDirectory);
57
57
  const routesTsPath = Path__namespace.join(appDirectory, "routes.ts");
58
58
  const routesViteNodeContext = await viteNode.createContext();
59
- async function updateRoutes() {
59
+ async function getRoutes() {
60
60
  routesViteNodeContext.devServer.moduleGraph.invalidateAll();
61
61
  routesViteNodeContext.runner.moduleCache.clear();
62
62
  const result = await routesViteNodeContext.runner.executeFile(routesTsPath);
63
- ctx.routes = routes.configRoutesToRouteManifest(result.routes);
63
+ return routes.configRoutesToRouteManifest(result.routes);
64
64
  }
65
- await updateRoutes();
66
- await typegenAll(ctx);
65
+ const initialRoutes = await getRoutes();
66
+ await writeAll(ctx, initialRoutes);
67
67
  const watcher = Chokidar__default["default"].watch(appDirectory, {
68
68
  ignoreInitial: true
69
69
  });
70
70
  watcher.on("all", async (event, path) => {
71
71
  path = Path__namespace.normalize(path);
72
- await updateRoutes();
72
+ const routes = await getRoutes();
73
73
  const routeConfigChanged = Boolean(routesViteNodeContext.devServer.moduleGraph.getModuleById(path));
74
74
  if (routeConfigChanged) {
75
- await typegenAll(ctx);
75
+ await writeAll(ctx, routes);
76
76
  return;
77
77
  }
78
- const isRoute = Object.values(ctx.routes).find(route => path === Path__namespace.join(ctx.config.appDirectory, route.file));
78
+ const isRoute = Object.values(routes).find(route => path === Path__namespace.join(ctx.appDirectory, route.file));
79
79
  if (isRoute && (event === "add" || event === "unlink")) {
80
- await typegenAll(ctx);
80
+ await writeAll(ctx, routes);
81
81
  return;
82
82
  }
83
83
  });
84
84
  }
85
- async function typegenAll(ctx) {
85
+ async function writeAll(ctx, routes) {
86
86
  fs__default["default"].rmSync(getDirectory(ctx), {
87
87
  recursive: true,
88
88
  force: true
89
89
  });
90
- Object.values(ctx.routes).forEach(route => {
90
+ Object.values(routes).forEach(route => {
91
91
  const typesPath = getPath(ctx, route);
92
- const content = getModule(ctx, route);
92
+ const content = getModule(routes, route);
93
93
  fs__default["default"].mkdirSync(Path__namespace.dirname(typesPath), {
94
94
  recursive: true
95
95
  });
96
96
  fs__default["default"].writeFileSync(typesPath, content);
97
97
  });
98
98
  }
99
- function getModule(ctx, route) {
99
+ function getModule(routes, route) {
100
100
  return dedent__default["default"]`
101
101
  // typegen: ${route.file}
102
102
  import * as T from "react-router/types"
103
103
 
104
- export type Params = {${formattedParamsProperties(ctx.routes, route)}}
104
+ export type Params = {${formattedParamsProperties(routes, route)}}
105
105
 
106
106
  type Route = typeof import("./${Pathe__namespace.filename(route.file)}")
107
107
 
108
108
  export type LoaderData = T.LoaderData<Route>
109
109
  export type ActionData = T.ActionData<Route>
110
110
 
111
- export type serverLoader = T.ServerLoader<Params>
112
- export type clientLoader = T.ClientLoader<Params, Route>
113
- export type serverAction = T.ServerAction<Params>
114
- export type clientAction = T.ClientAction<Params, Route>
111
+ export type LoaderArgs = T.ServerLoaderArgs<Params>
112
+ export type ClientLoaderArgs = T.ClientLoaderArgs<Params, Route>
113
+ export type ActionArgs = T.ServerActionArgs<Params>
114
+ export type ClientActionArgs = T.ClientActionArgs<Params, Route>
115
115
 
116
- export type HydrateFallback = T.HydrateFallback<Params>
117
- export type Default = T.Default<Params, LoaderData, ActionData>
118
- export type ErrorBoundary = T.ErrorBoundary<Params, LoaderData, ActionData>
116
+ export type HydrateFallbackProps = T.HydrateFallbackProps<Params>
117
+ export type DefaultProps = T.DefaultProps<Params, LoaderData, ActionData>
118
+ export type ErrorBoundaryProps = T.ErrorBoundaryProps<Params, LoaderData, ActionData>
119
119
  `;
120
120
  }
121
121
  function formattedParamsProperties(routes, route) {
@@ -161,5 +161,5 @@ function parseParams(urlpath) {
161
161
  }
162
162
 
163
163
  exports.getPath = getPath;
164
- exports.typegenAll = typegenAll;
165
164
  exports.watch = watch;
165
+ exports.writeAll = writeAll;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/vite/dev.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/vite/vmod.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/dist/vite.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
2
+ * @react-router/dev v0.0.0-experimental-3bba3331c
3
3
  *
4
4
  * Copyright (c) Remix Software Inc.
5
5
  *
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-router/dev",
3
- "version": "0.0.0-experimental-2d5e406e4",
3
+ "version": "0.0.0-experimental-3bba3331c",
4
4
  "description": "Dev tools and CLI for React Router",
5
5
  "homepage": "https://reactrouter.com",
6
6
  "bugs": {
@@ -61,7 +61,7 @@
61
61
  "set-cookie-parser": "^2.6.0",
62
62
  "valibot": "^0.41.0",
63
63
  "vite-node": "^1.6.0",
64
- "@react-router/node": "0.0.0-experimental-2d5e406e4"
64
+ "@react-router/node": "0.0.0-experimental-3bba3331c"
65
65
  },
66
66
  "devDependencies": {
67
67
  "@types/babel__core": "^7.20.5",
@@ -85,18 +85,17 @@
85
85
  "fast-glob": "3.2.11",
86
86
  "strip-ansi": "^6.0.1",
87
87
  "tiny-invariant": "^1.2.0",
88
- "typescript": "^5.6.2",
89
88
  "vite": "^5.1.0",
90
89
  "wrangler": "^3.28.2",
91
- "react-router": "^0.0.0-experimental-2d5e406e4",
92
- "@react-router/serve": "0.0.0-experimental-2d5e406e4"
90
+ "@react-router/serve": "0.0.0-experimental-3bba3331c",
91
+ "react-router": "^0.0.0-experimental-3bba3331c"
93
92
  },
94
93
  "peerDependencies": {
95
94
  "typescript": "^5.1.0",
96
95
  "vite": "^5.1.0",
97
96
  "wrangler": "^3.28.2",
98
- "@react-router/serve": "^0.0.0-experimental-2d5e406e4",
99
- "react-router": "^0.0.0-experimental-2d5e406e4"
97
+ "@react-router/serve": "^0.0.0-experimental-3bba3331c",
98
+ "react-router": "^0.0.0-experimental-3bba3331c"
100
99
  },
101
100
  "peerDependenciesMeta": {
102
101
  "@react-router/serve": {
@@ -1,8 +0,0 @@
1
- import type ts from "typescript/lib/tsserverlibrary";
2
- import type { Context } from "./context";
3
- export declare function generateUniqueIdentifier(): string;
4
- export declare function findNodeAtPosition(node: ts.Node, pos: number): ts.Node | undefined;
5
- export declare function getRouteExportName(ctx: Context, node: ts.Node): string | undefined;
6
- export declare function getExportNames(ts: Context["ts"], sourceFile: ts.SourceFile): Set<string>;
7
- export declare function exported(ts: Context["ts"], stmt: ts.VariableStatement | ts.FunctionDeclaration): ts.ModifierLike | undefined;
8
- export declare function defaulted(ts: Context["ts"], stmt: ts.FunctionDeclaration): ts.ModifierLike | undefined;
@@ -1,98 +0,0 @@
1
- /**
2
- * @react-router/dev v0.0.0-experimental-2d5e406e4
3
- *
4
- * Copyright (c) Remix Software Inc.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE.md file in the root directory of this source tree.
8
- *
9
- * @license MIT
10
- */
11
- 'use strict';
12
-
13
- Object.defineProperty(exports, '__esModule', { value: true });
14
-
15
- function findNodeAtPosition(node, pos) {
16
- if (pos < node.getStart() || node.getEnd() < pos) return;
17
- for (const child of node.getChildren()) {
18
- if (pos < child.getStart()) break;
19
- if (pos > child.getEnd()) continue;
20
- const found = findNodeAtPosition(child, pos);
21
- if (found) return found;
22
- return child;
23
- }
24
- return node;
25
- }
26
- function getRouteExportName(ctx, node) {
27
- if (node.kind === ctx.ts.SyntaxKind.DefaultKeyword) {
28
- return "default";
29
- }
30
- if (node.kind === ctx.ts.SyntaxKind.FunctionKeyword) {
31
- return getRouteExportName(ctx, node.parent);
32
- }
33
- if (ctx.ts.isIdentifier(node)) {
34
- return getRouteExportName(ctx, node.parent);
35
- }
36
- if (ctx.ts.isExportAssignment(node)) {
37
- if (node.isExportEquals) return;
38
- if (!ctx.ts.isArrowFunction(node.expression)) return;
39
- return "default";
40
- }
41
- if (ctx.ts.isFunctionDeclaration(node)) {
42
- var _node$name;
43
- if (!exported(ctx.ts, node)) return;
44
- if (defaulted(ctx.ts, node)) return "default";
45
- return (_node$name = node.name) === null || _node$name === void 0 ? void 0 : _node$name.text;
46
- }
47
- if (ctx.ts.isVariableDeclaration(node)) {
48
- const varDeclList = node.parent;
49
- if (!ctx.ts.isVariableDeclarationList(varDeclList)) return;
50
- const varStmt = varDeclList.parent;
51
- if (!ctx.ts.isVariableStatement(varStmt)) return;
52
- if (!exported(ctx.ts, varStmt)) return;
53
- if (!ctx.ts.isIdentifier(node.name)) return;
54
- return node.name.text;
55
- }
56
- }
57
- function getExportNames(ts, sourceFile) {
58
- const exports = new Set();
59
- sourceFile.statements.forEach(stmt => {
60
- if (ts.isExportDeclaration(stmt)) {
61
- if (stmt.exportClause && ts.isNamedExports(stmt.exportClause)) {
62
- stmt.exportClause.elements.forEach(element => exports.add(element.name.text));
63
- }
64
- }
65
- if (ts.isVariableStatement(stmt) && exported(ts, stmt)) {
66
- stmt.declarationList.declarations.forEach(decl => {
67
- if (ts.isIdentifier(decl.name)) {
68
- exports.add(decl.name.text);
69
- }
70
- });
71
- }
72
- if (ts.isFunctionDeclaration(stmt) && exported(ts, stmt)) {
73
- if (defaulted(ts, stmt)) {
74
- exports.add("default");
75
- } else if (stmt.name) {
76
- exports.add(stmt.name.text);
77
- }
78
- }
79
- if (ts.isExportAssignment(stmt)) {
80
- exports.add("default");
81
- }
82
- });
83
- return exports;
84
- }
85
- function exported(ts, stmt) {
86
- var _stmt$modifiers;
87
- return (_stmt$modifiers = stmt.modifiers) === null || _stmt$modifiers === void 0 ? void 0 : _stmt$modifiers.find(m => m.kind === ts.SyntaxKind.ExportKeyword);
88
- }
89
- function defaulted(ts, stmt) {
90
- var _stmt$modifiers2;
91
- return (_stmt$modifiers2 = stmt.modifiers) === null || _stmt$modifiers2 === void 0 ? void 0 : _stmt$modifiers2.find(m => m.kind === ts.SyntaxKind.DefaultKeyword);
92
- }
93
-
94
- exports.defaulted = defaulted;
95
- exports.exported = exported;
96
- exports.findNodeAtPosition = findNodeAtPosition;
97
- exports.getExportNames = getExportNames;
98
- exports.getRouteExportName = getRouteExportName;
@@ -1,5 +0,0 @@
1
- import type ts from "typescript/lib/tsserverlibrary";
2
- import { type Context } from "../context";
3
- export declare const getCompletionsAtPosition: (ctx: Context) => ts.LanguageService["getCompletionsAtPosition"];
4
- export declare const getCompletionEntryDetails: (ctx: Context) => ts.LanguageService["getCompletionEntryDetails"];
5
- export declare const getSignatureHelpItems: (ctx: Context) => ts.LanguageService["getSignatureHelpItems"];