@inlang/sdk 0.7.0 → 0.8.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/dist/adapter/solidAdapter.test.js +5 -5
- package/dist/createMessagesQuery.test.js +9 -0
- package/dist/loadProject.d.ts.map +1 -1
- package/dist/loadProject.js +3 -1
- package/dist/loadProject.test.js +10 -10
- package/dist/messages/variant.d.ts +4 -4
- package/dist/messages/variant.d.ts.map +1 -1
- package/dist/messages/variant.js +55 -55
- package/dist/messages/variant.test.js +102 -45
- package/dist/test-utilities/createMessage.d.ts +1 -1
- package/dist/test-utilities/createMessage.js +1 -1
- package/dist/test-utilities/createMessage.test.js +4 -4
- package/package.json +1 -1
- package/src/adapter/solidAdapter.test.ts +13 -13
- package/src/adapter/solidAdapter.ts +1 -1
- package/src/api.ts +2 -2
- package/src/createMessageLintReportsQuery.ts +4 -4
- package/src/createMessagesQuery.test.ts +30 -17
- package/src/createMessagesQuery.ts +2 -2
- package/src/lint/message/lintMessages.ts +1 -1
- package/src/lint/message/lintSingleMessage.test.ts +1 -1
- package/src/lint/message/lintSingleMessage.ts +2 -2
- package/src/loadProject.test.ts +14 -14
- package/src/loadProject.ts +15 -13
- package/src/messages/errors.ts +2 -2
- package/src/messages/variant.test.ts +113 -49
- package/src/messages/variant.ts +73 -67
- package/src/parseConfig.ts +2 -2
- package/src/resolve-modules/import.test.ts +2 -2
- package/src/resolve-modules/import.ts +1 -1
- package/src/resolve-modules/message-lint-rules/resolveMessageLintRules.ts +1 -1
- package/src/resolve-modules/plugins/resolvePlugins.test.ts +2 -2
- package/src/resolve-modules/plugins/resolvePlugins.ts +16 -16
- package/src/resolve-modules/resolveModules.ts +4 -4
- package/src/test-utilities/createMessage.test.ts +7 -7
- package/src/test-utilities/createMessage.ts +1 -1
|
@@ -8,7 +8,7 @@ describe("getVariant", () => {
|
|
|
8
8
|
const variant = getVariant(mockMessage, {
|
|
9
9
|
where: {
|
|
10
10
|
languageTag: "en",
|
|
11
|
-
|
|
11
|
+
match: ["female", "1"],
|
|
12
12
|
},
|
|
13
13
|
});
|
|
14
14
|
expect(variant?.pattern[0]).toStrictEqual({
|
|
@@ -21,7 +21,7 @@ describe("getVariant", () => {
|
|
|
21
21
|
const variant = getVariant(mockMessage, {
|
|
22
22
|
where: {
|
|
23
23
|
languageTag: "en",
|
|
24
|
-
|
|
24
|
+
match: ["female", "0"],
|
|
25
25
|
},
|
|
26
26
|
});
|
|
27
27
|
expect(variant?.pattern[0]).toStrictEqual({
|
|
@@ -29,7 +29,7 @@ describe("getVariant", () => {
|
|
|
29
29
|
value: "{$hostName} invites {$guestName} and {$guestsOther} other people to her party.",
|
|
30
30
|
});
|
|
31
31
|
});
|
|
32
|
-
test("it should
|
|
32
|
+
test("it should not throw error if selector is empty and match", () => {
|
|
33
33
|
const mockMessage = {
|
|
34
34
|
id: "mockMessage",
|
|
35
35
|
selectors: [],
|
|
@@ -37,21 +37,44 @@ describe("getVariant", () => {
|
|
|
37
37
|
{
|
|
38
38
|
languageTag: "en",
|
|
39
39
|
pattern: [{ type: "Text", value: "Gender male" }],
|
|
40
|
-
match:
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
match: [],
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
languageTag: "de",
|
|
44
|
+
pattern: [{ type: "Text", value: "Veraltete Übersetzung" }],
|
|
45
|
+
match: [],
|
|
46
|
+
},
|
|
47
|
+
],
|
|
48
|
+
};
|
|
49
|
+
const variant = getVariant(mockMessage, {
|
|
50
|
+
where: {
|
|
51
|
+
languageTag: "en",
|
|
52
|
+
match: [],
|
|
53
|
+
},
|
|
54
|
+
});
|
|
55
|
+
expect(variant).toBeDefined();
|
|
56
|
+
});
|
|
57
|
+
test("it should not throw error if selector is empty, return undefined", () => {
|
|
58
|
+
const mockMessage = {
|
|
59
|
+
id: "mockMessage",
|
|
60
|
+
selectors: [],
|
|
61
|
+
variants: [
|
|
62
|
+
{
|
|
63
|
+
languageTag: "en",
|
|
64
|
+
pattern: [{ type: "Text", value: "Gender male" }],
|
|
65
|
+
match: ["male", "*"],
|
|
43
66
|
},
|
|
44
67
|
{
|
|
45
68
|
languageTag: "de",
|
|
46
69
|
pattern: [{ type: "Text", value: "Veraltete Übersetzung" }],
|
|
47
|
-
match:
|
|
70
|
+
match: ["*", "*"],
|
|
48
71
|
},
|
|
49
72
|
],
|
|
50
73
|
};
|
|
51
74
|
const variant = getVariant(mockMessage, {
|
|
52
75
|
where: {
|
|
53
76
|
languageTag: "fr",
|
|
54
|
-
|
|
77
|
+
match: ["*", "*"],
|
|
55
78
|
},
|
|
56
79
|
});
|
|
57
80
|
expect(variant).toBeUndefined();
|
|
@@ -61,7 +84,7 @@ describe("getVariant", () => {
|
|
|
61
84
|
const variant = getVariant(mockMessage, {
|
|
62
85
|
where: {
|
|
63
86
|
languageTag: "en",
|
|
64
|
-
|
|
87
|
+
match: ["*", "0"],
|
|
65
88
|
},
|
|
66
89
|
});
|
|
67
90
|
expect(variant?.pattern[0]).toStrictEqual({
|
|
@@ -74,7 +97,7 @@ describe("getVariant", () => {
|
|
|
74
97
|
const variant = getVariant(mockMessage, {
|
|
75
98
|
where: {
|
|
76
99
|
languageTag: "en",
|
|
77
|
-
|
|
100
|
+
match: ["*", "*"],
|
|
78
101
|
},
|
|
79
102
|
});
|
|
80
103
|
expect(variant?.pattern[0]).toStrictEqual({
|
|
@@ -87,7 +110,7 @@ describe("getVariant", () => {
|
|
|
87
110
|
const variant = getVariant(mockMessage, {
|
|
88
111
|
where: {
|
|
89
112
|
languageTag: "en",
|
|
90
|
-
|
|
113
|
+
match: ["trans", "2"],
|
|
91
114
|
},
|
|
92
115
|
});
|
|
93
116
|
expect(variant?.pattern[0]).toStrictEqual({
|
|
@@ -97,7 +120,7 @@ describe("getVariant", () => {
|
|
|
97
120
|
const variant2 = getVariant(mockMessage, {
|
|
98
121
|
where: {
|
|
99
122
|
languageTag: "en",
|
|
100
|
-
|
|
123
|
+
match: ["male", "8"],
|
|
101
124
|
},
|
|
102
125
|
});
|
|
103
126
|
expect(variant2?.pattern[0]).toStrictEqual({
|
|
@@ -108,12 +131,12 @@ describe("getVariant", () => {
|
|
|
108
131
|
test("should return undefined of no variant matches", () => {
|
|
109
132
|
const mockMessage = getMockMessage();
|
|
110
133
|
mockMessage.variants = [
|
|
111
|
-
...mockMessage.variants.filter((v) => v.languageTag === "en" && (v.match
|
|
134
|
+
...mockMessage.variants.filter((v) => v.languageTag === "en" && (v.match[0] !== "*" || v.match[1] !== "*")),
|
|
112
135
|
];
|
|
113
136
|
const variant = getVariant(mockMessage, {
|
|
114
137
|
where: {
|
|
115
138
|
languageTag: "en",
|
|
116
|
-
|
|
139
|
+
match: ["*", "*"],
|
|
117
140
|
},
|
|
118
141
|
});
|
|
119
142
|
expect(variant).toBeUndefined();
|
|
@@ -123,17 +146,18 @@ describe("getVariant", () => {
|
|
|
123
146
|
const variant = getVariant(mockMessage, {
|
|
124
147
|
where: {
|
|
125
148
|
languageTag: "de",
|
|
126
|
-
|
|
149
|
+
match: ["female", "1"],
|
|
127
150
|
},
|
|
128
151
|
});
|
|
129
152
|
expect(variant).toBeUndefined();
|
|
130
153
|
});
|
|
131
|
-
test("should return
|
|
154
|
+
test("should return undefined variant if no selector defined", () => {
|
|
132
155
|
const mockMessage = {};
|
|
156
|
+
mockMessage.selectors = [];
|
|
133
157
|
mockMessage.variants = [
|
|
134
158
|
{
|
|
135
159
|
languageTag: "en",
|
|
136
|
-
match:
|
|
160
|
+
match: ["*", "*"],
|
|
137
161
|
pattern: [
|
|
138
162
|
{
|
|
139
163
|
type: "Text",
|
|
@@ -145,13 +169,46 @@ describe("getVariant", () => {
|
|
|
145
169
|
const variant = getVariant(mockMessage, {
|
|
146
170
|
where: {
|
|
147
171
|
languageTag: "en",
|
|
148
|
-
|
|
172
|
+
match: ["*", "*"],
|
|
149
173
|
},
|
|
150
174
|
});
|
|
151
|
-
// should return
|
|
152
|
-
expect(variant
|
|
175
|
+
// should return undefined
|
|
176
|
+
expect(variant).toBeUndefined();
|
|
177
|
+
});
|
|
178
|
+
test("should match catch all if the number of matches and selectors do not match", () => {
|
|
179
|
+
const mockMessage = getMockMessage();
|
|
180
|
+
const variant1 = getVariant(mockMessage, {
|
|
181
|
+
where: {
|
|
182
|
+
languageTag: "en",
|
|
183
|
+
match: ["12"],
|
|
184
|
+
},
|
|
185
|
+
});
|
|
186
|
+
// should return catch all
|
|
187
|
+
expect(variant1?.pattern[0]).toStrictEqual({
|
|
153
188
|
type: "Text",
|
|
154
|
-
value: "
|
|
189
|
+
value: "{$hostName} invites {$guestName} and {$guestsOther} other people to their party.",
|
|
190
|
+
});
|
|
191
|
+
const variant2 = getVariant(mockMessage, {
|
|
192
|
+
where: {
|
|
193
|
+
languageTag: "en",
|
|
194
|
+
match: ["12", "*", "23"],
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
// should return catch all
|
|
198
|
+
expect(variant2?.pattern[0]).toStrictEqual({
|
|
199
|
+
type: "Text",
|
|
200
|
+
value: "{$hostName} invites {$guestName} and {$guestsOther} other people to their party.",
|
|
201
|
+
});
|
|
202
|
+
const variant3 = getVariant(mockMessage, {
|
|
203
|
+
where: {
|
|
204
|
+
languageTag: "en",
|
|
205
|
+
match: [],
|
|
206
|
+
},
|
|
207
|
+
});
|
|
208
|
+
// should return catch all
|
|
209
|
+
expect(variant3?.pattern[0]).toStrictEqual({
|
|
210
|
+
type: "Text",
|
|
211
|
+
value: "{$hostName} invites {$guestName} and {$guestsOther} other people to their party.",
|
|
155
212
|
});
|
|
156
213
|
});
|
|
157
214
|
});
|
|
@@ -160,36 +217,36 @@ describe("createVariant", () => {
|
|
|
160
217
|
const mockMessage = getMockMessage();
|
|
161
218
|
const newVariant = {
|
|
162
219
|
languageTag: "en",
|
|
163
|
-
match:
|
|
220
|
+
match: ["female", "0"],
|
|
164
221
|
pattern: [],
|
|
165
222
|
};
|
|
166
223
|
const message = createVariant(mockMessage, {
|
|
167
224
|
data: newVariant,
|
|
168
225
|
});
|
|
169
226
|
// should return the female variant
|
|
170
|
-
expect(message.data.variants.find((v) => v.languageTag === "en" && v.match
|
|
227
|
+
expect(message.data.variants.find((v) => v.languageTag === "en" && v.match[0] === "female" && v.match[1] === "0")?.pattern).toStrictEqual([]);
|
|
171
228
|
});
|
|
172
229
|
test("should create a variant, also if matcher are not full defined", () => {
|
|
173
230
|
const mockMessage = getMockMessage();
|
|
174
231
|
mockMessage.variants = [
|
|
175
|
-
...mockMessage.variants.filter((v) => v.languageTag === "en" && (v.match
|
|
232
|
+
...mockMessage.variants.filter((v) => v.languageTag === "en" && (v.match[0] !== "*" || v.match[1] !== "*")),
|
|
176
233
|
];
|
|
177
234
|
const message = createVariant(mockMessage, {
|
|
178
235
|
data: {
|
|
179
236
|
languageTag: "en",
|
|
180
|
-
match:
|
|
237
|
+
match: ["*", "*"],
|
|
181
238
|
pattern: [],
|
|
182
239
|
},
|
|
183
240
|
});
|
|
184
241
|
// should return the female variant
|
|
185
|
-
expect(message.data.variants.find((v) => v.languageTag === "en" && v.match
|
|
242
|
+
expect(message.data.variants.find((v) => v.languageTag === "en" && v.match[0] === "*" && v.match[1] === "*")?.pattern).toStrictEqual([]);
|
|
186
243
|
});
|
|
187
244
|
test("should return error if variant matches", () => {
|
|
188
245
|
const mockMessage = getMockMessage();
|
|
189
246
|
const variant = createVariant(mockMessage, {
|
|
190
247
|
data: {
|
|
191
248
|
languageTag: "en",
|
|
192
|
-
match:
|
|
249
|
+
match: ["male", "1"],
|
|
193
250
|
pattern: [],
|
|
194
251
|
},
|
|
195
252
|
});
|
|
@@ -202,7 +259,7 @@ describe("createVariant", () => {
|
|
|
202
259
|
const variant = createVariant(mockMessage, {
|
|
203
260
|
data: {
|
|
204
261
|
languageTag: "de",
|
|
205
|
-
match:
|
|
262
|
+
match: ["female", "1"],
|
|
206
263
|
pattern: [],
|
|
207
264
|
},
|
|
208
265
|
});
|
|
@@ -217,34 +274,34 @@ describe("updateVariant", () => {
|
|
|
217
274
|
const message = updateVariantPattern(mockMessage, {
|
|
218
275
|
where: {
|
|
219
276
|
languageTag: "en",
|
|
220
|
-
|
|
277
|
+
match: ["female", "1"],
|
|
221
278
|
},
|
|
222
279
|
data: [],
|
|
223
280
|
});
|
|
224
281
|
// should return the female variant
|
|
225
|
-
expect(message.data.variants.find((v) => v.languageTag === "en" && v.match
|
|
282
|
+
expect(message.data.variants.find((v) => v.languageTag === "en" && v.match[0] === "female" && v.match[1] === "1")?.pattern).toStrictEqual([]);
|
|
226
283
|
});
|
|
227
284
|
test("should update a variant, also if matcher are not full defined", () => {
|
|
228
285
|
const mockMessage = getMockMessage();
|
|
229
286
|
const message = updateVariantPattern(mockMessage, {
|
|
230
287
|
where: {
|
|
231
288
|
languageTag: "en",
|
|
232
|
-
|
|
289
|
+
match: ["*", "*"],
|
|
233
290
|
},
|
|
234
291
|
data: [],
|
|
235
292
|
});
|
|
236
293
|
// should return the female variant
|
|
237
|
-
expect(message.data.variants.find((v) => v.languageTag === "en" && v.match
|
|
294
|
+
expect(message.data.variants.find((v) => v.languageTag === "en" && v.match[0] === "*" && v.match[1] === "*")?.pattern).toStrictEqual([]);
|
|
238
295
|
});
|
|
239
296
|
test("should return error if no variant matches", () => {
|
|
240
297
|
const mockMessage = getMockMessage();
|
|
241
298
|
mockMessage.variants = [
|
|
242
|
-
...mockMessage.variants.filter((v) => v.languageTag === "en" && (v.match
|
|
299
|
+
...mockMessage.variants.filter((v) => v.languageTag === "en" && (v.match[0] !== "*" || v.match[1] !== "*")),
|
|
243
300
|
];
|
|
244
301
|
const variant = updateVariantPattern(mockMessage, {
|
|
245
302
|
where: {
|
|
246
303
|
languageTag: "en",
|
|
247
|
-
|
|
304
|
+
match: ["*", "*"],
|
|
248
305
|
},
|
|
249
306
|
data: [],
|
|
250
307
|
});
|
|
@@ -257,7 +314,7 @@ describe("updateVariant", () => {
|
|
|
257
314
|
const variant = updateVariantPattern(mockMessage, {
|
|
258
315
|
where: {
|
|
259
316
|
languageTag: "de",
|
|
260
|
-
|
|
317
|
+
match: ["*", "*"],
|
|
261
318
|
},
|
|
262
319
|
data: [],
|
|
263
320
|
});
|
|
@@ -276,7 +333,7 @@ const getMockMessage = () => {
|
|
|
276
333
|
variants: [
|
|
277
334
|
{
|
|
278
335
|
languageTag: "en",
|
|
279
|
-
match:
|
|
336
|
+
match: ["female", "1"],
|
|
280
337
|
pattern: [
|
|
281
338
|
{
|
|
282
339
|
type: "Text",
|
|
@@ -286,7 +343,7 @@ const getMockMessage = () => {
|
|
|
286
343
|
},
|
|
287
344
|
{
|
|
288
345
|
languageTag: "en",
|
|
289
|
-
match:
|
|
346
|
+
match: ["female", "2"],
|
|
290
347
|
pattern: [
|
|
291
348
|
{
|
|
292
349
|
type: "Text",
|
|
@@ -296,7 +353,7 @@ const getMockMessage = () => {
|
|
|
296
353
|
},
|
|
297
354
|
{
|
|
298
355
|
languageTag: "en",
|
|
299
|
-
match:
|
|
356
|
+
match: ["female", "*"],
|
|
300
357
|
pattern: [
|
|
301
358
|
{
|
|
302
359
|
type: "Text",
|
|
@@ -306,7 +363,7 @@ const getMockMessage = () => {
|
|
|
306
363
|
},
|
|
307
364
|
{
|
|
308
365
|
languageTag: "en",
|
|
309
|
-
match:
|
|
366
|
+
match: ["male", "1"],
|
|
310
367
|
pattern: [
|
|
311
368
|
{
|
|
312
369
|
type: "Text",
|
|
@@ -316,7 +373,7 @@ const getMockMessage = () => {
|
|
|
316
373
|
},
|
|
317
374
|
{
|
|
318
375
|
languageTag: "en",
|
|
319
|
-
match:
|
|
376
|
+
match: ["male", "2"],
|
|
320
377
|
pattern: [
|
|
321
378
|
{
|
|
322
379
|
type: "Text",
|
|
@@ -326,7 +383,7 @@ const getMockMessage = () => {
|
|
|
326
383
|
},
|
|
327
384
|
{
|
|
328
385
|
languageTag: "en",
|
|
329
|
-
match:
|
|
386
|
+
match: ["male", "*"],
|
|
330
387
|
pattern: [
|
|
331
388
|
{
|
|
332
389
|
type: "Text",
|
|
@@ -336,7 +393,7 @@ const getMockMessage = () => {
|
|
|
336
393
|
},
|
|
337
394
|
{
|
|
338
395
|
languageTag: "en",
|
|
339
|
-
match:
|
|
396
|
+
match: ["*", "0"],
|
|
340
397
|
pattern: [
|
|
341
398
|
{
|
|
342
399
|
type: "Text",
|
|
@@ -346,7 +403,7 @@ const getMockMessage = () => {
|
|
|
346
403
|
},
|
|
347
404
|
{
|
|
348
405
|
languageTag: "en",
|
|
349
|
-
match:
|
|
406
|
+
match: ["*", "1"],
|
|
350
407
|
pattern: [
|
|
351
408
|
{
|
|
352
409
|
type: "Text",
|
|
@@ -356,7 +413,7 @@ const getMockMessage = () => {
|
|
|
356
413
|
},
|
|
357
414
|
{
|
|
358
415
|
languageTag: "en",
|
|
359
|
-
match:
|
|
416
|
+
match: ["*", "2"],
|
|
360
417
|
pattern: [
|
|
361
418
|
{
|
|
362
419
|
type: "Text",
|
|
@@ -366,7 +423,7 @@ const getMockMessage = () => {
|
|
|
366
423
|
},
|
|
367
424
|
{
|
|
368
425
|
languageTag: "en",
|
|
369
|
-
match:
|
|
426
|
+
match: ["*", "*"],
|
|
370
427
|
pattern: [
|
|
371
428
|
{
|
|
372
429
|
type: "Text",
|
|
@@ -10,7 +10,7 @@ test("should create a simple message", () => {
|
|
|
10
10
|
"variants": [
|
|
11
11
|
{
|
|
12
12
|
"languageTag": "de",
|
|
13
|
-
"match":
|
|
13
|
+
"match": [],
|
|
14
14
|
"pattern": [
|
|
15
15
|
{
|
|
16
16
|
"type": "Text",
|
|
@@ -36,7 +36,7 @@ test("should create a message with pattern", () => {
|
|
|
36
36
|
"variants": [
|
|
37
37
|
{
|
|
38
38
|
"languageTag": "en",
|
|
39
|
-
"match":
|
|
39
|
+
"match": [],
|
|
40
40
|
"pattern": [
|
|
41
41
|
{
|
|
42
42
|
"type": "Text",
|
|
@@ -67,7 +67,7 @@ test("should create a message with a pattern", () => {
|
|
|
67
67
|
"variants": [
|
|
68
68
|
{
|
|
69
69
|
"languageTag": "en",
|
|
70
|
-
"match":
|
|
70
|
+
"match": [],
|
|
71
71
|
"pattern": [
|
|
72
72
|
{
|
|
73
73
|
"type": "Text",
|
|
@@ -77,7 +77,7 @@ test("should create a message with a pattern", () => {
|
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
"languageTag": "de",
|
|
80
|
-
"match":
|
|
80
|
+
"match": [],
|
|
81
81
|
"pattern": [
|
|
82
82
|
{
|
|
83
83
|
"type": "Text",
|
package/package.json
CHANGED
|
@@ -44,7 +44,7 @@ const exampleMessages: Message[] = [
|
|
|
44
44
|
variants: [
|
|
45
45
|
{
|
|
46
46
|
languageTag: "en",
|
|
47
|
-
match:
|
|
47
|
+
match: [],
|
|
48
48
|
pattern: [
|
|
49
49
|
{
|
|
50
50
|
type: "Text",
|
|
@@ -60,7 +60,7 @@ const exampleMessages: Message[] = [
|
|
|
60
60
|
variants: [
|
|
61
61
|
{
|
|
62
62
|
languageTag: "en",
|
|
63
|
-
match:
|
|
63
|
+
match: [],
|
|
64
64
|
pattern: [
|
|
65
65
|
{
|
|
66
66
|
type: "Text",
|
|
@@ -95,7 +95,7 @@ describe("config", () => {
|
|
|
95
95
|
nodeishFs: fs,
|
|
96
96
|
_import: $import,
|
|
97
97
|
}),
|
|
98
|
-
{ from }
|
|
98
|
+
{ from }
|
|
99
99
|
)
|
|
100
100
|
|
|
101
101
|
let counter = 0
|
|
@@ -125,7 +125,7 @@ describe("installed", () => {
|
|
|
125
125
|
nodeishFs: fs,
|
|
126
126
|
_import: $import,
|
|
127
127
|
}),
|
|
128
|
-
{ from }
|
|
128
|
+
{ from }
|
|
129
129
|
)
|
|
130
130
|
let counterPlugins = 0
|
|
131
131
|
let counterLint = 0
|
|
@@ -188,7 +188,7 @@ describe("messages", () => {
|
|
|
188
188
|
nodeishFs: fs,
|
|
189
189
|
_import: mockImport,
|
|
190
190
|
}),
|
|
191
|
-
{ from }
|
|
191
|
+
{ from }
|
|
192
192
|
)
|
|
193
193
|
|
|
194
194
|
let counter = 0
|
|
@@ -217,7 +217,7 @@ describe("messages", () => {
|
|
|
217
217
|
nodeishFs: fs,
|
|
218
218
|
_import: $import,
|
|
219
219
|
}),
|
|
220
|
-
{ from }
|
|
220
|
+
{ from }
|
|
221
221
|
)
|
|
222
222
|
|
|
223
223
|
let counter = 0
|
|
@@ -232,7 +232,7 @@ describe("messages", () => {
|
|
|
232
232
|
(
|
|
233
233
|
Object.values(messagesBefore())[0]?.variants.find((variant) => variant.languageTag === "en")
|
|
234
234
|
?.pattern[0] as Text
|
|
235
|
-
).value
|
|
235
|
+
).value
|
|
236
236
|
).toBe("test")
|
|
237
237
|
|
|
238
238
|
project.query.messages.update({
|
|
@@ -243,7 +243,7 @@ describe("messages", () => {
|
|
|
243
243
|
variants: [
|
|
244
244
|
{
|
|
245
245
|
languageTag: "en",
|
|
246
|
-
match:
|
|
246
|
+
match: [],
|
|
247
247
|
pattern: [
|
|
248
248
|
{
|
|
249
249
|
type: "Text",
|
|
@@ -262,7 +262,7 @@ describe("messages", () => {
|
|
|
262
262
|
(
|
|
263
263
|
Object.values(messagesAfter())[0]?.variants.find((variant) => variant.languageTag === "en")
|
|
264
264
|
?.pattern[0] as Text
|
|
265
|
-
).value
|
|
265
|
+
).value
|
|
266
266
|
).toBe("test2")
|
|
267
267
|
})
|
|
268
268
|
})
|
|
@@ -278,7 +278,7 @@ describe("lint", () => {
|
|
|
278
278
|
nodeishFs: fs,
|
|
279
279
|
_import: $import,
|
|
280
280
|
}),
|
|
281
|
-
{ from }
|
|
281
|
+
{ from }
|
|
282
282
|
)
|
|
283
283
|
|
|
284
284
|
let counter = 0
|
|
@@ -316,7 +316,7 @@ describe("lint", () => {
|
|
|
316
316
|
nodeishFs: fs,
|
|
317
317
|
_import: $import,
|
|
318
318
|
}),
|
|
319
|
-
{ from }
|
|
319
|
+
{ from }
|
|
320
320
|
)
|
|
321
321
|
|
|
322
322
|
let counter = 0
|
|
@@ -329,7 +329,7 @@ describe("lint", () => {
|
|
|
329
329
|
where: { id: "a" },
|
|
330
330
|
data: {
|
|
331
331
|
...exampleMessages[0],
|
|
332
|
-
variants: [{ languageTag: "en", match:
|
|
332
|
+
variants: [{ languageTag: "en", match: [], pattern: [{ type: "Text", value: "new" }] }],
|
|
333
333
|
},
|
|
334
334
|
})
|
|
335
335
|
|
|
@@ -342,7 +342,7 @@ describe("lint", () => {
|
|
|
342
342
|
where: { id: "a" },
|
|
343
343
|
data: {
|
|
344
344
|
...exampleMessages[0],
|
|
345
|
-
variants: [{ languageTag: "en", match:
|
|
345
|
+
variants: [{ languageTag: "en", match: [], pattern: [{ type: "Text", value: "new" }] }],
|
|
346
346
|
},
|
|
347
347
|
})
|
|
348
348
|
|
package/src/api.ts
CHANGED
|
@@ -64,7 +64,7 @@ export type MessageQueryApi = {
|
|
|
64
64
|
get: ((args: { where: { id: Message["id"] } }) => Readonly<Message>) & {
|
|
65
65
|
subscribe: (
|
|
66
66
|
args: { where: { id: Message["id"] } },
|
|
67
|
-
callback: (message: Message) => void
|
|
67
|
+
callback: (message: Message) => void
|
|
68
68
|
) => void
|
|
69
69
|
}
|
|
70
70
|
includedMessageIds: Subscribable<Message["id"][]>
|
|
@@ -84,7 +84,7 @@ export type MessageLintReportsQueryApi = {
|
|
|
84
84
|
}) => Readonly<MessageLintReport[]>) & {
|
|
85
85
|
subscribe: (
|
|
86
86
|
args: { where: { messageId: MessageLintReport["messageId"] } },
|
|
87
|
-
callback: (MessageLintRules: Readonly<MessageLintReport[]>) => void
|
|
87
|
+
callback: (MessageLintRules: Readonly<MessageLintReport[]>) => void
|
|
88
88
|
) => void
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -14,7 +14,7 @@ export function createMessageLintReportsQuery(
|
|
|
14
14
|
messages: () => Array<Message> | undefined,
|
|
15
15
|
settings: () => ProjectSettings,
|
|
16
16
|
installedMessageLintRules: () => Array<InstalledMessageLintRule>,
|
|
17
|
-
resolvedModules: () => Awaited<ReturnType<typeof resolveModules>> | undefined
|
|
17
|
+
resolvedModules: () => Awaited<ReturnType<typeof resolveModules>> | undefined
|
|
18
18
|
): InlangProject["query"]["messageLintReports"] {
|
|
19
19
|
// @ts-expect-error
|
|
20
20
|
const index = new ReactiveMap<MessageLintReport["messageId"], MessageLintReport[]>()
|
|
@@ -34,7 +34,7 @@ export function createMessageLintReportsQuery(
|
|
|
34
34
|
settings: {
|
|
35
35
|
..._settings,
|
|
36
36
|
messageLintRuleLevels: Object.fromEntries(
|
|
37
|
-
installedMessageLintRules().map((rule) => [rule.id, rule.level])
|
|
37
|
+
installedMessageLintRules().map((rule) => [rule.id, rule.level])
|
|
38
38
|
),
|
|
39
39
|
},
|
|
40
40
|
messages: _messages,
|
|
@@ -58,13 +58,13 @@ export function createMessageLintReportsQuery(
|
|
|
58
58
|
return {
|
|
59
59
|
getAll: createSubscribable(() => {
|
|
60
60
|
return structuredClone(
|
|
61
|
-
[...index.values()].flat().length === 0 ? [] : [...index.values()].flat()
|
|
61
|
+
[...index.values()].flat().length === 0 ? [] : [...index.values()].flat()
|
|
62
62
|
)
|
|
63
63
|
}),
|
|
64
64
|
get: Object.assign(get, {
|
|
65
65
|
subscribe: (
|
|
66
66
|
args: Parameters<MessageLintReportsQueryApi["get"]["subscribe"]>[0],
|
|
67
|
-
callback: Parameters<MessageLintReportsQueryApi["get"]["subscribe"]>[1]
|
|
67
|
+
callback: Parameters<MessageLintReportsQueryApi["get"]["subscribe"]>[1]
|
|
68
68
|
) => createSubscribable(() => get(args)).subscribe(callback),
|
|
69
69
|
}) as any,
|
|
70
70
|
}
|