@inlang/sdk 0.26.4 → 0.27.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 +52 -4
- package/dist/api.d.ts +3 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/createMessageLintReportsQuery.d.ts +1 -1
- package/dist/createMessageLintReportsQuery.d.ts.map +1 -1
- package/dist/createMessageLintReportsQuery.js +30 -22
- package/dist/createMessagesQuery.d.ts.map +1 -1
- package/dist/createMessagesQuery.js +24 -1
- package/dist/createMessagesQuery.test.js +46 -2
- package/dist/createNodeishFsWithAbsolutePaths.d.ts +3 -3
- package/dist/createNodeishFsWithAbsolutePaths.d.ts.map +1 -1
- package/dist/createNodeishFsWithAbsolutePaths.js +9 -1
- package/dist/createNodeishFsWithAbsolutePaths.test.js +7 -1
- package/dist/createNodeishFsWithWatcher.d.ts +3 -3
- package/dist/createNodeishFsWithWatcher.d.ts.map +1 -1
- package/dist/createNodeishFsWithWatcher.js +3 -0
- package/dist/errors.d.ts +14 -0
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +12 -0
- package/dist/loadProject.d.ts.map +1 -1
- package/dist/loadProject.js +472 -39
- package/dist/loadProject.test.js +91 -14
- package/dist/messages/variant.test.js +3 -0
- package/dist/resolve-modules/plugins/resolvePlugins.test.js +4 -2
- package/dist/storage/helper.d.ts +5 -0
- package/dist/storage/helper.d.ts.map +1 -0
- package/dist/storage/helper.js +35 -0
- package/dist/storage/human-id/human-readable-id.d.ts +3 -0
- package/dist/storage/human-id/human-readable-id.d.ts.map +1 -0
- package/dist/storage/human-id/human-readable-id.js +20 -0
- package/dist/storage/human-id/words.d.ts +5 -0
- package/dist/storage/human-id/words.d.ts.map +1 -0
- package/dist/storage/human-id/words.js +1032 -0
- package/dist/storage/human-id/words.test.d.ts +2 -0
- package/dist/storage/human-id/words.test.d.ts.map +1 -0
- package/dist/storage/human-id/words.test.js +25 -0
- package/dist/test-utilities/createMessage.d.ts +1 -0
- package/dist/test-utilities/createMessage.d.ts.map +1 -1
- package/dist/test-utilities/createMessage.js +1 -0
- package/dist/test-utilities/createMessage.test.js +70 -55
- package/package.json +12 -8
- package/src/adapter/solidAdapter.test.ts +76 -4
- package/src/api.ts +4 -0
- package/src/createMessageLintReportsQuery.ts +46 -34
- package/src/createMessagesQuery.test.ts +54 -2
- package/src/createMessagesQuery.ts +30 -1
- package/src/createNodeishFsWithAbsolutePaths.test.ts +10 -3
- package/src/createNodeishFsWithAbsolutePaths.ts +14 -5
- package/src/createNodeishFsWithWatcher.ts +6 -3
- package/src/errors.ts +20 -0
- package/src/loadProject.test.ts +106 -14
- package/src/loadProject.ts +655 -60
- package/src/messages/variant.test.ts +3 -0
- package/src/resolve-modules/plugins/resolvePlugins.test.ts +4 -2
- package/src/storage/helper.ts +48 -0
- package/src/storage/human-id/human-readable-id.ts +27 -0
- package/src/storage/human-id/words.test.ts +27 -0
- package/src/storage/human-id/words.ts +1035 -0
- package/src/test-utilities/createMessage.test.ts +72 -54
- package/src/test-utilities/createMessage.ts +1 -0
|
@@ -17,6 +17,10 @@ const config = {
|
|
|
17
17
|
variableReferencePattern: ["{", "}"],
|
|
18
18
|
},
|
|
19
19
|
};
|
|
20
|
+
const configWithAliases = {
|
|
21
|
+
...config,
|
|
22
|
+
experimental: { aliases: true },
|
|
23
|
+
};
|
|
20
24
|
const mockPlugin = {
|
|
21
25
|
id: "plugin.project.i18next",
|
|
22
26
|
description: { en: "Mock plugin description" },
|
|
@@ -28,6 +32,7 @@ const mockPlugin = {
|
|
|
28
32
|
const exampleMessages = [
|
|
29
33
|
{
|
|
30
34
|
id: "a",
|
|
35
|
+
alias: {},
|
|
31
36
|
selectors: [],
|
|
32
37
|
variants: [
|
|
33
38
|
{
|
|
@@ -44,6 +49,7 @@ const exampleMessages = [
|
|
|
44
49
|
},
|
|
45
50
|
{
|
|
46
51
|
id: "b",
|
|
52
|
+
alias: {},
|
|
47
53
|
selectors: [],
|
|
48
54
|
variants: [
|
|
49
55
|
{
|
|
@@ -159,19 +165,19 @@ describe("messages", () => {
|
|
|
159
165
|
repo,
|
|
160
166
|
_import: mockImport,
|
|
161
167
|
}), { from });
|
|
162
|
-
let
|
|
168
|
+
let effectOnMessagesCounter = 0;
|
|
163
169
|
createEffect(() => {
|
|
164
170
|
project.query.messages.getAll();
|
|
165
|
-
|
|
171
|
+
effectOnMessagesCounter += 1;
|
|
166
172
|
});
|
|
167
173
|
expect(Object.values(project.query.messages.getAll()).length).toBe(2);
|
|
168
174
|
project.setSettings({ ...project.settings(), languageTags: ["en"] });
|
|
169
175
|
// TODO: how can we await `setConfig` correctly
|
|
170
176
|
await new Promise((resolve) => setTimeout(resolve, 510));
|
|
171
|
-
expect(
|
|
177
|
+
expect(effectOnMessagesCounter).toBe(1); // 2 times because effect creation + set
|
|
172
178
|
expect(Object.values(project.query.messages.getAll()).length).toBe(2);
|
|
173
179
|
});
|
|
174
|
-
it("should react to
|
|
180
|
+
it("should react to message udpate", async () => {
|
|
175
181
|
const repo = await mockRepo();
|
|
176
182
|
const fs = repo.nodeishFs;
|
|
177
183
|
await fs.mkdir("/user/project.inlang.inlang", { recursive: true });
|
|
@@ -209,6 +215,48 @@ describe("messages", () => {
|
|
|
209
215
|
],
|
|
210
216
|
},
|
|
211
217
|
});
|
|
218
|
+
it("should react to message udpate (with aliases)", async () => {
|
|
219
|
+
const repo = await mockRepo();
|
|
220
|
+
const fs = repo.nodeishFs;
|
|
221
|
+
await fs.mkdir("/user/project.inlang.inlang", { recursive: true });
|
|
222
|
+
await fs.writeFile("/user/project.inlang.inlang/settings.json", JSON.stringify(configWithAliases));
|
|
223
|
+
const project = solidAdapter(await loadProject({
|
|
224
|
+
projectPath: "/user/project.inlang.inlang",
|
|
225
|
+
repo,
|
|
226
|
+
_import: $import,
|
|
227
|
+
}), { from });
|
|
228
|
+
let counter = 0;
|
|
229
|
+
createEffect(() => {
|
|
230
|
+
project.query.messages.getAll();
|
|
231
|
+
counter += 1;
|
|
232
|
+
});
|
|
233
|
+
const messagesBefore = project.query.messages.getAll;
|
|
234
|
+
expect(Object.values(messagesBefore()).length).toBe(2);
|
|
235
|
+
expect((Object.values(messagesBefore())[0]?.variants.find((variant) => variant.languageTag === "en")?.pattern[0]).value).toBe("test");
|
|
236
|
+
project.query.messages.update({
|
|
237
|
+
where: { id: "raw_tapir_pause_grateful" },
|
|
238
|
+
// TODO: use `createMessage` utility
|
|
239
|
+
data: {
|
|
240
|
+
...exampleMessages[0],
|
|
241
|
+
variants: [
|
|
242
|
+
{
|
|
243
|
+
languageTag: "en",
|
|
244
|
+
match: [],
|
|
245
|
+
pattern: [
|
|
246
|
+
{
|
|
247
|
+
type: "Text",
|
|
248
|
+
value: "test2",
|
|
249
|
+
},
|
|
250
|
+
],
|
|
251
|
+
},
|
|
252
|
+
],
|
|
253
|
+
},
|
|
254
|
+
});
|
|
255
|
+
expect(counter).toBe(2); // 2 times because effect creation + set
|
|
256
|
+
const messagesAfter = project.query.messages.getAll;
|
|
257
|
+
expect(Object.values(messagesAfter()).length).toBe(2);
|
|
258
|
+
expect((Object.values(messagesAfter())[0]?.variants.find((variant) => variant.languageTag === "en")?.pattern[0]).value).toBe("test2");
|
|
259
|
+
});
|
|
212
260
|
expect(counter).toBe(2); // 2 times because effect creation + set
|
|
213
261
|
const messagesAfter = project.query.messages.getAll;
|
|
214
262
|
expect(Object.values(messagesAfter()).length).toBe(2);
|
package/dist/api.d.ts
CHANGED
|
@@ -59,6 +59,9 @@ export type MessageQueryApi = {
|
|
|
59
59
|
};
|
|
60
60
|
}, callback: (message: Message) => void) => void;
|
|
61
61
|
};
|
|
62
|
+
getByDefaultAlias: ((alias: Message["alias"]["default"]) => Readonly<Message>) & {
|
|
63
|
+
subscribe: (alias: Message["alias"]["default"], callback: (message: Message) => void) => void;
|
|
64
|
+
};
|
|
62
65
|
includedMessageIds: Subscribable<Message["id"][]>;
|
|
63
66
|
getAll: Subscribable<Readonly<Message[]>>;
|
|
64
67
|
update: (args: {
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@ import type { resolveModules } from "./resolve-modules/index.js";
|
|
|
4
4
|
/**
|
|
5
5
|
* Creates a reactive query API for messages.
|
|
6
6
|
*/
|
|
7
|
-
export declare function createMessageLintReportsQuery(messagesQuery: MessageQueryApi, settings: () => ProjectSettings, installedMessageLintRules: () => Array<InstalledMessageLintRule>, resolvedModules: () => Awaited<ReturnType<typeof resolveModules>> | undefined
|
|
7
|
+
export declare function createMessageLintReportsQuery(messagesQuery: MessageQueryApi, settings: () => ProjectSettings, installedMessageLintRules: () => Array<InstalledMessageLintRule>, resolvedModules: () => Awaited<ReturnType<typeof resolveModules>> | undefined): InlangProject["query"]["messageLintReports"];
|
|
8
8
|
//# sourceMappingURL=createMessageLintReportsQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMessageLintReportsQuery.d.ts","sourceRoot":"","sources":["../src/createMessageLintReportsQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EACb,wBAAwB,EAExB,eAAe,EACf,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"createMessageLintReportsQuery.d.ts","sourceRoot":"","sources":["../src/createMessageLintReportsQuery.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EACb,wBAAwB,EAExB,eAAe,EACf,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAMhE;;GAEG;AACH,wBAAgB,6BAA6B,CAC5C,aAAa,EAAE,eAAe,EAC9B,QAAQ,EAAE,MAAM,eAAe,EAC/B,yBAAyB,EAAE,MAAM,KAAK,CAAC,wBAAwB,CAAC,EAChE,eAAe,EAAE,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,GAAG,SAAS,GAC3E,aAAa,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,CAyF9C"}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { createSubscribable } from "./loadProject.js";
|
|
2
2
|
import { lintSingleMessage } from "./lint/index.js";
|
|
3
3
|
import { ReactiveMap } from "./reactivity/map.js";
|
|
4
|
-
import {
|
|
5
|
-
import { createEffect } from "./reactivity/solid.js";
|
|
4
|
+
import { createRoot, createEffect } from "./reactivity/solid.js";
|
|
6
5
|
/**
|
|
7
6
|
* Creates a reactive query API for messages.
|
|
8
7
|
*/
|
|
9
|
-
export function createMessageLintReportsQuery(messagesQuery, settings, installedMessageLintRules, resolvedModules
|
|
8
|
+
export function createMessageLintReportsQuery(messagesQuery, settings, installedMessageLintRules, resolvedModules) {
|
|
10
9
|
// @ts-expect-error
|
|
11
10
|
const index = new ReactiveMap();
|
|
12
11
|
const modules = resolvedModules();
|
|
@@ -19,25 +18,23 @@ export function createMessageLintReportsQuery(messagesQuery, settings, installed
|
|
|
19
18
|
};
|
|
20
19
|
};
|
|
21
20
|
const messages = messagesQuery.getAll();
|
|
21
|
+
const trackedMessages = new Map();
|
|
22
22
|
createEffect(() => {
|
|
23
|
+
const currentMessageIds = new Set(messagesQuery.includedMessageIds());
|
|
24
|
+
const deletedTrackedMessages = [...trackedMessages].filter((tracked) => !currentMessageIds.has(tracked[0]));
|
|
23
25
|
if (rulesArray) {
|
|
24
|
-
for (const messageId of
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
index.set(messageId, report.data);
|
|
26
|
+
for (const messageId of currentMessageIds) {
|
|
27
|
+
if (!trackedMessages.has(messageId)) {
|
|
28
|
+
createRoot((dispose) => {
|
|
29
|
+
createEffect(() => {
|
|
30
|
+
const message = messagesQuery.get({ where: { id: messageId } });
|
|
31
|
+
if (!message) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (!trackedMessages?.has(messageId)) {
|
|
35
|
+
// initial effect execution - add dispose function
|
|
36
|
+
trackedMessages?.set(messageId, dispose);
|
|
36
37
|
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
debounce(500, (message) => {
|
|
41
38
|
lintSingleMessage({
|
|
42
39
|
rules: rulesArray,
|
|
43
40
|
settings: settingsObject(),
|
|
@@ -48,9 +45,20 @@ export function createMessageLintReportsQuery(messagesQuery, settings, installed
|
|
|
48
45
|
index.set(messageId, report.data);
|
|
49
46
|
}
|
|
50
47
|
});
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
for (const deletedMessage of deletedTrackedMessages) {
|
|
53
|
+
const deletedMessageId = deletedMessage[0];
|
|
54
|
+
// call dispose to cleanup the effect
|
|
55
|
+
const messageEffectDisposeFunction = trackedMessages.get(deletedMessageId);
|
|
56
|
+
if (messageEffectDisposeFunction) {
|
|
57
|
+
messageEffectDisposeFunction();
|
|
58
|
+
trackedMessages.delete(deletedMessageId);
|
|
59
|
+
// remove lint report result
|
|
60
|
+
index.delete(deletedMessageId);
|
|
61
|
+
}
|
|
54
62
|
}
|
|
55
63
|
}
|
|
56
64
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createMessagesQuery.d.ts","sourceRoot":"","sources":["../src/createMessagesQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAI9C,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,UAAU,CAAA;AAE9D;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,GAC5B,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"createMessagesQuery.d.ts","sourceRoot":"","sources":["../src/createMessagesQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAI9C,OAAO,KAAK,EAAE,aAAa,EAAmB,MAAM,UAAU,CAAA;AAE9D;;GAEG;AACH,wBAAgB,mBAAmB,CAClC,QAAQ,EAAE,MAAM,KAAK,CAAC,OAAO,CAAC,GAC5B,aAAa,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAiFpC"}
|
|
@@ -7,23 +7,39 @@ import { createSubscribable } from "./loadProject.js";
|
|
|
7
7
|
export function createMessagesQuery(messages) {
|
|
8
8
|
// @ts-expect-error
|
|
9
9
|
const index = new ReactiveMap();
|
|
10
|
+
// Map default alias to message
|
|
11
|
+
// Assumes that aliases are only created and deleted, not updated
|
|
12
|
+
// TODO #2346 - handle updates to aliases
|
|
13
|
+
// TODO #2346 - refine to hold messageId[], if default alias is not unique
|
|
14
|
+
// @ts-expect-error
|
|
15
|
+
const defaultAliasIndex = new ReactiveMap();
|
|
10
16
|
createEffect(() => {
|
|
11
17
|
index.clear();
|
|
12
18
|
for (const message of structuredClone(messages())) {
|
|
13
19
|
index.set(message.id, message);
|
|
20
|
+
if ("default" in message.alias) {
|
|
21
|
+
defaultAliasIndex.set(message.alias.default, message);
|
|
22
|
+
}
|
|
14
23
|
}
|
|
15
24
|
});
|
|
16
25
|
const get = (args) => index.get(args.where.id);
|
|
26
|
+
const getByDefaultAlias = (alias) => defaultAliasIndex.get(alias);
|
|
17
27
|
return {
|
|
18
28
|
create: ({ data }) => {
|
|
19
29
|
if (index.has(data.id))
|
|
20
30
|
return false;
|
|
21
31
|
index.set(data.id, data);
|
|
32
|
+
if ("default" in data.alias) {
|
|
33
|
+
defaultAliasIndex.set(data.alias.default, data);
|
|
34
|
+
}
|
|
22
35
|
return true;
|
|
23
36
|
},
|
|
24
37
|
get: Object.assign(get, {
|
|
25
38
|
subscribe: (args, callback) => createSubscribable(() => get(args)).subscribe(callback),
|
|
26
39
|
}),
|
|
40
|
+
getByDefaultAlias: Object.assign(getByDefaultAlias, {
|
|
41
|
+
subscribe: (alias, callback) => createSubscribable(() => getByDefaultAlias(alias)).subscribe(callback),
|
|
42
|
+
}),
|
|
27
43
|
includedMessageIds: createSubscribable(() => {
|
|
28
44
|
return [...index.keys()];
|
|
29
45
|
}),
|
|
@@ -41,6 +57,9 @@ export function createMessagesQuery(messages) {
|
|
|
41
57
|
const message = index.get(where.id);
|
|
42
58
|
if (message === undefined) {
|
|
43
59
|
index.set(where.id, data);
|
|
60
|
+
if ("default" in data.alias) {
|
|
61
|
+
defaultAliasIndex.set(data.alias.default, data);
|
|
62
|
+
}
|
|
44
63
|
}
|
|
45
64
|
else {
|
|
46
65
|
index.set(where.id, { ...message, ...data });
|
|
@@ -48,8 +67,12 @@ export function createMessagesQuery(messages) {
|
|
|
48
67
|
return true;
|
|
49
68
|
},
|
|
50
69
|
delete: ({ where }) => {
|
|
51
|
-
|
|
70
|
+
const message = index.get(where.id);
|
|
71
|
+
if (message === undefined)
|
|
52
72
|
return false;
|
|
73
|
+
if ("default" in message.alias) {
|
|
74
|
+
defaultAliasIndex.delete(message.alias.default);
|
|
75
|
+
}
|
|
53
76
|
index.delete(where.id);
|
|
54
77
|
return true;
|
|
55
78
|
},
|
|
@@ -4,6 +4,7 @@ import { createMessagesQuery } from "./createMessagesQuery.js";
|
|
|
4
4
|
import { createEffect, createRoot, createSignal } from "./reactivity/solid.js";
|
|
5
5
|
import { createMessage } from "./test-utilities/createMessage.js";
|
|
6
6
|
const createChangeListener = async (cb) => createEffect(cb);
|
|
7
|
+
const nextTick = () => new Promise((resolve) => setTimeout(resolve, 0));
|
|
7
8
|
describe("create", () => {
|
|
8
9
|
it("should create a message", () => {
|
|
9
10
|
const query = createMessagesQuery(() => []);
|
|
@@ -13,6 +14,16 @@ describe("create", () => {
|
|
|
13
14
|
expect(query.get({ where: { id: "first-message" } })).toEqual(mockMessage);
|
|
14
15
|
expect(created).toBe(true);
|
|
15
16
|
});
|
|
17
|
+
it("query.getByDefaultAlias should return a message with a default alias", () => {
|
|
18
|
+
const query = createMessagesQuery(() => []);
|
|
19
|
+
expect(query.get({ where: { id: "first-message" } })).toBeUndefined();
|
|
20
|
+
const mockMessage = createMessage("first-message", { en: "Hello World" });
|
|
21
|
+
mockMessage.alias = { default: "first-message-alias" };
|
|
22
|
+
const created = query.create({ data: mockMessage });
|
|
23
|
+
expect(query.get({ where: { id: "first-message" } })).toEqual(mockMessage);
|
|
24
|
+
expect(query.getByDefaultAlias("first-message-alias")).toEqual(mockMessage);
|
|
25
|
+
expect(created).toBe(true);
|
|
26
|
+
});
|
|
16
27
|
it("should return false if message with id already exists", () => {
|
|
17
28
|
const query = createMessagesQuery(() => [createMessage("first-message", { en: "Hello World" })]);
|
|
18
29
|
expect(query.get({ where: { id: "first-message" } })).toBeDefined();
|
|
@@ -191,8 +202,41 @@ describe("reactivity", () => {
|
|
|
191
202
|
.value).toBe("after");
|
|
192
203
|
});
|
|
193
204
|
});
|
|
194
|
-
describe
|
|
195
|
-
|
|
205
|
+
describe("subscribe", () => {
|
|
206
|
+
describe("get", () => {
|
|
207
|
+
it("should subscribe to `create`", async () => {
|
|
208
|
+
await createRoot(async () => {
|
|
209
|
+
const query = createMessagesQuery(() => []);
|
|
210
|
+
// eslint-disable-next-line unicorn/no-null
|
|
211
|
+
let message = null;
|
|
212
|
+
query.get.subscribe({ where: { id: "1" } }, (v) => {
|
|
213
|
+
void (message = v);
|
|
214
|
+
});
|
|
215
|
+
await nextTick();
|
|
216
|
+
expect(message).toBeUndefined();
|
|
217
|
+
query.create({ data: createMessage("1", { en: "before" }) });
|
|
218
|
+
expect(message).toBeDefined();
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
});
|
|
222
|
+
describe("getByDefaultAlias", () => {
|
|
223
|
+
it("should subscribe to `create`", async () => {
|
|
224
|
+
await createRoot(async () => {
|
|
225
|
+
const query = createMessagesQuery(() => []);
|
|
226
|
+
// eslint-disable-next-line unicorn/no-null
|
|
227
|
+
let message = null;
|
|
228
|
+
query.getByDefaultAlias.subscribe("message-alias", (v) => {
|
|
229
|
+
void (message = v);
|
|
230
|
+
});
|
|
231
|
+
await nextTick(); // required for effect to run on reactive map
|
|
232
|
+
expect(message).toBeUndefined();
|
|
233
|
+
const mockMessage = createMessage("1", { en: "before" });
|
|
234
|
+
mockMessage.alias = { default: "message-alias" };
|
|
235
|
+
query.create({ data: mockMessage });
|
|
236
|
+
expect(message).toBeDefined();
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
});
|
|
196
240
|
});
|
|
197
241
|
describe("getAll", () => {
|
|
198
242
|
it("should react to `create`", async () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type NodeishFilesystem } from "@lix-js/fs";
|
|
2
2
|
/**
|
|
3
3
|
* Wraps the nodeish filesystem subset with a function that intercepts paths
|
|
4
4
|
* and prepends the base path.
|
|
@@ -7,6 +7,6 @@ import type { NodeishFilesystemSubset } from "@inlang/plugin";
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const createNodeishFsWithAbsolutePaths: (args: {
|
|
9
9
|
projectPath: string;
|
|
10
|
-
nodeishFs:
|
|
11
|
-
}) =>
|
|
10
|
+
nodeishFs: NodeishFilesystem;
|
|
11
|
+
}) => NodeishFilesystem;
|
|
12
12
|
//# sourceMappingURL=createNodeishFsWithAbsolutePaths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNodeishFsWithAbsolutePaths.d.ts","sourceRoot":"","sources":["../src/createNodeishFsWithAbsolutePaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"createNodeishFsWithAbsolutePaths.d.ts","sourceRoot":"","sources":["../src/createNodeishFsWithAbsolutePaths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAGlE;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,SAAU;IACtD,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,iBAAiB,CAAA;CAC5B,KAAG,iBAuCH,CAAA"}
|
|
@@ -23,8 +23,16 @@ export const createNodeishFsWithAbsolutePaths = (args) => {
|
|
|
23
23
|
// @ts-expect-error
|
|
24
24
|
readFile: (path, options) => args.nodeishFs.readFile(makeAbsolute(path), options),
|
|
25
25
|
readdir: (path) => args.nodeishFs.readdir(makeAbsolute(path)),
|
|
26
|
-
mkdir: (path) => args.nodeishFs.mkdir(makeAbsolute(path)),
|
|
26
|
+
mkdir: (path, options) => args.nodeishFs.mkdir(makeAbsolute(path), options),
|
|
27
27
|
writeFile: (path, data) => args.nodeishFs.writeFile(makeAbsolute(path), data),
|
|
28
|
+
stat: (path) => args.nodeishFs.stat(makeAbsolute(path)),
|
|
29
|
+
rm: (path) => args.nodeishFs.rm(makeAbsolute(path)),
|
|
30
|
+
rmdir: (path) => args.nodeishFs.rmdir(makeAbsolute(path)),
|
|
28
31
|
watch: (path, options) => args.nodeishFs.watch(makeAbsolute(path), options),
|
|
32
|
+
// This might be surprising when symlinks were intended to be relative
|
|
33
|
+
symlink: (target, path) => args.nodeishFs.symlink(makeAbsolute(target), makeAbsolute(path)),
|
|
34
|
+
unlink: (path) => args.nodeishFs.unlink(makeAbsolute(path)),
|
|
35
|
+
readlink: (path) => args.nodeishFs.readlink(makeAbsolute(path)),
|
|
36
|
+
lstat: (path) => args.nodeishFs.lstat(makeAbsolute(path)),
|
|
29
37
|
};
|
|
30
38
|
};
|
|
@@ -19,8 +19,15 @@ it("intercepts paths correctly for readFile", async () => {
|
|
|
19
19
|
readFile: vi.fn(),
|
|
20
20
|
readdir: vi.fn(),
|
|
21
21
|
mkdir: vi.fn(),
|
|
22
|
+
rmdir: vi.fn(),
|
|
22
23
|
writeFile: vi.fn(),
|
|
23
24
|
watch: vi.fn(),
|
|
25
|
+
rm: vi.fn(),
|
|
26
|
+
stat: vi.fn(),
|
|
27
|
+
lstat: vi.fn(),
|
|
28
|
+
symlink: vi.fn(),
|
|
29
|
+
unlink: vi.fn(),
|
|
30
|
+
readlink: vi.fn(),
|
|
24
31
|
};
|
|
25
32
|
const interceptedFs = createNodeishFsWithAbsolutePaths({
|
|
26
33
|
projectPath,
|
|
@@ -28,7 +35,6 @@ it("intercepts paths correctly for readFile", async () => {
|
|
|
28
35
|
});
|
|
29
36
|
for (const [path, expectedPath] of filePaths) {
|
|
30
37
|
for (const fn of Object.keys(mockNodeishFs)) {
|
|
31
|
-
// @ts-expect-error
|
|
32
38
|
await interceptedFs[fn](path);
|
|
33
39
|
// @ts-expect-error
|
|
34
40
|
// expect the first argument to be the expectedPath
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { NodeishFilesystem } from "@lix-js/fs";
|
|
2
2
|
/**
|
|
3
3
|
* Wraps the nodeish filesystem subset with a function that intercepts paths
|
|
4
4
|
* and prepends the base path.
|
|
@@ -6,7 +6,7 @@ import type { NodeishFilesystemSubset } from "@inlang/plugin";
|
|
|
6
6
|
* The paths are resolved from the `projectPath` argument.
|
|
7
7
|
*/
|
|
8
8
|
export declare const createNodeishFsWithWatcher: (args: {
|
|
9
|
-
nodeishFs:
|
|
9
|
+
nodeishFs: NodeishFilesystem;
|
|
10
10
|
updateMessages: () => void;
|
|
11
|
-
}) =>
|
|
11
|
+
}) => NodeishFilesystem;
|
|
12
12
|
//# sourceMappingURL=createNodeishFsWithWatcher.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNodeishFsWithWatcher.d.ts","sourceRoot":"","sources":["../src/createNodeishFsWithWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createNodeishFsWithWatcher.d.ts","sourceRoot":"","sources":["../src/createNodeishFsWithWatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,SAAU;IAChD,SAAS,EAAE,iBAAiB,CAAA;IAC5B,cAAc,EAAE,MAAM,IAAI,CAAA;CAC1B,KAAG,iBAiDH,CAAA"}
|
|
@@ -44,9 +44,12 @@ export const createNodeishFsWithWatcher = (args) => {
|
|
|
44
44
|
return {
|
|
45
45
|
// @ts-expect-error
|
|
46
46
|
readFile: (path, options) => readFileAndExtractPath(path, options),
|
|
47
|
+
rm: args.nodeishFs.rm,
|
|
47
48
|
readdir: args.nodeishFs.readdir,
|
|
48
49
|
mkdir: args.nodeishFs.mkdir,
|
|
50
|
+
rmdir: args.nodeishFs.rmdir,
|
|
49
51
|
writeFile: args.nodeishFs.writeFile,
|
|
50
52
|
watch: args.nodeishFs.watch,
|
|
53
|
+
stat: args.nodeishFs.stat,
|
|
51
54
|
};
|
|
52
55
|
};
|
package/dist/errors.d.ts
CHANGED
|
@@ -31,4 +31,18 @@ export declare class PluginLoadMessagesError extends Error {
|
|
|
31
31
|
cause: ErrorOptions["cause"];
|
|
32
32
|
});
|
|
33
33
|
}
|
|
34
|
+
export declare class LoadMessageError extends Error {
|
|
35
|
+
constructor(options: {
|
|
36
|
+
path: string;
|
|
37
|
+
messageId: string;
|
|
38
|
+
cause: ErrorOptions["cause"];
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export declare class SaveMessageError extends Error {
|
|
42
|
+
constructor(options: {
|
|
43
|
+
path: string;
|
|
44
|
+
messageId: string;
|
|
45
|
+
cause: ErrorOptions["cause"];
|
|
46
|
+
});
|
|
47
|
+
}
|
|
34
48
|
//# sourceMappingURL=errors.d.ts.map
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,qBAAa,0BAA2B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;CAI1D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;gBACzC,OAAO,EAAE;QAAE,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE;CAU7C;AAED,qBAAa,kCAAmC,SAAQ,KAAK;gBAChD,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAOnE;AAED,qBAAa,gCAAiC,SAAQ,KAAK;gBAC9C,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAIpE;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACrC,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAAE;CAIrD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACrC,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAAE;CAIrD"}
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAE1D,qBAAa,0BAA2B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;CAI1D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;gBACzC,OAAO,EAAE;QAAE,MAAM,EAAE,UAAU,EAAE,CAAA;KAAE;CAU7C;AAED,qBAAa,kCAAmC,SAAQ,KAAK;gBAChD,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAOnE;AAED,qBAAa,gCAAiC,SAAQ,KAAK;gBAC9C,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;CAIpE;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACrC,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAAE;CAIrD;AAED,qBAAa,uBAAwB,SAAQ,KAAK;gBACrC,OAAO,EAAE;QAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAAE;CAIrD;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAAE;CAOtF;AAED,qBAAa,gBAAiB,SAAQ,KAAK;gBAC9B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAA;KAAE;CAOtF"}
|
package/dist/errors.js
CHANGED
|
@@ -38,3 +38,15 @@ export class PluginLoadMessagesError extends Error {
|
|
|
38
38
|
this.name = "PluginLoadMessagesError";
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
export class LoadMessageError extends Error {
|
|
42
|
+
constructor(options) {
|
|
43
|
+
super(`An error occured when loading message ${options.messageId} from path ${options.path} caused by ${options.cause}.`, options);
|
|
44
|
+
this.name = "LoadMessageError";
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
export class SaveMessageError extends Error {
|
|
48
|
+
constructor(options) {
|
|
49
|
+
super(`An error occured when loading message ${options.messageId} from path ${options.path} caused by ${options.cause}.`, options);
|
|
50
|
+
this.name = "SaveMessageError";
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadProject.d.ts","sourceRoot":"","sources":["../src/loadProject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EAGb,YAAY,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"loadProject.d.ts","sourceRoot":"","sources":["../src/loadProject.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,aAAa,EAGb,YAAY,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,KAAK,cAAc,EAAkB,MAAM,4BAA4B,CAAA;AAyBhF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAgChD;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,UAAU,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,cAAc,CAAA;CACxB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqYzB;AAsHD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQtE"}
|