@sveltejs/kit 2.30.0 → 2.30.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sveltejs/kit",
3
- "version": "2.30.0",
3
+ "version": "2.30.1",
4
4
  "description": "SvelteKit is the fastest way to build Svelte apps",
5
5
  "keywords": [
6
6
  "framework",
@@ -9,14 +9,13 @@ import { write_non_ambient } from './write_non_ambient.js';
9
9
  import { write_server } from './write_server.js';
10
10
 
11
11
  /**
12
- * Initialize SvelteKit's generated files.
12
+ * Initialize SvelteKit's generated files that only depend on the config and mode.
13
13
  * @param {import('types').ValidatedConfig} config
14
14
  * @param {string} mode
15
15
  */
16
16
  export function init(config, mode) {
17
17
  write_tsconfig(config.kit);
18
18
  write_ambient(config.kit, mode);
19
- write_non_ambient(config.kit);
20
19
  }
21
20
 
22
21
  /**
@@ -32,6 +31,7 @@ export function create(config) {
32
31
  write_server(config, output);
33
32
  write_root(manifest_data, output);
34
33
  write_all_types(config, manifest_data);
34
+ write_non_ambient(config.kit, manifest_data);
35
35
 
36
36
  return { manifest_data };
37
37
  }
@@ -67,6 +67,7 @@ export function all_types(config, mode) {
67
67
  init(config, mode);
68
68
  const manifest_data = create_manifest_data({ config });
69
69
  write_all_types(config, manifest_data);
70
+ write_non_ambient(config.kit, manifest_data);
70
71
  }
71
72
 
72
73
  /**
@@ -1,6 +1,17 @@
1
1
  import path from 'node:path';
2
2
  import { GENERATED_COMMENT } from '../../constants.js';
3
3
  import { write_if_changed } from './utils.js';
4
+ import { s } from '../../utils/misc.js';
5
+ import { get_route_segments } from '../../utils/routing.js';
6
+
7
+ const replace_optional_params = (/** @type {string} */ id) =>
8
+ id.replace(/\/\[\[[^\]]+\]\]/g, '${string}');
9
+ const replace_required_params = (/** @type {string} */ id) =>
10
+ id.replace(/\/\[[^\]]+\]/g, '/${string}');
11
+ /** Convert route ID to pathname by removing layout groups */
12
+ const remove_group_segments = (/** @type {string} */ id) => {
13
+ return '/' + get_route_segments(id).join('/');
14
+ };
4
15
 
5
16
  // `declare module "svelte/elements"` needs to happen in a non-ambient module, and dts-buddy generates one big ambient module,
6
17
  // so we can't add it there - therefore generate the typings ourselves here.
@@ -33,10 +44,75 @@ declare module "svelte/elements" {
33
44
  export {};
34
45
  `;
35
46
 
47
+ /**
48
+ * Generate app types interface extension
49
+ * @param {import('types').ManifestData} manifest_data
50
+ */
51
+ function generate_app_types(manifest_data) {
52
+ /** @type {Set<string>} */
53
+ const pathnames = new Set();
54
+
55
+ /** @type {string[]} */
56
+ const dynamic_routes = [];
57
+
58
+ /** @type {string[]} */
59
+ const layouts = [];
60
+
61
+ for (const route of manifest_data.routes) {
62
+ if (route.params.length > 0) {
63
+ const params = route.params.map((p) => `${p.name}${p.optional ? '?:' : ':'} string`);
64
+ const route_type = `${s(route.id)}: { ${params.join('; ')} }`;
65
+
66
+ dynamic_routes.push(route_type);
67
+
68
+ const pathname = remove_group_segments(route.id);
69
+ pathnames.add(`\`${replace_required_params(replace_optional_params(pathname))}\` & {}`);
70
+ } else {
71
+ const pathname = remove_group_segments(route.id);
72
+ pathnames.add(s(pathname));
73
+ }
74
+
75
+ /** @type {Map<string, boolean>} */
76
+ const child_params = new Map(route.params.map((p) => [p.name, p.optional]));
77
+
78
+ for (const child of manifest_data.routes.filter((r) => r.id.startsWith(route.id))) {
79
+ for (const p of child.params) {
80
+ if (!child_params.has(p.name)) {
81
+ child_params.set(p.name, true); // always optional
82
+ }
83
+ }
84
+ }
85
+
86
+ const layout_params = Array.from(child_params)
87
+ .map(([name, optional]) => `${name}${optional ? '?:' : ':'} string`)
88
+ .join('; ');
89
+
90
+ const layout_type = `${s(route.id)}: ${layout_params.length > 0 ? `{ ${layout_params} }` : 'Record<string, never>'}`;
91
+ layouts.push(layout_type);
92
+ }
93
+
94
+ return [
95
+ 'declare module "$app/types" {',
96
+ '\texport interface AppTypes {',
97
+ `\t\tRouteId(): ${manifest_data.routes.map((r) => s(r.id)).join(' | ')};`,
98
+ `\t\tRouteParams(): {\n\t\t\t${dynamic_routes.join(';\n\t\t\t')}\n\t\t};`,
99
+ `\t\tLayoutParams(): {\n\t\t\t${layouts.join(';\n\t\t\t')}\n\t\t};`,
100
+ `\t\tPathname(): ${Array.from(pathnames).join(' | ')};`,
101
+ '\t\tResolvedPathname(): `${"" | `/${string}`}${ReturnType<AppTypes[\'Pathname\']>}`;',
102
+ `\t\tAsset(): ${manifest_data.assets.map((asset) => s('/' + asset.file)).join(' | ') || 'never'};`,
103
+ '\t}',
104
+ '}'
105
+ ].join('\n');
106
+ }
107
+
36
108
  /**
37
109
  * Writes non-ambient declarations to the output directory
38
110
  * @param {import('types').ValidatedKitConfig} config
111
+ * @param {import('types').ManifestData} manifest_data
39
112
  */
40
- export function write_non_ambient(config) {
41
- write_if_changed(path.join(config.outDir, 'non-ambient.d.ts'), template);
113
+ export function write_non_ambient(config, manifest_data) {
114
+ const app_types = generate_app_types(manifest_data);
115
+ const content = [template, app_types].join('\n\n');
116
+
117
+ write_if_changed(path.join(config.outDir, 'non-ambient.d.ts'), content);
42
118
  }
@@ -5,19 +5,8 @@ import MagicString from 'magic-string';
5
5
  import { posixify, rimraf, walk } from '../../../utils/filesystem.js';
6
6
  import { compact } from '../../../utils/array.js';
7
7
  import { ts } from '../ts.js';
8
- import { s } from '../../../utils/misc.js';
9
- import { get_route_segments } from '../../../utils/routing.js';
10
-
11
8
  const remove_relative_parent_traversals = (/** @type {string} */ path) =>
12
9
  path.replace(/\.\.\//g, '');
13
- const replace_optional_params = (/** @type {string} */ id) =>
14
- id.replace(/\/\[\[[^\]]+\]\]/g, '${string}');
15
- const replace_required_params = (/** @type {string} */ id) =>
16
- id.replace(/\/\[[^\]]+\]/g, '/${string}');
17
- /** Convert route ID to pathname by removing layout groups */
18
- const remove_group_segments = (/** @type {string} */ id) => {
19
- return '/' + get_route_segments(id).join('/');
20
- };
21
10
  const is_whitespace = (/** @type {string} */ char) => /\s/.test(char);
22
11
 
23
12
  /**
@@ -65,67 +54,6 @@ export function write_all_types(config, manifest_data) {
65
54
  }
66
55
  }
67
56
 
68
- /** @type {Set<string>} */
69
- const pathnames = new Set();
70
-
71
- /** @type {string[]} */
72
- const dynamic_routes = [];
73
-
74
- /** @type {string[]} */
75
- const layouts = [];
76
-
77
- for (const route of manifest_data.routes) {
78
- if (route.params.length > 0) {
79
- const params = route.params.map((p) => `${p.name}${p.optional ? '?:' : ':'} string`);
80
- const route_type = `${s(route.id)}: { ${params.join('; ')} }`;
81
-
82
- dynamic_routes.push(route_type);
83
-
84
- const pathname = remove_group_segments(route.id);
85
- pathnames.add(`\`${replace_required_params(replace_optional_params(pathname))}\` & {}`);
86
- } else {
87
- const pathname = remove_group_segments(route.id);
88
- pathnames.add(s(pathname));
89
- }
90
-
91
- /** @type {Map<string, boolean>} */
92
- const child_params = new Map(route.params.map((p) => [p.name, p.optional]));
93
-
94
- for (const child of manifest_data.routes.filter((r) => r.id.startsWith(route.id))) {
95
- for (const p of child.params) {
96
- if (!child_params.has(p.name)) {
97
- child_params.set(p.name, true); // always optional
98
- }
99
- }
100
- }
101
-
102
- const layout_params = Array.from(child_params)
103
- .map(([name, optional]) => `${name}${optional ? '?:' : ':'} string`)
104
- .join('; ');
105
-
106
- const layout_type = `${s(route.id)}: ${layout_params.length > 0 ? `{ ${layout_params} }` : 'undefined'}`;
107
- layouts.push(layout_type);
108
- }
109
-
110
- try {
111
- fs.mkdirSync(types_dir, { recursive: true });
112
- } catch {}
113
-
114
- fs.writeFileSync(
115
- `${types_dir}/index.d.ts`,
116
- [
117
- `type DynamicRoutes = {\n\t${dynamic_routes.join(';\n\t')}\n};`,
118
- `type Layouts = {\n\t${layouts.join(';\n\t')}\n};`,
119
- // we enumerate these rather than doing `keyof Routes` so that the list is visible on hover
120
- `export type RouteId = ${manifest_data.routes.map((r) => s(r.id)).join(' | ')};`,
121
- 'export type RouteParams<T extends RouteId> = T extends keyof DynamicRoutes ? DynamicRoutes[T] : Record<string, never>;',
122
- 'export type LayoutParams<T extends RouteId> = Layouts[T] | Record<string, never>;',
123
- `export type Pathname = ${Array.from(pathnames).join(' | ')};`,
124
- 'export type ResolvedPathname = `${"" | `/${string}`}${Pathname}`;',
125
- `export type Asset = ${manifest_data.assets.map((asset) => s('/' + asset.file)).join(' | ') || 'never'};`
126
- ].join('\n\n')
127
- );
128
-
129
57
  // Read/write meta data on each invocation, not once per node process,
130
58
  // it could be invoked by another process in the meantime.
131
59
  const meta_data_file = `${types_dir}/route_meta_data.json`;
@@ -23,7 +23,6 @@ import {
23
23
  RouteId as AppRouteId,
24
24
  LayoutParams as AppLayoutParams,
25
25
  ResolvedPathname
26
- // @ts-ignore
27
26
  } from '$app/types';
28
27
 
29
28
  export { PrerenderOption } from '../types/private.js';
@@ -8,7 +8,9 @@ export function asset(file) {
8
8
 
9
9
  /** @type {import('./types.d.ts').resolve} */
10
10
  export function resolve(id, params) {
11
- return base + resolve_route(id, params);
11
+ // The type error is correct here, and if someone doesn't pass params when they should there's a runtime error,
12
+ // but we don't want to adjust the internal resolve_route function to accept `undefined`, hence the type cast.
13
+ return base + resolve_route(id, /** @type {Record<string, string>} */ (params));
12
14
  }
13
15
 
14
16
  export { base, assets, resolve as resolveRoute };
@@ -1,4 +1,3 @@
1
- // @ts-ignore
2
1
  import { Asset, RouteId, RouteParams, Pathname, ResolvedPathname } from '$app/types';
3
2
 
4
3
  /**
@@ -79,3 +79,57 @@ declare module '$service-worker' {
79
79
  */
80
80
  export const version: string;
81
81
  }
82
+
83
+ /**
84
+ * This module contains generated types for the routes in your app.
85
+ */
86
+ declare module '$app/types' {
87
+ /**
88
+ * Interface for all generated app types. This gets extended via declaration merging. DO NOT USE THIS INTERFACE DIRECTLY.
89
+ */
90
+ export interface AppTypes {
91
+ // These are all functions so that we can leverage function overloads to get the correct type.
92
+ // Using the return types directly would error with a "not the same type" error.
93
+ // https://www.typescriptlang.org/docs/handbook/declaration-merging.html#merging-interfaces
94
+ RouteId(): string;
95
+ RouteParams(): Record<string, Record<string, string>>;
96
+ LayoutParams(): Record<string, Record<string, string>>;
97
+ Pathname(): string;
98
+ ResolvedPathname(): string;
99
+ Asset(): string;
100
+ }
101
+
102
+ /**
103
+ * A union of all the route IDs in your app. Used for `page.route.id` and `event.route.id`.
104
+ */
105
+ export type RouteId = ReturnType<AppTypes['RouteId']>;
106
+
107
+ /**
108
+ * A utility for getting the parameters associated with a given route.
109
+ */
110
+ export type RouteParams<T extends RouteId> = T extends keyof ReturnType<AppTypes['RouteParams']>
111
+ ? ReturnType<AppTypes['RouteParams']>[T]
112
+ : Record<string, never>;
113
+
114
+ /**
115
+ * A utility for getting the parameters associated with a given layout, which is similar to `RouteParams` but also includes optional parameters for any child route.
116
+ */
117
+ export type LayoutParams<T extends RouteId> = T extends keyof ReturnType<AppTypes['LayoutParams']>
118
+ ? ReturnType<AppTypes['LayoutParams']>[T]
119
+ : Record<string, never>;
120
+
121
+ /**
122
+ * A union of all valid pathnames in your app.
123
+ */
124
+ export type Pathname = ReturnType<AppTypes['Pathname']>;
125
+
126
+ /**
127
+ * `Pathname`, but possibly prefixed with a base path. Used for `page.url.pathname`.
128
+ */
129
+ export type ResolvedPathname = ReturnType<AppTypes['ResolvedPathname']>;
130
+
131
+ /**
132
+ * A union of all the filenames of assets contained in your `static` directory.
133
+ */
134
+ export type Asset = ReturnType<AppTypes['Asset']>;
135
+ }
package/src/version.js CHANGED
@@ -1,4 +1,4 @@
1
1
  // generated during release, do not modify
2
2
 
3
3
  /** @type {string} */
4
- export const VERSION = '2.30.0';
4
+ export const VERSION = '2.30.1';
package/types/index.d.ts CHANGED
@@ -2950,4 +2950,58 @@ declare module '$service-worker' {
2950
2950
  export const version: string;
2951
2951
  }
2952
2952
 
2953
+ /**
2954
+ * This module contains generated types for the routes in your app.
2955
+ */
2956
+ declare module '$app/types' {
2957
+ /**
2958
+ * Interface for all generated app types. This gets extended via declaration merging. DO NOT USE THIS INTERFACE DIRECTLY.
2959
+ */
2960
+ export interface AppTypes {
2961
+ // These are all functions so that we can leverage function overloads to get the correct type.
2962
+ // Using the return types directly would error with a "not the same type" error.
2963
+ // https://www.typescriptlang.org/docs/handbook/declaration-merging.html#merging-interfaces
2964
+ RouteId(): string;
2965
+ RouteParams(): Record<string, Record<string, string>>;
2966
+ LayoutParams(): Record<string, Record<string, string>>;
2967
+ Pathname(): string;
2968
+ ResolvedPathname(): string;
2969
+ Asset(): string;
2970
+ }
2971
+
2972
+ /**
2973
+ * A union of all the route IDs in your app. Used for `page.route.id` and `event.route.id`.
2974
+ */
2975
+ export type RouteId = ReturnType<AppTypes['RouteId']>;
2976
+
2977
+ /**
2978
+ * A utility for getting the parameters associated with a given route.
2979
+ */
2980
+ export type RouteParams<T extends RouteId> = T extends keyof ReturnType<AppTypes['RouteParams']>
2981
+ ? ReturnType<AppTypes['RouteParams']>[T]
2982
+ : Record<string, never>;
2983
+
2984
+ /**
2985
+ * A utility for getting the parameters associated with a given layout, which is similar to `RouteParams` but also includes optional parameters for any child route.
2986
+ */
2987
+ export type LayoutParams<T extends RouteId> = T extends keyof ReturnType<AppTypes['LayoutParams']>
2988
+ ? ReturnType<AppTypes['LayoutParams']>[T]
2989
+ : Record<string, never>;
2990
+
2991
+ /**
2992
+ * A union of all valid pathnames in your app.
2993
+ */
2994
+ export type Pathname = ReturnType<AppTypes['Pathname']>;
2995
+
2996
+ /**
2997
+ * `Pathname`, but possibly prefixed with a base path. Used for `page.url.pathname`.
2998
+ */
2999
+ export type ResolvedPathname = ReturnType<AppTypes['ResolvedPathname']>;
3000
+
3001
+ /**
3002
+ * A union of all the filenames of assets contained in your `static` directory.
3003
+ */
3004
+ export type Asset = ReturnType<AppTypes['Asset']>;
3005
+ }
3006
+
2953
3007
  //# sourceMappingURL=index.d.ts.map
@@ -185,6 +185,6 @@
185
185
  null,
186
186
  null
187
187
  ],
188
- "mappings": "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",
188
+ "mappings": "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",
189
189
  "ignoreList": []
190
190
  }