ferrovue 0.4.0 → 0.6.0
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/README.md +378 -63
- package/dist/attrs.d.ts +3 -2
- package/dist/attrs.js +31 -26
- package/dist/calls.js +17 -15
- package/dist/children.d.ts +11 -4
- package/dist/children.js +110 -44
- package/dist/classes.d.ts +4 -0
- package/dist/classes.js +33 -11
- package/dist/cli.js +31 -5
- package/dist/client.d.ts +44 -6
- package/dist/client.js +182 -18
- package/dist/compiler.d.ts +1 -1
- package/dist/compiler.js +42 -10
- package/dist/component.d.ts +3 -1
- package/dist/component.js +114 -20
- package/dist/conformance.d.ts +64 -0
- package/dist/conformance.js +276 -0
- package/dist/constants.d.ts +42 -0
- package/dist/constants.js +292 -0
- package/dist/context.d.ts +40 -7
- package/dist/context.js +14 -5
- package/dist/diagnostics.d.ts +23 -0
- package/dist/diagnostics.js +30 -0
- package/dist/dynamic.d.ts +18 -0
- package/dist/dynamic.js +576 -0
- package/dist/errors.d.ts +1034 -0
- package/dist/errors.js +425 -0
- package/dist/expr.d.ts +1 -0
- package/dist/expr.js +120 -49
- package/dist/file-routes.d.ts +33 -0
- package/dist/file-routes.js +224 -0
- package/dist/fixture.d.ts +19 -10
- package/dist/fixture.js +23 -12
- package/dist/hydration.d.ts +15 -0
- package/dist/hydration.js +80 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +2 -1
- package/dist/link-router.d.ts +24 -0
- package/dist/link-router.js +37 -0
- package/dist/lists.d.ts +4 -0
- package/dist/lists.js +32 -23
- package/dist/loops.js +18 -14
- package/dist/model.d.ts +43 -1
- package/dist/model.js +167 -7
- package/dist/narrowing.d.ts +8 -0
- package/dist/narrowing.js +40 -9
- package/dist/numbers.js +3 -2
- package/dist/page-routes.d.ts +9 -0
- package/dist/page-routes.js +10 -0
- package/dist/plugin.d.ts +13 -1
- package/dist/plugin.js +3 -0
- package/dist/plugins/client-only.d.ts +8 -0
- package/dist/plugins/client-only.js +110 -0
- package/dist/plugins/head.d.ts +15 -0
- package/dist/plugins/head.js +385 -0
- package/dist/plugins/i18n.js +14 -14
- package/dist/plugins/index.js +5 -1
- package/dist/plugins/provide.d.ts +44 -0
- package/dist/plugins/provide.js +528 -0
- package/dist/plugins/router-link.js +39 -32
- package/dist/plugins/router.d.ts +4 -1
- package/dist/plugins/router.js +65 -19
- package/dist/plugins/scoped.js +1 -1
- package/dist/plugins/shared-types.js +1 -1
- package/dist/plugins/stores.js +45 -33
- package/dist/plugins/teleport.js +3 -3
- package/dist/plugins/twins.d.ts +10 -0
- package/dist/plugins/twins.js +164 -0
- package/dist/routes.d.ts +13 -0
- package/dist/routes.js +12 -0
- package/dist/rust.js +64 -32
- package/dist/script.d.ts +3 -0
- package/dist/script.js +138 -20
- package/dist/settle.d.ts +8 -0
- package/dist/settle.js +39 -0
- package/dist/slots.js +36 -22
- package/dist/ssr.d.ts +3 -0
- package/dist/ssr.js +29 -0
- package/dist/strings.d.ts +3 -0
- package/dist/strings.js +27 -13
- package/dist/styles.js +13 -13
- package/dist/template.js +102 -21
- package/dist/testing.d.ts +3 -3
- package/dist/testing.js +3 -29
- package/dist/types.d.ts +5 -0
- package/dist/typescript.d.ts +2 -1
- package/dist/typescript.js +52 -21
- package/dist/vhtml.d.ts +4 -0
- package/dist/vhtml.js +63 -0
- package/dist/vite.d.ts +8 -2
- package/dist/vite.js +75 -14
- package/package.json +23 -5
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,1034 @@
|
|
|
1
|
+
/** What the documentation says of one error code. */
|
|
2
|
+
export interface ErrorDoc {
|
|
3
|
+
/** What the code refuses, in a few words. */
|
|
4
|
+
title: string;
|
|
5
|
+
/** Why it is refused and what to write instead, where the message alone does not say. */
|
|
6
|
+
detail?: string;
|
|
7
|
+
/** The version that stopped raising it. A retired code stays listed and is never given out again. */
|
|
8
|
+
retired?: string;
|
|
9
|
+
}
|
|
10
|
+
/** The areas codes are grouped in, by their first two digits, with the guide page that explains each. */
|
|
11
|
+
export declare const AREAS: Record<string, {
|
|
12
|
+
name: string;
|
|
13
|
+
guide?: string;
|
|
14
|
+
}>;
|
|
15
|
+
/** Every code the compiler raises. A code is never reused: one the compiler stops raising is marked
|
|
16
|
+
* `retired` and stays listed. `pnpm errors:generate` writes the guide's index from this list. */
|
|
17
|
+
export declare const ERRORS: {
|
|
18
|
+
readonly FV0001: {
|
|
19
|
+
readonly title: "Source file that does not parse";
|
|
20
|
+
readonly detail: "A `<script setup>` block, or a file it reads, is not valid TypeScript. The message is the parser's own, with the line and column where it stopped.";
|
|
21
|
+
};
|
|
22
|
+
readonly FV0002: {
|
|
23
|
+
readonly title: "Component file Vue cannot parse";
|
|
24
|
+
};
|
|
25
|
+
readonly FV0003: {
|
|
26
|
+
readonly title: "`<script>` without `setup`";
|
|
27
|
+
};
|
|
28
|
+
readonly FV0004: {
|
|
29
|
+
readonly title: "Component without a `<template>`";
|
|
30
|
+
};
|
|
31
|
+
readonly FV0005: {
|
|
32
|
+
readonly title: "Template Vue cannot compile";
|
|
33
|
+
};
|
|
34
|
+
readonly FV0006: {
|
|
35
|
+
readonly title: "Unexpected construct in Vue's compiled template";
|
|
36
|
+
readonly detail: "The compiler met output of Vue's server compiler that it has no translation for. Please report it with the component that caused it.";
|
|
37
|
+
};
|
|
38
|
+
readonly FV0007: {
|
|
39
|
+
readonly title: "Component file name that gives no Rust module of its own";
|
|
40
|
+
readonly detail: "Each component is written to a Rust module named after its file in snake case (`UserCard.vue` is `user_card.rs`). A file name that is not letters, digits and `_` starting with a letter, two names with the same snake case (`FooBar.vue` and `Foo_bar.vue`), `Mod.vue`, and a name a module ferrovue writes for the project already has (`Types.vue`, `Stores.vue`) are refused.";
|
|
41
|
+
};
|
|
42
|
+
readonly FV0101: {
|
|
43
|
+
readonly title: "`inheritAttrs` that is not `true` or `false`";
|
|
44
|
+
};
|
|
45
|
+
readonly FV0102: {
|
|
46
|
+
readonly title: "`watch` with `immediate`";
|
|
47
|
+
};
|
|
48
|
+
readonly FV0103: {
|
|
49
|
+
readonly title: "Effect that runs once on the server";
|
|
50
|
+
};
|
|
51
|
+
readonly FV0104: {
|
|
52
|
+
readonly title: "`onServerPrefetch`";
|
|
53
|
+
};
|
|
54
|
+
readonly FV0105: {
|
|
55
|
+
readonly title: "Statement in setup that could change what renders";
|
|
56
|
+
};
|
|
57
|
+
readonly FV0106: {
|
|
58
|
+
readonly title: "`defineAsyncComponent` of anything but a component of this project";
|
|
59
|
+
};
|
|
60
|
+
readonly FV0107: {
|
|
61
|
+
readonly title: "Unsupported statement in setup";
|
|
62
|
+
};
|
|
63
|
+
readonly FV0108: {
|
|
64
|
+
readonly title: "`...rest` in destructured props";
|
|
65
|
+
};
|
|
66
|
+
readonly FV0109: {
|
|
67
|
+
readonly title: "Destructured prop that is not a plain name";
|
|
68
|
+
};
|
|
69
|
+
readonly FV0201: {
|
|
70
|
+
readonly title: "Constant that refers to itself";
|
|
71
|
+
};
|
|
72
|
+
readonly FV0202: {
|
|
73
|
+
readonly title: "Enum member without a value after a string member";
|
|
74
|
+
};
|
|
75
|
+
readonly FV0203: {
|
|
76
|
+
readonly title: "Enum member value that is not a string or number literal";
|
|
77
|
+
};
|
|
78
|
+
readonly FV0204: {
|
|
79
|
+
readonly title: "Field a constant object does not have";
|
|
80
|
+
};
|
|
81
|
+
readonly FV0205: {
|
|
82
|
+
readonly title: "Spread or hole in a constant list";
|
|
83
|
+
};
|
|
84
|
+
readonly FV0206: {
|
|
85
|
+
readonly title: "Computed or spread key in a constant object";
|
|
86
|
+
};
|
|
87
|
+
readonly FV0207: {
|
|
88
|
+
readonly title: "Constant that is not a literal";
|
|
89
|
+
};
|
|
90
|
+
readonly FV0208: {
|
|
91
|
+
readonly title: "Constant object read whole";
|
|
92
|
+
};
|
|
93
|
+
readonly FV0209: {
|
|
94
|
+
readonly title: "`null` in a constant list of plain values";
|
|
95
|
+
};
|
|
96
|
+
readonly FV0210: {
|
|
97
|
+
readonly title: "Constant list of plain values of different types";
|
|
98
|
+
};
|
|
99
|
+
readonly FV0211: {
|
|
100
|
+
readonly title: "Constant list mixing plain values and objects";
|
|
101
|
+
};
|
|
102
|
+
readonly FV0212: {
|
|
103
|
+
readonly title: "Two constant lists with one Rust name";
|
|
104
|
+
};
|
|
105
|
+
readonly FV0213: {
|
|
106
|
+
readonly title: "Object in a constant list without a required field";
|
|
107
|
+
};
|
|
108
|
+
readonly FV0214: {
|
|
109
|
+
readonly title: "`null` for a field that is not nullable";
|
|
110
|
+
};
|
|
111
|
+
readonly FV0215: {
|
|
112
|
+
readonly title: "Field of the wrong type in a constant list's object";
|
|
113
|
+
};
|
|
114
|
+
readonly FV0216: {
|
|
115
|
+
readonly title: "Field of an unsupported type in a constant list's objects";
|
|
116
|
+
};
|
|
117
|
+
readonly FV0217: {
|
|
118
|
+
readonly title: "Field that is only ever `null`";
|
|
119
|
+
};
|
|
120
|
+
readonly FV0218: {
|
|
121
|
+
readonly title: "Field `null` in some objects and absent in others";
|
|
122
|
+
};
|
|
123
|
+
readonly FV0219: {
|
|
124
|
+
readonly title: "Field of different types across a constant list's objects";
|
|
125
|
+
};
|
|
126
|
+
readonly FV0220: {
|
|
127
|
+
readonly title: "Constant list's object type declared twice";
|
|
128
|
+
};
|
|
129
|
+
readonly FV0221: {
|
|
130
|
+
readonly title: "Constant list's object type named as a Rust type";
|
|
131
|
+
};
|
|
132
|
+
readonly FV0222: {
|
|
133
|
+
readonly title: "Constant object read by a key chosen at run time";
|
|
134
|
+
};
|
|
135
|
+
readonly FV0301: {
|
|
136
|
+
readonly title: "`generic` that is not a list of type parameters";
|
|
137
|
+
};
|
|
138
|
+
readonly FV0302: {
|
|
139
|
+
readonly title: "Type parameter without a constraint";
|
|
140
|
+
readonly detail: "A generic component renders each type parameter as its constraint, so `generic=\"T\"` alone gives the server no type. Write `generic=\"T extends string\"`.";
|
|
141
|
+
};
|
|
142
|
+
readonly FV0303: {
|
|
143
|
+
readonly title: "Props declared at run time";
|
|
144
|
+
};
|
|
145
|
+
readonly FV0304: {
|
|
146
|
+
readonly title: "Props type not declared in the component";
|
|
147
|
+
};
|
|
148
|
+
readonly FV0305: {
|
|
149
|
+
readonly title: "`defineModel` without a type";
|
|
150
|
+
};
|
|
151
|
+
readonly FV0306: {
|
|
152
|
+
readonly title: "`defineModel` of a nullable type that is not required";
|
|
153
|
+
};
|
|
154
|
+
readonly FV0307: {
|
|
155
|
+
readonly title: "Default for a nullable prop";
|
|
156
|
+
};
|
|
157
|
+
readonly FV0308: {
|
|
158
|
+
readonly title: "Unknown type";
|
|
159
|
+
};
|
|
160
|
+
readonly FV0309: {
|
|
161
|
+
readonly title: "Type that is only `undefined`";
|
|
162
|
+
};
|
|
163
|
+
readonly FV0310: {
|
|
164
|
+
readonly title: "Object type written in place";
|
|
165
|
+
};
|
|
166
|
+
readonly FV0311: {
|
|
167
|
+
readonly title: "Type that may be both `null` and `undefined`";
|
|
168
|
+
readonly detail: "A Rust `Option` holds one kind of nothing, where JavaScript has two. Declare `T | null` or `x?: T`, never both. See [`props`](crate::guide::props#nullable-props).";
|
|
169
|
+
};
|
|
170
|
+
readonly FV0312: {
|
|
171
|
+
readonly title: "Union of different types";
|
|
172
|
+
};
|
|
173
|
+
readonly FV0313: {
|
|
174
|
+
readonly title: "`Record` not keyed by `string`";
|
|
175
|
+
};
|
|
176
|
+
readonly FV0314: {
|
|
177
|
+
readonly title: "Type alias that refers to itself";
|
|
178
|
+
};
|
|
179
|
+
readonly FV0315: {
|
|
180
|
+
readonly title: "Unsupported named type";
|
|
181
|
+
};
|
|
182
|
+
readonly FV0316: {
|
|
183
|
+
readonly title: "Unsupported type";
|
|
184
|
+
};
|
|
185
|
+
readonly FV0317: {
|
|
186
|
+
readonly title: "`Record` of unsupported values";
|
|
187
|
+
};
|
|
188
|
+
readonly FV0318: {
|
|
189
|
+
readonly title: "Interface named as a Rust type";
|
|
190
|
+
};
|
|
191
|
+
readonly FV0319: {
|
|
192
|
+
readonly title: "Type declared in two files";
|
|
193
|
+
};
|
|
194
|
+
readonly FV0320: {
|
|
195
|
+
readonly title: "Interface with members other than plain named fields";
|
|
196
|
+
};
|
|
197
|
+
readonly FV0321: {
|
|
198
|
+
readonly title: "Optional field of a nullable type";
|
|
199
|
+
};
|
|
200
|
+
readonly FV0322: {
|
|
201
|
+
readonly title: "Prop default that is not a literal";
|
|
202
|
+
};
|
|
203
|
+
readonly FV0401: {
|
|
204
|
+
readonly title: "Interpolation of a value that is not a string, a number or a boolean";
|
|
205
|
+
};
|
|
206
|
+
readonly FV0402: {
|
|
207
|
+
readonly title: "Attribute value of an unsupported type";
|
|
208
|
+
};
|
|
209
|
+
readonly FV0403: {
|
|
210
|
+
readonly title: "Attribute bound to a value Vue's server leaves out";
|
|
211
|
+
readonly detail: "Vue's server renderer leaves out an attribute bound to a list, an object or a `route.query` value, and hydration then sets it to the value's `String()` without reporting a mismatch. Join a list (`.join(\",\")`) or narrow a query value to one string.";
|
|
212
|
+
};
|
|
213
|
+
readonly FV0404: {
|
|
214
|
+
readonly title: "Unsafe attribute name";
|
|
215
|
+
};
|
|
216
|
+
readonly FV0405: {
|
|
217
|
+
readonly title: "Custom directive not listed in `clientDirectives`";
|
|
218
|
+
readonly detail: "A custom directive's `getSSRProps` may add attributes on the server, which ferrovue does not run. List a directive that adds none in `clientDirectives`.";
|
|
219
|
+
};
|
|
220
|
+
readonly FV0406: {
|
|
221
|
+
readonly title: "`$attrs` on a root that takes scope ids";
|
|
222
|
+
};
|
|
223
|
+
readonly FV0407: {
|
|
224
|
+
readonly title: "Attributes that are not an object literal";
|
|
225
|
+
};
|
|
226
|
+
readonly FV0408: {
|
|
227
|
+
readonly title: "Computed or spread key in an attribute object";
|
|
228
|
+
};
|
|
229
|
+
readonly FV0409: {
|
|
230
|
+
readonly title: "`className` bound in place of `class`";
|
|
231
|
+
};
|
|
232
|
+
readonly FV0410: {
|
|
233
|
+
readonly title: "Merged attributes that are not object literals";
|
|
234
|
+
};
|
|
235
|
+
readonly FV0411: {
|
|
236
|
+
readonly title: "Class merged with a string that may repeat the class before it";
|
|
237
|
+
};
|
|
238
|
+
readonly FV0412: {
|
|
239
|
+
readonly title: "Fallthrough attribute of an unsupported type";
|
|
240
|
+
};
|
|
241
|
+
readonly FV0413: {
|
|
242
|
+
readonly title: "`v-model` comparing values of types it cannot compare";
|
|
243
|
+
};
|
|
244
|
+
readonly FV0414: {
|
|
245
|
+
readonly title: "`v-model` over an array";
|
|
246
|
+
};
|
|
247
|
+
readonly FV0415: {
|
|
248
|
+
readonly title: "Value read from `$attrs`";
|
|
249
|
+
};
|
|
250
|
+
readonly FV0416: {
|
|
251
|
+
readonly title: "Root `<Transition>` or `<KeepAlive>` around `v-if` that is given attributes";
|
|
252
|
+
};
|
|
253
|
+
readonly FV0417: {
|
|
254
|
+
readonly title: "Attribute name chosen at run time";
|
|
255
|
+
};
|
|
256
|
+
readonly FV0418: {
|
|
257
|
+
readonly title: "`<component :is>` over a value that is not a closed set";
|
|
258
|
+
readonly detail: "`<component :is>` compiles to a `match` over its choices, so each one must be known when compiling: an imported component, an HTML element's name, a `computed` or `?:` choosing among them, a prop typed as a union of string literals, or an object of imported components read by such a prop. A `string`, a `Component` or a value from elsewhere could be anything.";
|
|
259
|
+
};
|
|
260
|
+
readonly FV0419: {
|
|
261
|
+
readonly title: "`<component :is>` naming something other than an HTML element";
|
|
262
|
+
};
|
|
263
|
+
readonly FV0420: {
|
|
264
|
+
readonly title: "`<component :is>` over a prop that may be absent";
|
|
265
|
+
};
|
|
266
|
+
readonly FV0421: {
|
|
267
|
+
readonly title: "`<component :is>` reading a key its object does not have";
|
|
268
|
+
};
|
|
269
|
+
readonly FV0422: {
|
|
270
|
+
readonly title: "`v-html` or `v-text` on `<component :is>`";
|
|
271
|
+
};
|
|
272
|
+
readonly FV0423: {
|
|
273
|
+
readonly title: "`v-show`, or `v-model` on `<select>`, in content rendered from virtual nodes";
|
|
274
|
+
readonly detail: "Inside an element `<component :is>` chooses, in the slot content such an element renders, and inside a `<RouterLink>`, Vue's server renders from virtual nodes, where `v-show` writes no `style` while it shows and `v-model` on a `<select>` marks no option `selected`. Bind `:style` or `:selected` yourself.";
|
|
275
|
+
};
|
|
276
|
+
readonly FV0501: {
|
|
277
|
+
readonly title: "Child component that is not among the compiled components";
|
|
278
|
+
};
|
|
279
|
+
readonly FV0502: {
|
|
280
|
+
readonly title: "Fallthrough attribute that would reach a child's prop";
|
|
281
|
+
};
|
|
282
|
+
readonly FV0503: {
|
|
283
|
+
readonly title: "Child props that are not an object literal";
|
|
284
|
+
};
|
|
285
|
+
readonly FV0504: {
|
|
286
|
+
readonly title: "Computed or spread key in child props";
|
|
287
|
+
};
|
|
288
|
+
readonly FV0505: {
|
|
289
|
+
readonly title: "Attribute named by an integer";
|
|
290
|
+
};
|
|
291
|
+
readonly FV0506: {
|
|
292
|
+
readonly title: "Required prop not passed";
|
|
293
|
+
};
|
|
294
|
+
readonly FV0507: {
|
|
295
|
+
readonly title: "Required nullable prop not passed";
|
|
296
|
+
};
|
|
297
|
+
readonly FV0508: {
|
|
298
|
+
readonly title: "Attributes passed to a child that takes none";
|
|
299
|
+
};
|
|
300
|
+
readonly FV0509: {
|
|
301
|
+
readonly title: "String prop given a value that is not a string";
|
|
302
|
+
};
|
|
303
|
+
readonly FV0510: {
|
|
304
|
+
readonly title: "One type declared separately by parent and child";
|
|
305
|
+
};
|
|
306
|
+
readonly FV0511: {
|
|
307
|
+
readonly title: "Prop given a value of another type";
|
|
308
|
+
};
|
|
309
|
+
readonly FV0512: {
|
|
310
|
+
readonly title: "`Props` imported from a component that is not compiled";
|
|
311
|
+
};
|
|
312
|
+
readonly FV0513: {
|
|
313
|
+
readonly title: "Component resolved by name that is not imported";
|
|
314
|
+
};
|
|
315
|
+
readonly FV0601: {
|
|
316
|
+
readonly title: "Name or function not available on the server";
|
|
317
|
+
};
|
|
318
|
+
readonly FV0602: {
|
|
319
|
+
readonly title: "Unsupported method";
|
|
320
|
+
};
|
|
321
|
+
readonly FV0603: {
|
|
322
|
+
readonly title: "Unsupported call";
|
|
323
|
+
};
|
|
324
|
+
readonly FV0604: {
|
|
325
|
+
readonly title: "Field read on a value that is not an object";
|
|
326
|
+
};
|
|
327
|
+
readonly FV0605: {
|
|
328
|
+
readonly title: "Field the type does not have";
|
|
329
|
+
};
|
|
330
|
+
readonly FV0606: {
|
|
331
|
+
readonly title: "Value that may be absent where its target cannot take it as it is";
|
|
332
|
+
};
|
|
333
|
+
readonly FV0607: {
|
|
334
|
+
readonly title: "Value of an unexpected type";
|
|
335
|
+
};
|
|
336
|
+
readonly FV0608: {
|
|
337
|
+
readonly title: "`+` between unsupported types";
|
|
338
|
+
};
|
|
339
|
+
readonly FV0609: {
|
|
340
|
+
readonly title: "Comparison between unsupported or absent values";
|
|
341
|
+
};
|
|
342
|
+
readonly FV0610: {
|
|
343
|
+
readonly title: "Spread or hole in an array literal";
|
|
344
|
+
};
|
|
345
|
+
readonly FV0611: {
|
|
346
|
+
readonly title: "Array literal of different types";
|
|
347
|
+
};
|
|
348
|
+
readonly FV0612: {
|
|
349
|
+
readonly title: "Computed member access";
|
|
350
|
+
};
|
|
351
|
+
readonly FV0613: {
|
|
352
|
+
readonly title: "Value set up in a way the server cannot evaluate";
|
|
353
|
+
};
|
|
354
|
+
readonly FV0614: {
|
|
355
|
+
readonly title: "Logical operator between values that are not booleans";
|
|
356
|
+
};
|
|
357
|
+
readonly FV0615: {
|
|
358
|
+
readonly title: "`??` falling back to a computed list";
|
|
359
|
+
};
|
|
360
|
+
readonly FV0616: {
|
|
361
|
+
readonly title: "`??` between different types";
|
|
362
|
+
};
|
|
363
|
+
readonly FV0617: {
|
|
364
|
+
readonly title: "`||` between unsupported types";
|
|
365
|
+
};
|
|
366
|
+
readonly FV0618: {
|
|
367
|
+
readonly title: "Unsupported unary operator";
|
|
368
|
+
};
|
|
369
|
+
readonly FV0619: {
|
|
370
|
+
readonly title: "`==` or `!=` with anything but `null` or `undefined`";
|
|
371
|
+
};
|
|
372
|
+
readonly FV0620: {
|
|
373
|
+
readonly title: "Loose test against `undefined` of a value of a plugin's type";
|
|
374
|
+
};
|
|
375
|
+
readonly FV0621: {
|
|
376
|
+
readonly title: "Comparison of a plugin's value with `null` or `undefined`";
|
|
377
|
+
};
|
|
378
|
+
readonly FV0622: {
|
|
379
|
+
readonly title: "`===` between different types";
|
|
380
|
+
};
|
|
381
|
+
readonly FV0623: {
|
|
382
|
+
readonly title: "Branches of `?:` of different types";
|
|
383
|
+
};
|
|
384
|
+
readonly FV0624: {
|
|
385
|
+
readonly title: "`new` in an expression";
|
|
386
|
+
};
|
|
387
|
+
readonly FV0625: {
|
|
388
|
+
readonly title: "Unsupported expression";
|
|
389
|
+
};
|
|
390
|
+
readonly FV0626: {
|
|
391
|
+
readonly title: "Strict test of a value that may be `null` or `undefined`";
|
|
392
|
+
};
|
|
393
|
+
readonly FV0627: {
|
|
394
|
+
readonly title: "Strict test against the absence a value cannot have";
|
|
395
|
+
};
|
|
396
|
+
readonly FV0701: {
|
|
397
|
+
readonly title: "`Number()` of an unsupported value";
|
|
398
|
+
};
|
|
399
|
+
readonly FV0702: {
|
|
400
|
+
readonly title: "`parseInt()` or `parseFloat()` of a value that is not a string";
|
|
401
|
+
};
|
|
402
|
+
readonly FV0703: {
|
|
403
|
+
readonly title: "`parseInt()` with a radix other than a literal 10 or 16";
|
|
404
|
+
};
|
|
405
|
+
readonly FV0704: {
|
|
406
|
+
readonly title: "Unsupported `Math` method";
|
|
407
|
+
};
|
|
408
|
+
readonly FV0705: {
|
|
409
|
+
readonly title: "`.toFixed()` without a literal number of digits from 0 to 100";
|
|
410
|
+
};
|
|
411
|
+
readonly FV0706: {
|
|
412
|
+
readonly title: "String that may hold half of a surrogate pair compared, searched or joined";
|
|
413
|
+
readonly detail: "`slice`, `substring`, `at`, `charAt` and `split(\"\")` can cut a surrogate pair in half. JavaScript keeps the half where ferrovue holds U+FFFD, so two such strings may compare, search or join differently. See [`strings`](crate::guide::strings#halves-of-surrogate-pairs).";
|
|
414
|
+
};
|
|
415
|
+
readonly FV0707: {
|
|
416
|
+
readonly title: "`JSON.stringify()` of an unsupported value";
|
|
417
|
+
};
|
|
418
|
+
readonly FV0708: {
|
|
419
|
+
readonly title: "Template literal of values that are not present strings, numbers or booleans";
|
|
420
|
+
};
|
|
421
|
+
readonly FV0709: {
|
|
422
|
+
readonly title: "String method with the wrong number of arguments";
|
|
423
|
+
};
|
|
424
|
+
readonly FV0710: {
|
|
425
|
+
readonly title: "Regular expression given to a string method";
|
|
426
|
+
};
|
|
427
|
+
readonly FV0711: {
|
|
428
|
+
readonly title: "String method given a value that is not a present string";
|
|
429
|
+
};
|
|
430
|
+
readonly FV0712: {
|
|
431
|
+
readonly title: "String method given a value that is not a present number";
|
|
432
|
+
};
|
|
433
|
+
readonly FV0713: {
|
|
434
|
+
readonly title: "Function given to a string method";
|
|
435
|
+
};
|
|
436
|
+
readonly FV0714: {
|
|
437
|
+
readonly title: "`.repeat()` by a negative or infinite count";
|
|
438
|
+
};
|
|
439
|
+
readonly FV0715: {
|
|
440
|
+
readonly title: "Case mapping by the server's locale";
|
|
441
|
+
};
|
|
442
|
+
readonly FV0801: {
|
|
443
|
+
readonly title: "`.includes()` of a value of another type than the list's";
|
|
444
|
+
};
|
|
445
|
+
readonly FV0802: {
|
|
446
|
+
readonly title: "`.join()` with a separator that is not a string";
|
|
447
|
+
};
|
|
448
|
+
readonly FV0803: {
|
|
449
|
+
readonly title: "List method on a value that is not a list";
|
|
450
|
+
};
|
|
451
|
+
readonly FV0804: {
|
|
452
|
+
readonly title: "List method over a list of unsupported items";
|
|
453
|
+
};
|
|
454
|
+
readonly FV0805: {
|
|
455
|
+
readonly title: "List method given anything but an arrow function";
|
|
456
|
+
};
|
|
457
|
+
readonly FV0806: {
|
|
458
|
+
readonly title: "Arrow function with a block body";
|
|
459
|
+
};
|
|
460
|
+
readonly FV0807: {
|
|
461
|
+
readonly title: "Arrow function index that is not a plain name";
|
|
462
|
+
};
|
|
463
|
+
readonly FV0808: {
|
|
464
|
+
readonly title: "Defaults or nested patterns in an arrow function's item";
|
|
465
|
+
};
|
|
466
|
+
readonly FV0809: {
|
|
467
|
+
readonly title: "Arrow function item bound by an unsupported pattern";
|
|
468
|
+
};
|
|
469
|
+
readonly FV0810: {
|
|
470
|
+
readonly title: "`.map()` to optional or unsupported values";
|
|
471
|
+
};
|
|
472
|
+
readonly FV0811: {
|
|
473
|
+
readonly title: "`.slice()` with more than two arguments";
|
|
474
|
+
};
|
|
475
|
+
readonly FV0812: {
|
|
476
|
+
readonly title: "`.slice()` of values that are not numbers";
|
|
477
|
+
};
|
|
478
|
+
readonly FV0813: {
|
|
479
|
+
readonly title: "List method given more than one function";
|
|
480
|
+
};
|
|
481
|
+
readonly FV0814: {
|
|
482
|
+
readonly title: "`Object` method of a value that is not a `Record`";
|
|
483
|
+
};
|
|
484
|
+
readonly FV0815: {
|
|
485
|
+
readonly title: "`Object.values()` of a record of lists";
|
|
486
|
+
};
|
|
487
|
+
readonly FV0816: {
|
|
488
|
+
readonly title: "`Object.entries()` outside a `v-for`";
|
|
489
|
+
};
|
|
490
|
+
readonly FV0817: {
|
|
491
|
+
readonly title: "Unsupported `Object` method";
|
|
492
|
+
};
|
|
493
|
+
readonly FV0818: {
|
|
494
|
+
readonly title: "`v-for` over `Object.entries()` without `[key, value]`";
|
|
495
|
+
};
|
|
496
|
+
readonly FV0819: {
|
|
497
|
+
readonly title: "`v-for` over an empty array literal";
|
|
498
|
+
};
|
|
499
|
+
readonly FV0820: {
|
|
500
|
+
readonly title: "`v-for` over a value that is not a list or a number";
|
|
501
|
+
};
|
|
502
|
+
readonly FV0821: {
|
|
503
|
+
readonly title: "Defaults or nested patterns in a `v-for` item";
|
|
504
|
+
};
|
|
505
|
+
readonly FV0822: {
|
|
506
|
+
readonly title: "`v-for` item bound by an unsupported pattern";
|
|
507
|
+
};
|
|
508
|
+
readonly FV0823: {
|
|
509
|
+
readonly title: "`v-for` key or index that is not a plain name";
|
|
510
|
+
};
|
|
511
|
+
readonly FV0901: {
|
|
512
|
+
readonly title: "Slots that are not an object literal";
|
|
513
|
+
};
|
|
514
|
+
readonly FV0902: {
|
|
515
|
+
readonly title: "Computed or spread slot name";
|
|
516
|
+
};
|
|
517
|
+
readonly FV0903: {
|
|
518
|
+
readonly title: "Content for a slot the child does not have";
|
|
519
|
+
};
|
|
520
|
+
readonly FV0904: {
|
|
521
|
+
readonly title: "Defaults or nested patterns in destructured slot props";
|
|
522
|
+
};
|
|
523
|
+
readonly FV0905: {
|
|
524
|
+
readonly title: "Slot props bound by an unsupported pattern";
|
|
525
|
+
};
|
|
526
|
+
readonly FV0906: {
|
|
527
|
+
readonly title: "Slot props taken from a slot that passes none";
|
|
528
|
+
};
|
|
529
|
+
readonly FV0907: {
|
|
530
|
+
readonly title: "Slot read that the template does not render";
|
|
531
|
+
};
|
|
532
|
+
readonly FV0908: {
|
|
533
|
+
readonly title: "Slot prop of a type with no Rust type";
|
|
534
|
+
};
|
|
535
|
+
readonly FV0909: {
|
|
536
|
+
readonly title: "Array literal as a slot prop";
|
|
537
|
+
};
|
|
538
|
+
readonly FV0910: {
|
|
539
|
+
readonly title: "Computed list as a slot prop";
|
|
540
|
+
};
|
|
541
|
+
readonly FV0911: {
|
|
542
|
+
readonly title: "Slot prop of an unsupported type";
|
|
543
|
+
};
|
|
544
|
+
readonly FV0912: {
|
|
545
|
+
readonly title: "Slot name that is not literal";
|
|
546
|
+
};
|
|
547
|
+
readonly FV0913: {
|
|
548
|
+
readonly title: "Slot props that are not attributes or an object literal";
|
|
549
|
+
};
|
|
550
|
+
readonly FV0914: {
|
|
551
|
+
readonly title: "Computed or spread key in slot props";
|
|
552
|
+
};
|
|
553
|
+
readonly FV0915: {
|
|
554
|
+
readonly title: "Slot prop name that is not a plain name";
|
|
555
|
+
};
|
|
556
|
+
readonly FV0916: {
|
|
557
|
+
readonly title: "Outlets of one slot that pass different props";
|
|
558
|
+
};
|
|
559
|
+
readonly FV0917: {
|
|
560
|
+
readonly title: "Interface named as a slot's props type";
|
|
561
|
+
};
|
|
562
|
+
readonly FV0918: {
|
|
563
|
+
readonly title: "Slot scope id given to content that takes none";
|
|
564
|
+
};
|
|
565
|
+
readonly FV0919: {
|
|
566
|
+
readonly title: "`<slot>` with fallback content inside an element `<component :is>` chooses";
|
|
567
|
+
readonly detail: "Inside an element that `<component :is>` chooses, Vue renders a slot's content as virtual nodes and decides whether to show the fallback by rules of their own. Give the fallback from the parent instead.";
|
|
568
|
+
};
|
|
569
|
+
readonly FV0920: {
|
|
570
|
+
readonly title: "`<slot>` rendered both inside and outside an element `<component :is>` chooses";
|
|
571
|
+
};
|
|
572
|
+
readonly FV1001: {
|
|
573
|
+
readonly title: "Computed or spread key in a class object";
|
|
574
|
+
};
|
|
575
|
+
readonly FV1002: {
|
|
576
|
+
readonly title: "Computed class name that is not a string";
|
|
577
|
+
};
|
|
578
|
+
readonly FV1003: {
|
|
579
|
+
readonly title: "Class name with spaces around it";
|
|
580
|
+
};
|
|
581
|
+
readonly FV1004: {
|
|
582
|
+
readonly title: "Class binding of an unsupported type";
|
|
583
|
+
};
|
|
584
|
+
readonly FV1005: {
|
|
585
|
+
readonly title: "`<style module>`";
|
|
586
|
+
};
|
|
587
|
+
readonly FV1006: {
|
|
588
|
+
readonly title: "`v-bind()` in CSS";
|
|
589
|
+
};
|
|
590
|
+
readonly FV1007: {
|
|
591
|
+
readonly title: "Style binding of an unsupported type";
|
|
592
|
+
};
|
|
593
|
+
readonly FV1008: {
|
|
594
|
+
readonly title: "Computed or spread key in a style object";
|
|
595
|
+
};
|
|
596
|
+
readonly FV1009: {
|
|
597
|
+
readonly title: "Style property named by a number or starting with `:`";
|
|
598
|
+
};
|
|
599
|
+
readonly FV1010: {
|
|
600
|
+
readonly title: "Style array mixing a string with objects";
|
|
601
|
+
};
|
|
602
|
+
readonly FV1011: {
|
|
603
|
+
readonly title: "Style property whose place depends on a condition";
|
|
604
|
+
};
|
|
605
|
+
readonly FV1012: {
|
|
606
|
+
readonly title: "Scope ids handed to a component whose render does not take them";
|
|
607
|
+
};
|
|
608
|
+
readonly FV1013: {
|
|
609
|
+
readonly title: "`class` written apart from a later `:class` in content rendered from virtual nodes";
|
|
610
|
+
readonly detail: "Inside an element `<component :is>` chooses, in the slot content such an element renders, and inside a `<RouterLink>`, Vue's server renders from virtual nodes, where a static `class` written before `:class` keeps its place and its names come first. ferrovue writes them so when nothing stands between the two; with attributes between them, write the two next to each other, or `:class` first.";
|
|
611
|
+
};
|
|
612
|
+
readonly FV1101: {
|
|
613
|
+
readonly title: "Helper called with the wrong number of arguments";
|
|
614
|
+
};
|
|
615
|
+
readonly FV1102: {
|
|
616
|
+
readonly title: "Configuration file not found";
|
|
617
|
+
};
|
|
618
|
+
readonly FV1103: {
|
|
619
|
+
readonly title: "Configuration file that is not valid JSON";
|
|
620
|
+
};
|
|
621
|
+
readonly FV1104: {
|
|
622
|
+
readonly title: "Configuration without `components` or `out`";
|
|
623
|
+
};
|
|
624
|
+
readonly FV1105: {
|
|
625
|
+
readonly title: "Unsupported `scopeId`";
|
|
626
|
+
};
|
|
627
|
+
readonly FV1106: {
|
|
628
|
+
readonly title: "`builders` that is not `true` or `false`";
|
|
629
|
+
};
|
|
630
|
+
readonly FV1107: {
|
|
631
|
+
readonly title: "Unknown helper type";
|
|
632
|
+
};
|
|
633
|
+
readonly FV1108: {
|
|
634
|
+
readonly title: "Imported function without a Rust twin";
|
|
635
|
+
};
|
|
636
|
+
readonly FV1109: {
|
|
637
|
+
readonly title: "Twin name that is not PascalCase";
|
|
638
|
+
};
|
|
639
|
+
readonly FV1110: {
|
|
640
|
+
readonly title: "Twin without `rust`";
|
|
641
|
+
};
|
|
642
|
+
readonly FV1111: {
|
|
643
|
+
readonly title: "Twin prop name that is not camelCase";
|
|
644
|
+
};
|
|
645
|
+
readonly FV1112: {
|
|
646
|
+
readonly title: "Twin slot name that is not a plain name";
|
|
647
|
+
};
|
|
648
|
+
readonly FV1201: {
|
|
649
|
+
readonly title: "Route parameter that is not a present string or number";
|
|
650
|
+
};
|
|
651
|
+
readonly FV1202: {
|
|
652
|
+
readonly title: "`to` that is not a string or an object literal";
|
|
653
|
+
};
|
|
654
|
+
readonly FV1203: {
|
|
655
|
+
readonly title: "Computed or spread key in a `to` object";
|
|
656
|
+
};
|
|
657
|
+
readonly FV1204: {
|
|
658
|
+
readonly title: "Unsupported key in a `to` object";
|
|
659
|
+
};
|
|
660
|
+
readonly FV1205: {
|
|
661
|
+
readonly title: "`query` that is not an object literal";
|
|
662
|
+
};
|
|
663
|
+
readonly FV1206: {
|
|
664
|
+
readonly title: "Computed or spread key in a query";
|
|
665
|
+
};
|
|
666
|
+
readonly FV1207: {
|
|
667
|
+
readonly title: "Query value that may be `null`";
|
|
668
|
+
};
|
|
669
|
+
readonly FV1208: {
|
|
670
|
+
readonly title: "`hash` that is not a string";
|
|
671
|
+
};
|
|
672
|
+
readonly FV1209: {
|
|
673
|
+
readonly title: "Route name that is not a string literal";
|
|
674
|
+
};
|
|
675
|
+
readonly FV1210: {
|
|
676
|
+
readonly title: "Unknown route name";
|
|
677
|
+
};
|
|
678
|
+
readonly FV1211: {
|
|
679
|
+
readonly title: "`params` that is not an object literal";
|
|
680
|
+
};
|
|
681
|
+
readonly FV1212: {
|
|
682
|
+
readonly title: "Computed or spread key in `params`";
|
|
683
|
+
};
|
|
684
|
+
readonly FV1213: {
|
|
685
|
+
readonly title: "Unknown route parameter";
|
|
686
|
+
};
|
|
687
|
+
readonly FV1214: {
|
|
688
|
+
readonly title: "Route parameter not given";
|
|
689
|
+
};
|
|
690
|
+
readonly FV1215: {
|
|
691
|
+
readonly title: "`to` with both `path` and `params`";
|
|
692
|
+
};
|
|
693
|
+
readonly FV1216: {
|
|
694
|
+
readonly title: "`path` that is not a string";
|
|
695
|
+
};
|
|
696
|
+
readonly FV1217: {
|
|
697
|
+
readonly title: "`to` without `name` or `path`";
|
|
698
|
+
};
|
|
699
|
+
readonly FV1218: {
|
|
700
|
+
readonly title: "`<RouterLink>` attributes that are not literal";
|
|
701
|
+
};
|
|
702
|
+
readonly FV1219: {
|
|
703
|
+
readonly title: "Computed or spread key in `<RouterLink>` attributes";
|
|
704
|
+
};
|
|
705
|
+
readonly FV1220: {
|
|
706
|
+
readonly title: "`custom` on `<RouterLink>`";
|
|
707
|
+
};
|
|
708
|
+
readonly FV1221: {
|
|
709
|
+
readonly title: "`href` or `aria-current` set on `<RouterLink>`";
|
|
710
|
+
};
|
|
711
|
+
readonly FV1222: {
|
|
712
|
+
readonly title: "`<RouterLink>` without `to`";
|
|
713
|
+
};
|
|
714
|
+
readonly FV1223: {
|
|
715
|
+
readonly title: "Element in a `<RouterLink>` given a slot scope id";
|
|
716
|
+
};
|
|
717
|
+
readonly FV1224: {
|
|
718
|
+
readonly title: "`<slot>` in a `<RouterLink>` that takes scope ids";
|
|
719
|
+
};
|
|
720
|
+
readonly FV1225: {
|
|
721
|
+
readonly title: "`<RouterLink>` without `routes` configured";
|
|
722
|
+
};
|
|
723
|
+
readonly FV1226: {
|
|
724
|
+
readonly title: "`<RouterLink>` attribute that is not a string literal";
|
|
725
|
+
};
|
|
726
|
+
readonly FV1227: {
|
|
727
|
+
readonly title: "Fallthrough attribute that would reach a `<RouterLink>` prop";
|
|
728
|
+
};
|
|
729
|
+
readonly FV1228: {
|
|
730
|
+
readonly title: "Fallthrough attribute that would replace a `<RouterLink>` attribute";
|
|
731
|
+
};
|
|
732
|
+
readonly FV1229: {
|
|
733
|
+
readonly title: "`<RouterLink>` slot other than the default";
|
|
734
|
+
};
|
|
735
|
+
readonly FV1230: {
|
|
736
|
+
readonly title: "Route read without `routes` configured";
|
|
737
|
+
};
|
|
738
|
+
readonly FV1231: {
|
|
739
|
+
readonly title: "Route field not available on the server";
|
|
740
|
+
};
|
|
741
|
+
readonly FV1232: {
|
|
742
|
+
readonly title: "Routes file that is not an array";
|
|
743
|
+
};
|
|
744
|
+
readonly FV1233: {
|
|
745
|
+
readonly title: "Route entry of an unsupported shape";
|
|
746
|
+
};
|
|
747
|
+
readonly FV1234: {
|
|
748
|
+
readonly title: "`typeof` of anything but a query value";
|
|
749
|
+
};
|
|
750
|
+
readonly FV1235: {
|
|
751
|
+
readonly title: "`??` after a query value with a fallback that is not a string";
|
|
752
|
+
};
|
|
753
|
+
readonly FV1236: {
|
|
754
|
+
readonly title: "`<RouterView>` in a component with `<style scoped>`";
|
|
755
|
+
};
|
|
756
|
+
readonly FV1237: {
|
|
757
|
+
readonly title: "`<RouterView>` in a child component";
|
|
758
|
+
};
|
|
759
|
+
readonly FV1238: {
|
|
760
|
+
readonly title: "`routes` that is neither a routes file nor `{ pages }`";
|
|
761
|
+
};
|
|
762
|
+
readonly FV1239: {
|
|
763
|
+
readonly title: "Pages folder that cannot be read";
|
|
764
|
+
};
|
|
765
|
+
readonly FV1240: {
|
|
766
|
+
readonly title: "Page file name the router cannot match";
|
|
767
|
+
readonly detail: "Each part of a page's path is plain text (letters, digits, `-` and `_`) or one whole parameter: `[id]`, `[[id]]` (optional) or `[...path]` (a catch-all, last). A parameter beside text in one part (`prefix-[id].vue`), a repeatable parameter (`[id]+`), an optional catch-all (`[[...path]]`), a parameter parser (`[id=int]`) and a character code (`[x+2E]`) are not matched on the server.";
|
|
768
|
+
};
|
|
769
|
+
readonly FV1241: {
|
|
770
|
+
readonly title: "Named view in a page file name";
|
|
771
|
+
};
|
|
772
|
+
readonly FV1242: {
|
|
773
|
+
readonly title: "`definePage()` in a page";
|
|
774
|
+
readonly detail: "`definePage()` changes a page's route (its name, path, alias, meta or params) at build time. ferrovue builds the server's routes from the files' paths alone, so the two would disagree.";
|
|
775
|
+
};
|
|
776
|
+
readonly FV1243: {
|
|
777
|
+
readonly title: "`<route>` block in a page";
|
|
778
|
+
};
|
|
779
|
+
readonly FV1244: {
|
|
780
|
+
readonly title: "`_parent.vue` with no pages to hold";
|
|
781
|
+
};
|
|
782
|
+
readonly FV1245: {
|
|
783
|
+
readonly title: "Page whose component name is taken or not a Rust name";
|
|
784
|
+
};
|
|
785
|
+
readonly FV1301: {
|
|
786
|
+
readonly title: "Type declared by two stores";
|
|
787
|
+
};
|
|
788
|
+
readonly FV1302: {
|
|
789
|
+
readonly title: "Store id that is not a string literal";
|
|
790
|
+
};
|
|
791
|
+
readonly FV1303: {
|
|
792
|
+
readonly title: "Store of an unsupported shape";
|
|
793
|
+
};
|
|
794
|
+
readonly FV1304: {
|
|
795
|
+
readonly title: "Store `state` without a declared return type";
|
|
796
|
+
};
|
|
797
|
+
readonly FV1305: {
|
|
798
|
+
readonly title: "Store `getters` that is not an object literal";
|
|
799
|
+
};
|
|
800
|
+
readonly FV1306: {
|
|
801
|
+
readonly title: "Getter that is not a function of the state";
|
|
802
|
+
};
|
|
803
|
+
readonly FV1307: {
|
|
804
|
+
readonly title: "Setup store without a block body";
|
|
805
|
+
};
|
|
806
|
+
readonly FV1308: {
|
|
807
|
+
readonly title: "Unsupported statement in a setup store";
|
|
808
|
+
};
|
|
809
|
+
readonly FV1309: {
|
|
810
|
+
readonly title: "Setup store that does not return an object";
|
|
811
|
+
};
|
|
812
|
+
readonly FV1310: {
|
|
813
|
+
readonly title: "Setup store returning anything but plain names";
|
|
814
|
+
};
|
|
815
|
+
readonly FV1311: {
|
|
816
|
+
readonly title: "Setup store returning a name it does not declare";
|
|
817
|
+
};
|
|
818
|
+
readonly FV1312: {
|
|
819
|
+
readonly title: "Interface named as a setup store's state type";
|
|
820
|
+
};
|
|
821
|
+
readonly FV1313: {
|
|
822
|
+
readonly title: "`ref<T | null>()` without a value";
|
|
823
|
+
};
|
|
824
|
+
readonly FV1314: {
|
|
825
|
+
readonly title: "Setup store `ref` without a type";
|
|
826
|
+
};
|
|
827
|
+
readonly FV1315: {
|
|
828
|
+
readonly title: "Getter with a block body";
|
|
829
|
+
};
|
|
830
|
+
readonly FV1316: {
|
|
831
|
+
readonly title: "Getter that reads `this`";
|
|
832
|
+
};
|
|
833
|
+
readonly FV1317: {
|
|
834
|
+
readonly title: "Getter that returns a function";
|
|
835
|
+
};
|
|
836
|
+
readonly FV1318: {
|
|
837
|
+
readonly title: "Getters that read each other";
|
|
838
|
+
};
|
|
839
|
+
readonly FV1319: {
|
|
840
|
+
readonly title: "Store imported by anything but its `use…` hook";
|
|
841
|
+
};
|
|
842
|
+
readonly FV1320: {
|
|
843
|
+
readonly title: "`storeToRefs` of anything but a store bound in setup";
|
|
844
|
+
};
|
|
845
|
+
readonly FV1321: {
|
|
846
|
+
readonly title: "`storeToRefs` not destructured into plain names";
|
|
847
|
+
};
|
|
848
|
+
readonly FV1322: {
|
|
849
|
+
readonly title: "Store hook called with arguments";
|
|
850
|
+
};
|
|
851
|
+
readonly FV1401: {
|
|
852
|
+
readonly title: "Locale file that is not valid JSON";
|
|
853
|
+
};
|
|
854
|
+
readonly FV1402: {
|
|
855
|
+
readonly title: "Locale message that does not parse";
|
|
856
|
+
};
|
|
857
|
+
readonly FV1403: {
|
|
858
|
+
readonly title: "Linked message with a key chosen at run time";
|
|
859
|
+
};
|
|
860
|
+
readonly FV1404: {
|
|
861
|
+
readonly title: "Linked message with an unknown modifier";
|
|
862
|
+
};
|
|
863
|
+
readonly FV1405: {
|
|
864
|
+
readonly title: "Locale message construct ferrovue does not render";
|
|
865
|
+
};
|
|
866
|
+
readonly FV1406: {
|
|
867
|
+
readonly title: "`t()` value that is not a present string, number or boolean";
|
|
868
|
+
};
|
|
869
|
+
readonly FV1407: {
|
|
870
|
+
readonly title: "`t()` without `i18n` configured";
|
|
871
|
+
};
|
|
872
|
+
readonly FV1408: {
|
|
873
|
+
readonly title: "`t()` with unsupported arguments";
|
|
874
|
+
};
|
|
875
|
+
readonly FV1409: {
|
|
876
|
+
readonly title: "`t()` key that is not a string";
|
|
877
|
+
};
|
|
878
|
+
readonly FV1410: {
|
|
879
|
+
readonly title: "Computed or spread key in `t()`'s named values";
|
|
880
|
+
};
|
|
881
|
+
readonly FV1411: {
|
|
882
|
+
readonly title: "Default message given to `t()`";
|
|
883
|
+
};
|
|
884
|
+
readonly FV1412: {
|
|
885
|
+
readonly title: "Plural number that is not an integer";
|
|
886
|
+
};
|
|
887
|
+
readonly FV1413: {
|
|
888
|
+
readonly title: "`useI18n()` not destructured into plain names";
|
|
889
|
+
};
|
|
890
|
+
readonly FV1501: {
|
|
891
|
+
readonly title: "Twin props that are not attributes or an object literal";
|
|
892
|
+
};
|
|
893
|
+
readonly FV1502: {
|
|
894
|
+
readonly title: "`v-html` of anything but a `TrustedHtml` prop";
|
|
895
|
+
readonly detail: "`v-html` writes raw HTML, which ferrovue allows only from a type you mark as trusted. See [`escaping`](crate::guide::escaping).";
|
|
896
|
+
};
|
|
897
|
+
readonly FV1503: {
|
|
898
|
+
readonly title: "`TrustedHtml` prop without `trustedHtml` configured";
|
|
899
|
+
};
|
|
900
|
+
readonly FV1504: {
|
|
901
|
+
readonly title: "Attributes on `<ClientOnly>`";
|
|
902
|
+
};
|
|
903
|
+
readonly FV1505: {
|
|
904
|
+
readonly title: "`<ClientOnly>` slot other than the default and `#fallback`";
|
|
905
|
+
};
|
|
906
|
+
readonly FV1506: {
|
|
907
|
+
readonly title: "Slot props taken from `<ClientOnly>`'s `#fallback`";
|
|
908
|
+
};
|
|
909
|
+
readonly FV1507: {
|
|
910
|
+
readonly title: "`<Teleport>` in slot content whose emptiness is decided at run time";
|
|
911
|
+
};
|
|
912
|
+
readonly FV1508: {
|
|
913
|
+
readonly title: "`<Teleport>` target that is not a string";
|
|
914
|
+
};
|
|
915
|
+
readonly FV1509: {
|
|
916
|
+
readonly title: "Twin prop of a type with no Rust type";
|
|
917
|
+
};
|
|
918
|
+
readonly FV1510: {
|
|
919
|
+
readonly title: "Twin for a component ferrovue compiles";
|
|
920
|
+
};
|
|
921
|
+
readonly FV1511: {
|
|
922
|
+
readonly title: "`<ClientOnly>` with a `#fallback` in content rendered from virtual nodes";
|
|
923
|
+
readonly detail: "Inside an element `<component :is>` chooses, inside a `<RouterLink>` or a twin's slot, and in the slot content they render, Vue's server renders from virtual nodes, and `<ClientOnly>` writes an empty fragment there instead of its fallback, which the client then renders and reports as a mismatch. Leave out the `#fallback`, or move the `<ClientOnly>` outside that content.";
|
|
924
|
+
};
|
|
925
|
+
readonly FV1512: {
|
|
926
|
+
readonly title: "`v-html` on an element whose content the browser rebuilds";
|
|
927
|
+
readonly detail: "The browser's HTML parser moves markup written in a `<table>`, `<thead>`, `<tbody>`, `<tfoot>`, `<tr>` or `<colgroup>` out of the table, drops the tags written in a `<select>` or `<optgroup>`, and ends SVG or MathML at an HTML tag, so the page holds other nodes than the server wrote and hydration mismatches. Put `v-html` on a `<td>`, `<th>` or `<caption>`, write the options in the template, or use an HTML element inside a `<foreignObject>` or an `<mtext>`. See [`escaping`](crate::guide::escaping).";
|
|
928
|
+
};
|
|
929
|
+
readonly FV1513: {
|
|
930
|
+
readonly title: "`v-html` in a `<p>` of HTML that may hold blocks";
|
|
931
|
+
readonly detail: "A block tag in the HTML (`<p>`, `<ul>`, `<div>`) ends the `<p>` it is written in where the browser reads it. Type the prop `InlineHtml` from `ferrovue/types`, which is `ferrovue::InlineHtml` on the server and keeps only inline tags, or put the HTML in a `<div>`. Slot content placed into a child's `<p>` is not seen at compile time. See [`escaping`](crate::guide::escaping).";
|
|
932
|
+
};
|
|
933
|
+
readonly FV1601: {
|
|
934
|
+
readonly title: "Injection key that is not a string literal or a symbol exported from a `.ts` file";
|
|
935
|
+
};
|
|
936
|
+
readonly FV1602: {
|
|
937
|
+
readonly title: "Injection key symbol without an `InjectionKey<T>` type";
|
|
938
|
+
};
|
|
939
|
+
readonly FV1603: {
|
|
940
|
+
readonly title: "`provide` or `inject` with unsupported arguments";
|
|
941
|
+
};
|
|
942
|
+
readonly FV1604: {
|
|
943
|
+
readonly title: "`inject` that is not bound to a name at the top of `<script setup>`";
|
|
944
|
+
};
|
|
945
|
+
readonly FV1605: {
|
|
946
|
+
readonly title: "`inject(key)!`, asserting a provider";
|
|
947
|
+
};
|
|
948
|
+
readonly FV1606: {
|
|
949
|
+
readonly title: "`inject` of a string key with neither a default nor a type argument";
|
|
950
|
+
};
|
|
951
|
+
readonly FV1607: {
|
|
952
|
+
readonly title: "Function default without the factory flag";
|
|
953
|
+
};
|
|
954
|
+
readonly FV1608: {
|
|
955
|
+
readonly title: "Values of different types provided under one key";
|
|
956
|
+
};
|
|
957
|
+
readonly FV1609: {
|
|
958
|
+
readonly title: "Provided value that may be `null` or `undefined`";
|
|
959
|
+
};
|
|
960
|
+
readonly FV1610: {
|
|
961
|
+
readonly title: "Provided value of a form the context does not hold";
|
|
962
|
+
};
|
|
963
|
+
readonly FV1611: {
|
|
964
|
+
readonly title: "Object provided or given as a default under a key without an interface type";
|
|
965
|
+
};
|
|
966
|
+
readonly FV1612: {
|
|
967
|
+
readonly title: "Provided or default object whose fields do not match its interface";
|
|
968
|
+
};
|
|
969
|
+
readonly FV1613: {
|
|
970
|
+
readonly title: "Ref and plain value under one key";
|
|
971
|
+
};
|
|
972
|
+
readonly FV1614: {
|
|
973
|
+
readonly title: "Key provided twice by one component";
|
|
974
|
+
};
|
|
975
|
+
readonly FV1615: {
|
|
976
|
+
readonly title: "Two keys that give the context one field name";
|
|
977
|
+
};
|
|
978
|
+
readonly FV1616: {
|
|
979
|
+
readonly title: "`provide` in a component that holds `<RouterView>`";
|
|
980
|
+
readonly detail: "The page `<RouterView>` shows is rendered from Rust and handed in as a slot, so it cannot see what the component provides. Provide the value above the router (in Rust, through the `Provides` the page is rendered with) or below it.";
|
|
981
|
+
};
|
|
982
|
+
readonly FV1617: {
|
|
983
|
+
readonly title: "String-keyed `inject` inside a Rust twin's slot";
|
|
984
|
+
readonly detail: "Content in a twin's slot is a child of the library component the twin stands for, which may provide the same string key on the client. Use an `InjectionKey` symbol, which only the project provides.";
|
|
985
|
+
};
|
|
986
|
+
readonly FV1618: {
|
|
987
|
+
readonly title: "Setup that assigns to an injected value";
|
|
988
|
+
};
|
|
989
|
+
readonly FV1619: {
|
|
990
|
+
readonly title: "Function and value provided under one key";
|
|
991
|
+
};
|
|
992
|
+
readonly FV1620: {
|
|
993
|
+
readonly title: "`provide` or `inject` called inside an expression";
|
|
994
|
+
};
|
|
995
|
+
readonly FV1701: {
|
|
996
|
+
readonly title: "Options given to `useHead`";
|
|
997
|
+
};
|
|
998
|
+
readonly FV1702: {
|
|
999
|
+
readonly title: "Head input that is not an object literal";
|
|
1000
|
+
};
|
|
1001
|
+
readonly FV1703: {
|
|
1002
|
+
readonly title: "Head key ferrovue does not translate";
|
|
1003
|
+
};
|
|
1004
|
+
readonly FV1704: {
|
|
1005
|
+
readonly title: "Spread, computed key, hole or method in a head input";
|
|
1006
|
+
};
|
|
1007
|
+
readonly FV1705: {
|
|
1008
|
+
readonly title: "Function in a head input";
|
|
1009
|
+
readonly detail: "unhead calls a function given as a value on the server only when it takes no arguments, as a getter (`title: () => props.title`), which ferrovue evaluates. A `titleTemplate` function and an event handler (`onload`) run with arguments or on the client.";
|
|
1010
|
+
};
|
|
1011
|
+
readonly FV1706: {
|
|
1012
|
+
readonly title: "Head value of a type the head does not take";
|
|
1013
|
+
};
|
|
1014
|
+
readonly FV1707: {
|
|
1015
|
+
readonly title: "`tagPosition`, `tagPriority` or `tagDuplicateStrategy` that is not a literal it accepts";
|
|
1016
|
+
};
|
|
1017
|
+
readonly FV1708: {
|
|
1018
|
+
readonly title: "`useHeadSafe`";
|
|
1019
|
+
};
|
|
1020
|
+
readonly FV1709: {
|
|
1021
|
+
readonly title: "`useSeoMeta` key or value ferrovue does not translate";
|
|
1022
|
+
};
|
|
1023
|
+
readonly FV1710: {
|
|
1024
|
+
readonly title: "`class` or `style` in the head that may be `null`";
|
|
1025
|
+
readonly detail: "unhead's server renderer throws on a `class` or `style` of `null`. Write `?? undefined`, which leaves the attribute out.";
|
|
1026
|
+
};
|
|
1027
|
+
readonly FV1711: {
|
|
1028
|
+
readonly title: "`innerHTML` or `textContent` on a head tag that has no content";
|
|
1029
|
+
};
|
|
1030
|
+
};
|
|
1031
|
+
/** A stable error code, as `FV0604`. */
|
|
1032
|
+
export type Code = keyof typeof ERRORS;
|
|
1033
|
+
/** Where a code is documented. */
|
|
1034
|
+
export declare function docsUrl(code: string): string;
|