@inlang/sdk 0.6.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/createMessageLintReportsQuery.d.ts.map +1 -1
- package/dist/createMessageLintReportsQuery.js +0 -1
- package/dist/createMessagesQuery.js +1 -1
- package/dist/createMessagesQuery.test.js +9 -0
- package/dist/loadProject.js +3 -2
- 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/resolve-modules/plugins/errors.d.ts +1 -1
- package/dist/resolve-modules/plugins/errors.d.ts.map +1 -1
- package/dist/resolve-modules/plugins/errors.js +1 -1
- package/dist/resolve-modules/plugins/resolvePlugins.d.ts.map +1 -1
- package/dist/resolve-modules/plugins/resolvePlugins.js +1 -11
- package/dist/resolve-modules/plugins/resolvePlugins.test.js +0 -28
- package/dist/resolve-modules/plugins/types.d.ts +0 -4
- package/dist/resolve-modules/plugins/types.d.ts.map +1 -1
- 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 -5
- package/src/createMessagesQuery.test.ts +30 -17
- package/src/createMessagesQuery.ts +3 -3
- 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 -15
- 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/errors.ts +2 -2
- package/src/resolve-modules/plugins/resolvePlugins.test.ts +2 -33
- package/src/resolve-modules/plugins/resolvePlugins.ts +16 -27
- package/src/resolve-modules/plugins/types.ts +0 -4
- 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",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/resolve-modules/plugins/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,KAAK,kBAAkB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/resolve-modules/plugins/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,KAAK,kBAAkB,GAAG;IACzB,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,SAAS,CAAA;CAChC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;AAElB,cAAM,WAAY,SAAQ,KAAK;IAC9B,SAAgB,MAAM,EAAE,MAAM,CAAA;gBAElB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAKxD;AAED,qBAAa,uBAAwB,SAAQ,WAAW;gBAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAIxD;AAED,qBAAa,gCAAiC,SAAQ,WAAW;gBACpD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAIxD;AAED,qBAAa,2BAA4B,SAAQ,WAAW;gBAC/C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAIxD;AAED,qBAAa,6CAA8C,SAAQ,WAAW;gBACjE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAIxD;AAED,qBAAa,6CAA8C,SAAQ,WAAW;gBACjE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAIxD;AAED,qBAAa,mCAAoC,SAAQ,WAAW;gBACvD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAIxD;AAED,qBAAa,0CAA2C,SAAQ,WAAW;gBAC9D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAKxD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvePlugins.d.ts","sourceRoot":"","sources":["../../../src/resolve-modules/plugins/resolvePlugins.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAuBxD,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"resolvePlugins.d.ts","sourceRoot":"","sources":["../../../src/resolve-modules/plugins/resolvePlugins.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAuBxD,eAAO,MAAM,cAAc,EAAE,sBAoJ5B,CAAA"}
|
|
@@ -15,7 +15,6 @@ export const resolvePlugins = async (args) => {
|
|
|
15
15
|
data: {
|
|
16
16
|
loadMessages: undefined,
|
|
17
17
|
saveMessages: undefined,
|
|
18
|
-
detectedLanguageTags: [],
|
|
19
18
|
customApi: {},
|
|
20
19
|
},
|
|
21
20
|
errors: [],
|
|
@@ -86,15 +85,6 @@ export const resolvePlugins = async (args) => {
|
|
|
86
85
|
nodeishFs: args.nodeishFs,
|
|
87
86
|
});
|
|
88
87
|
}
|
|
89
|
-
if (typeof plugin.detectedLanguageTags === "function") {
|
|
90
|
-
const detectedLangugeTags = await plugin.detectedLanguageTags({
|
|
91
|
-
settings: args.settings?.[plugin.id] ?? {},
|
|
92
|
-
nodeishFs: args.nodeishFs,
|
|
93
|
-
});
|
|
94
|
-
result.data.detectedLanguageTags = [
|
|
95
|
-
...new Set([...result.data.detectedLanguageTags, ...detectedLangugeTags]),
|
|
96
|
-
];
|
|
97
|
-
}
|
|
98
88
|
if (typeof plugin.addCustomApi === "function") {
|
|
99
89
|
const { data: customApi } = tryCatch(() => plugin.addCustomApi({
|
|
100
90
|
settings: args.settings?.[plugin.id] ?? {},
|
|
@@ -107,7 +97,7 @@ export const resolvePlugins = async (args) => {
|
|
|
107
97
|
// --- LOADMESSAGE / SAVEMESSAGE NOT DEFINED ---
|
|
108
98
|
if (typeof result.data.loadMessages !== "function" ||
|
|
109
99
|
typeof result.data.saveMessages !== "function") {
|
|
110
|
-
result.errors.push(new PluginsDoNotProvideLoadOrSaveMessagesError("It seems you did not install any plugin that handles messages. Please add one to make inlang work. See https://inlang.com/documentation/plugins/registry.", { plugin:
|
|
100
|
+
result.errors.push(new PluginsDoNotProvideLoadOrSaveMessagesError("It seems you did not install any plugin that handles messages. Please add one to make inlang work. See https://inlang.com/documentation/plugins/registry.", { plugin: undefined }));
|
|
111
101
|
}
|
|
112
102
|
return result;
|
|
113
103
|
};
|
|
@@ -159,34 +159,6 @@ describe("saveMessages", () => {
|
|
|
159
159
|
expect(resolved.errors[0]).toBeInstanceOf(PluginsDoNotProvideLoadOrSaveMessagesError);
|
|
160
160
|
});
|
|
161
161
|
});
|
|
162
|
-
describe("detectedLanguageTags", () => {
|
|
163
|
-
it("should merge language tags from plugins", async () => {
|
|
164
|
-
const mockPlugin = {
|
|
165
|
-
id: "plugin.namepsace.detectedLanguageTags",
|
|
166
|
-
description: { en: "My plugin description" },
|
|
167
|
-
displayName: { en: "My plugin" },
|
|
168
|
-
detectedLanguageTags: async () => ["de", "en"],
|
|
169
|
-
addCustomApi: () => {
|
|
170
|
-
return {};
|
|
171
|
-
},
|
|
172
|
-
};
|
|
173
|
-
const mockPlugin2 = {
|
|
174
|
-
id: "plugin.namepsace.detectedLanguageTags2",
|
|
175
|
-
description: { en: "My plugin description" },
|
|
176
|
-
displayName: { en: "My plugin" },
|
|
177
|
-
addCustomApi: () => {
|
|
178
|
-
return {};
|
|
179
|
-
},
|
|
180
|
-
detectedLanguageTags: async () => ["de", "fr"],
|
|
181
|
-
};
|
|
182
|
-
const resolved = await resolvePlugins({
|
|
183
|
-
plugins: [mockPlugin, mockPlugin2],
|
|
184
|
-
settings: {},
|
|
185
|
-
nodeishFs: {},
|
|
186
|
-
});
|
|
187
|
-
expect(resolved.data.detectedLanguageTags).toEqual(["de", "en", "fr"]);
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
162
|
describe("addCustomApi", () => {
|
|
191
163
|
it("it should resolve app specific api", async () => {
|
|
192
164
|
const mockPlugin = {
|
|
@@ -32,10 +32,6 @@ export type ResolvedPluginApi = {
|
|
|
32
32
|
saveMessages: (args: {
|
|
33
33
|
messages: Message[];
|
|
34
34
|
}) => Promise<void> | void;
|
|
35
|
-
/**
|
|
36
|
-
* Detect language tags in the project provided plugins.
|
|
37
|
-
*/
|
|
38
|
-
detectedLanguageTags: LanguageTag[];
|
|
39
35
|
/**
|
|
40
36
|
* App specific APIs.
|
|
41
37
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/resolve-modules/plugins/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EACX,mCAAmC,EACnC,6CAA6C,EAC7C,6CAA6C,EAC7C,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,0CAA0C,EAC1C,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEzE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACzC,qBAAqB,EACrB,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAC9C,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;IAC1C,SAAS,EAAE,uBAAuB,CAAA;CAClC,KAAK,OAAO,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,EAAE,KAAK,CACV,mCAAmC,GACnC,6CAA6C,GAC7C,6CAA6C,GAC7C,uBAAuB,GACvB,2BAA2B,GAC3B,gCAAgC,GAChC,0CAA0C,CAC5C,CAAA;CACD,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,YAAY,EAAE,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,WAAW,EAAE,CAAA;QAC3B,iBAAiB,EAAE,WAAW,CAAA;KAC9B,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAA;IACpC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/resolve-modules/plugins/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC5E,OAAO,KAAK,EACX,mCAAmC,EACnC,6CAA6C,EAC7C,6CAA6C,EAC7C,uBAAuB,EACvB,2BAA2B,EAC3B,gCAAgC,EAChC,0CAA0C,EAC1C,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEzE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG,IAAI,CACzC,qBAAqB,EACrB,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,CAC9C,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,CAAC,IAAI,EAAE;IAC3C,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;IAC1C,SAAS,EAAE,uBAAuB,CAAA;CAClC,KAAK,OAAO,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAA;IACvB,MAAM,EAAE,KAAK,CACV,mCAAmC,GACnC,6CAA6C,GAC7C,6CAA6C,GAC7C,uBAAuB,GACvB,2BAA2B,GAC3B,gCAAgC,GAChC,0CAA0C,CAC5C,CAAA;CACD,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC/B,YAAY,EAAE,CAAC,IAAI,EAAE;QACpB,YAAY,EAAE,WAAW,EAAE,CAAA;QAC3B,iBAAiB,EAAE,WAAW,CAAA;KAC9B,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,EAAE,CAAA;IACpC,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACrE;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,EAAE,MAAM,CAAC,OAAO,MAAM,IAAI,MAAM,EAAE,GAAG,WAAW,MAAM,IAAI,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG;QACvF,yBAAyB,CAAC,EAAE,2BAA2B,CAAA;KACvD,CAAA;CACD,CAAA"}
|
|
@@ -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",
|