@inlang/sdk 0.3.0 → 0.5.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.d.ts +2 -2
- package/dist/adapter/solidAdapter.d.ts.map +1 -1
- package/dist/adapter/solidAdapter.js +2 -2
- package/dist/adapter/solidAdapter.test.js +68 -78
- package/dist/api.d.ts +10 -6
- package/dist/api.d.ts.map +1 -1
- package/dist/api.test-d.d.ts +2 -0
- package/dist/api.test-d.d.ts.map +1 -0
- package/dist/api.test-d.js +4 -0
- package/dist/createMessageLintReportsQuery.d.ts +2 -2
- package/dist/createMessageLintReportsQuery.d.ts.map +1 -1
- package/dist/createMessageLintReportsQuery.js +11 -11
- package/dist/createMessagesQuery.js +1 -1
- package/dist/errors.d.ts +3 -3
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +6 -6
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/lint/message/lintMessages.d.ts +3 -7
- package/dist/lint/message/lintMessages.d.ts.map +1 -1
- package/dist/lint/message/lintMessages.test.js +38 -36
- package/dist/lint/message/lintSingleMessage.d.ts +3 -7
- package/dist/lint/message/lintSingleMessage.d.ts.map +1 -1
- package/dist/lint/message/lintSingleMessage.js +10 -10
- package/dist/lint/message/lintSingleMessage.test.js +71 -65
- package/dist/{openInlangProject.d.ts → loadProject.d.ts} +3 -3
- package/dist/loadProject.d.ts.map +1 -0
- package/dist/{openInlangProject.js → loadProject.js} +70 -66
- package/dist/loadProject.test.d.ts +2 -0
- package/dist/loadProject.test.d.ts.map +1 -0
- package/dist/{openInlangProject.test.js → loadProject.test.js} +160 -176
- package/dist/parseConfig.d.ts +2 -2
- package/dist/parseConfig.d.ts.map +1 -1
- package/dist/parseConfig.js +3 -3
- package/dist/resolve-modules/import.js +1 -1
- package/dist/resolve-modules/message-lint-rules/resolveMessageLintRules.js +1 -1
- 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/resolvePlugins.js +15 -15
- package/dist/resolve-modules/plugins/resolvePlugins.test.js +55 -94
- package/dist/resolve-modules/plugins/types.d.ts +1 -1
- package/dist/resolve-modules/plugins/types.d.ts.map +1 -1
- package/dist/resolve-modules/plugins/types.test.js +10 -14
- package/dist/resolve-modules/resolveModules.d.ts.map +1 -1
- package/dist/resolve-modules/resolveModules.js +9 -9
- package/dist/resolve-modules/resolveModules.test.js +28 -42
- package/dist/resolve-modules/types.d.ts +3 -3
- package/dist/resolve-modules/types.d.ts.map +1 -1
- package/dist/versionedInterfaces.d.ts +1 -1
- package/dist/versionedInterfaces.d.ts.map +1 -1
- package/dist/versionedInterfaces.js +1 -1
- package/package.json +3 -3
- package/src/adapter/solidAdapter.test.ts +77 -87
- package/src/adapter/solidAdapter.ts +4 -4
- package/src/api.test-d.ts +8 -0
- package/src/api.ts +10 -6
- package/src/createMessageLintReportsQuery.ts +15 -20
- package/src/createMessagesQuery.ts +1 -1
- package/src/errors.ts +6 -6
- package/src/index.ts +4 -4
- package/src/lint/message/lintMessages.test.ts +38 -36
- package/src/lint/message/lintMessages.ts +3 -11
- package/src/lint/message/lintSingleMessage.test.ts +71 -65
- package/src/lint/message/lintSingleMessage.ts +13 -21
- package/src/{openInlangProject.test.ts → loadProject.test.ts} +165 -181
- package/src/{openInlangProject.ts → loadProject.ts} +81 -82
- package/src/parseConfig.ts +5 -3
- 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 +1 -1
- package/src/resolve-modules/plugins/resolvePlugins.test.ts +55 -94
- package/src/resolve-modules/plugins/resolvePlugins.ts +19 -19
- package/src/resolve-modules/plugins/types.test.ts +11 -15
- package/src/resolve-modules/plugins/types.ts +1 -1
- package/src/resolve-modules/resolveModules.test.ts +29 -43
- package/src/resolve-modules/resolveModules.ts +11 -9
- package/src/resolve-modules/types.ts +3 -3
- package/src/versionedInterfaces.ts +1 -1
- package/dist/openInlangProject.d.ts.map +0 -1
- package/dist/openInlangProject.test.d.ts +0 -2
- package/dist/openInlangProject.test.d.ts.map +0 -1
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
2
2
|
import { lintMessages } from "./lintMessages.js";
|
|
3
3
|
const lintRule1 = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
},
|
|
9
|
-
message: vi.fn(),
|
|
4
|
+
id: "messageLintRule.x.1",
|
|
5
|
+
displayName: { en: "" },
|
|
6
|
+
description: { en: "" },
|
|
7
|
+
run: vi.fn(),
|
|
10
8
|
};
|
|
11
9
|
const lintRule2 = {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
message: vi.fn(),
|
|
10
|
+
id: "messageLintRule.x.2",
|
|
11
|
+
displayName: { en: "" },
|
|
12
|
+
description: { en: "" },
|
|
13
|
+
run: vi.fn(),
|
|
18
14
|
};
|
|
19
15
|
const message1 = { id: "m1" };
|
|
20
16
|
const message2 = { id: "m2" };
|
|
@@ -26,45 +22,49 @@ describe("lintMessages", async () => {
|
|
|
26
22
|
});
|
|
27
23
|
test("it should await all messages", async () => {
|
|
28
24
|
let called = 0;
|
|
29
|
-
lintRule2.
|
|
25
|
+
lintRule2.run.mockImplementation(async () => {
|
|
30
26
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
31
27
|
called++;
|
|
32
28
|
});
|
|
33
29
|
await lintMessages({
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
[
|
|
30
|
+
settings: {
|
|
31
|
+
sourceLanguageTag: "en",
|
|
32
|
+
languageTags: [],
|
|
33
|
+
modules: [],
|
|
34
|
+
messageLintRuleLevels: {
|
|
35
|
+
[lintRule1.id]: "warning",
|
|
36
|
+
[lintRule2.id]: "warning",
|
|
37
|
+
},
|
|
37
38
|
},
|
|
38
|
-
ruleSettings: {},
|
|
39
|
-
sourceLanguageTag: "en",
|
|
40
|
-
languageTags: [],
|
|
41
39
|
messages,
|
|
42
40
|
rules: [lintRule1, lintRule2],
|
|
43
41
|
});
|
|
44
|
-
expect(lintRule1.
|
|
42
|
+
expect(lintRule1.run).toHaveBeenCalledTimes(3);
|
|
45
43
|
expect(called).toBe(3);
|
|
46
44
|
});
|
|
47
45
|
test("it should process all messages and rules in parallel", async () => {
|
|
48
46
|
const fn = vi.fn();
|
|
49
|
-
lintRule1.
|
|
47
|
+
lintRule1.run.mockImplementation(async ({ message }) => {
|
|
50
48
|
fn("r1", "before", message.id);
|
|
51
49
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
52
50
|
fn("r1", "after", message.id);
|
|
53
51
|
});
|
|
54
|
-
lintRule2.
|
|
52
|
+
lintRule2.run.mockImplementation(async ({ message }) => {
|
|
55
53
|
fn("r2", "before", message.id);
|
|
56
54
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
57
55
|
fn("r2", "after", message.id);
|
|
58
56
|
});
|
|
59
57
|
await lintMessages({
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
[
|
|
58
|
+
settings: {
|
|
59
|
+
sourceLanguageTag: "en",
|
|
60
|
+
languageTags: [],
|
|
61
|
+
modules: [],
|
|
62
|
+
messageLintRuleLevels: {
|
|
63
|
+
[lintRule1.id]: "warning",
|
|
64
|
+
[lintRule2.id]: "warning",
|
|
65
|
+
},
|
|
63
66
|
},
|
|
64
|
-
ruleSettings: {},
|
|
65
67
|
rules: [lintRule1, lintRule2],
|
|
66
|
-
sourceLanguageTag: "en",
|
|
67
|
-
languageTags: [],
|
|
68
68
|
messages,
|
|
69
69
|
});
|
|
70
70
|
expect(fn).toHaveBeenCalledTimes(12);
|
|
@@ -82,20 +82,22 @@ describe("lintMessages", async () => {
|
|
|
82
82
|
expect(fn).toHaveBeenNthCalledWith(12, "r2", "after", "m3");
|
|
83
83
|
});
|
|
84
84
|
test("it should not abort the linting process when errors occur", async () => {
|
|
85
|
-
lintRule1.
|
|
85
|
+
lintRule1.run.mockImplementation(({ report }) => {
|
|
86
86
|
report({});
|
|
87
87
|
});
|
|
88
|
-
lintRule2.
|
|
88
|
+
lintRule2.run.mockImplementation(() => {
|
|
89
89
|
throw new Error("error");
|
|
90
90
|
});
|
|
91
91
|
const { data, errors } = await lintMessages({
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
[
|
|
92
|
+
settings: {
|
|
93
|
+
sourceLanguageTag: "en",
|
|
94
|
+
languageTags: [],
|
|
95
|
+
modules: [],
|
|
96
|
+
messageLintRuleLevels: {
|
|
97
|
+
[lintRule1.id]: "warning",
|
|
98
|
+
[lintRule2.id]: "warning",
|
|
99
|
+
},
|
|
95
100
|
},
|
|
96
|
-
ruleSettings: {},
|
|
97
|
-
sourceLanguageTag: "en",
|
|
98
|
-
languageTags: [],
|
|
99
101
|
messages,
|
|
100
102
|
rules: [lintRule1, lintRule2],
|
|
101
103
|
});
|
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { MessageLintRule, MessageLintReport } from "@inlang/message-lint-rule";
|
|
2
2
|
import type { Message } from "@inlang/message";
|
|
3
3
|
import { MessagedLintRuleThrowedError } from "./errors.js";
|
|
4
|
-
import type {
|
|
5
|
-
import type { JSONObject } from "@inlang/json-types";
|
|
4
|
+
import type { ProjectSettings } from "@inlang/project-settings";
|
|
6
5
|
/**
|
|
7
6
|
* Lint a single message.
|
|
8
7
|
*
|
|
9
8
|
* - the lint rule levels defaults to `warning`.
|
|
10
9
|
*/
|
|
11
10
|
export declare const lintSingleMessage: (args: {
|
|
12
|
-
|
|
13
|
-
languageTags: LanguageTag[];
|
|
14
|
-
ruleSettings: Record<MessageLintRule["meta"]["id"], JSONObject>;
|
|
15
|
-
ruleLevels: Record<MessageLintRule["meta"]["id"], MessageLintLevel>;
|
|
11
|
+
settings: ProjectSettings & Required<Pick<ProjectSettings, "messageLintRuleLevels">>;
|
|
16
12
|
rules: MessageLintRule[];
|
|
17
13
|
messages: Message[];
|
|
18
14
|
message: Message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lintSingleMessage.d.ts","sourceRoot":"","sources":["../../../src/lint/message/lintSingleMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"lintSingleMessage.d.ts","sourceRoot":"","sources":["../../../src/lint/message/lintSingleMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACnF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,SAAgB;IAC7C,QAAQ,EAAE,eAAe,GAAG,SAAS,KAAK,eAAe,EAAE,uBAAuB,CAAC,CAAC,CAAA;IACpF,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;CAChB;UAAmB,iBAAiB,EAAE;YAAU,4BAA4B,EAAE;EAsC9E,CAAA"}
|
|
@@ -8,27 +8,27 @@ export const lintSingleMessage = async (args) => {
|
|
|
8
8
|
const reports = [];
|
|
9
9
|
const errors = [];
|
|
10
10
|
const promises = args.rules.map(async (rule) => {
|
|
11
|
-
const
|
|
12
|
-
const settings = args.ruleSettings?.[ruleId] ?? {};
|
|
13
|
-
const level = args.ruleLevels?.[ruleId];
|
|
11
|
+
const level = args.settings.messageLintRuleLevels?.[rule.id];
|
|
14
12
|
if (level === undefined) {
|
|
15
|
-
throw Error("No lint level provided for lint rule: " +
|
|
13
|
+
throw Error("No lint level provided for lint rule: " + rule.id);
|
|
16
14
|
}
|
|
17
15
|
try {
|
|
18
|
-
await rule.
|
|
19
|
-
|
|
20
|
-
settings,
|
|
16
|
+
await rule.run({
|
|
17
|
+
message: args.message,
|
|
18
|
+
settings: args.settings,
|
|
21
19
|
report: (reportArgs) => {
|
|
22
20
|
reports.push({
|
|
23
|
-
ruleId,
|
|
21
|
+
ruleId: rule.id,
|
|
24
22
|
level,
|
|
25
|
-
|
|
23
|
+
messageId: reportArgs.messageId,
|
|
24
|
+
languageTag: reportArgs.languageTag,
|
|
25
|
+
body: reportArgs.body,
|
|
26
26
|
});
|
|
27
27
|
},
|
|
28
28
|
});
|
|
29
29
|
}
|
|
30
30
|
catch (error) {
|
|
31
|
-
errors.push(new MessagedLintRuleThrowedError(`Lint rule '${
|
|
31
|
+
errors.push(new MessagedLintRuleThrowedError(`Lint rule '${rule.id}' throwed while linting message "${args.message.id}".`, { cause: error }));
|
|
32
32
|
}
|
|
33
33
|
});
|
|
34
34
|
await Promise.all(promises);
|
|
@@ -2,20 +2,16 @@ import { beforeEach, describe, expect, test, vi } from "vitest";
|
|
|
2
2
|
import { lintSingleMessage } from "./lintSingleMessage.js";
|
|
3
3
|
import { tryCatch } from "@inlang/result";
|
|
4
4
|
const lintRule1 = {
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
},
|
|
10
|
-
message: vi.fn(),
|
|
5
|
+
id: "messageLintRule.r.1",
|
|
6
|
+
displayName: "",
|
|
7
|
+
description: "",
|
|
8
|
+
run: vi.fn(),
|
|
11
9
|
};
|
|
12
10
|
const lintRule2 = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
},
|
|
18
|
-
message: vi.fn(),
|
|
11
|
+
id: "messageLintRule.r.2",
|
|
12
|
+
displayName: "",
|
|
13
|
+
description: "",
|
|
14
|
+
run: vi.fn(),
|
|
19
15
|
};
|
|
20
16
|
const message1 = {};
|
|
21
17
|
const messages = [message1];
|
|
@@ -27,12 +23,14 @@ describe("lintSingleMessage", async () => {
|
|
|
27
23
|
// the lint function is un-opinionated and does not set a default level.
|
|
28
24
|
// opinionated users like the inlang instance can very well set a default level (separation of concerns)
|
|
29
25
|
test("it should throw if a lint level is not provided for a given lint rule", async () => {
|
|
30
|
-
lintRule1.
|
|
26
|
+
lintRule1.run.mockImplementation(({ report }) => report({}));
|
|
31
27
|
const result = await tryCatch(() => lintSingleMessage({
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
28
|
+
settings: {
|
|
29
|
+
sourceLanguageTag: "en",
|
|
30
|
+
languageTags: ["en"],
|
|
31
|
+
messageLintRuleLevels: {},
|
|
32
|
+
modules: [],
|
|
33
|
+
},
|
|
36
34
|
messages,
|
|
37
35
|
message: message1,
|
|
38
36
|
rules: [lintRule1],
|
|
@@ -41,14 +39,16 @@ describe("lintSingleMessage", async () => {
|
|
|
41
39
|
expect(result.data).toBeUndefined();
|
|
42
40
|
});
|
|
43
41
|
test("it should override the default lint level", async () => {
|
|
44
|
-
lintRule1.
|
|
42
|
+
lintRule1.run.mockImplementation(({ report }) => report({}));
|
|
45
43
|
const reports = await lintSingleMessage({
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
settings: {
|
|
45
|
+
sourceLanguageTag: "en",
|
|
46
|
+
languageTags: ["en"],
|
|
47
|
+
modules: [],
|
|
48
|
+
messageLintRuleLevels: {
|
|
49
|
+
[lintRule1.id]: "error",
|
|
50
|
+
},
|
|
48
51
|
},
|
|
49
|
-
ruleSettings: {},
|
|
50
|
-
sourceLanguageTag: "en",
|
|
51
|
-
languageTags: ["en"],
|
|
52
52
|
messages,
|
|
53
53
|
message: message1,
|
|
54
54
|
rules: [lintRule1],
|
|
@@ -56,18 +56,18 @@ describe("lintSingleMessage", async () => {
|
|
|
56
56
|
expect(reports.data[0]?.level).toBe("error");
|
|
57
57
|
});
|
|
58
58
|
test("it should pass the correct settings", async () => {
|
|
59
|
-
const settings = {
|
|
60
|
-
const fn = vi.fn();
|
|
61
|
-
lintRule1.message.mockImplementation(({ settings }) => fn(settings));
|
|
62
|
-
await lintSingleMessage({
|
|
63
|
-
ruleLevels: {
|
|
64
|
-
[lintRule1.meta.id]: "warning",
|
|
65
|
-
},
|
|
66
|
-
ruleSettings: {
|
|
67
|
-
[lintRule1.meta.id]: settings,
|
|
68
|
-
},
|
|
59
|
+
const settings = {
|
|
69
60
|
sourceLanguageTag: "en",
|
|
70
61
|
languageTags: ["en"],
|
|
62
|
+
modules: [],
|
|
63
|
+
messageLintRuleLevels: {
|
|
64
|
+
[lintRule1.id]: "warning",
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
const fn = vi.fn();
|
|
68
|
+
lintRule1.run.mockImplementation(({ settings }) => fn(settings));
|
|
69
|
+
await lintSingleMessage({
|
|
70
|
+
settings,
|
|
71
71
|
messages,
|
|
72
72
|
message: message1,
|
|
73
73
|
rules: [lintRule1],
|
|
@@ -78,21 +78,23 @@ describe("lintSingleMessage", async () => {
|
|
|
78
78
|
test("it should await all rules", async () => {
|
|
79
79
|
let m1Called = false;
|
|
80
80
|
let m2Called = false;
|
|
81
|
-
lintRule1.
|
|
81
|
+
lintRule1.run.mockImplementation(() => {
|
|
82
82
|
m1Called = true;
|
|
83
83
|
});
|
|
84
|
-
lintRule2.
|
|
84
|
+
lintRule2.run.mockImplementation(async () => {
|
|
85
85
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
86
86
|
m2Called = true;
|
|
87
87
|
});
|
|
88
88
|
await lintSingleMessage({
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
settings: {
|
|
90
|
+
sourceLanguageTag: "en",
|
|
91
|
+
languageTags: ["en"],
|
|
92
|
+
modules: [],
|
|
93
|
+
messageLintRuleLevels: {
|
|
94
|
+
[lintRule1.id]: "warning",
|
|
95
|
+
[lintRule2.id]: "warning",
|
|
96
|
+
},
|
|
92
97
|
},
|
|
93
|
-
ruleSettings: {},
|
|
94
|
-
sourceLanguageTag: "en",
|
|
95
|
-
languageTags: ["en"],
|
|
96
98
|
messages,
|
|
97
99
|
message: message1,
|
|
98
100
|
rules: [lintRule1, lintRule2],
|
|
@@ -102,49 +104,53 @@ describe("lintSingleMessage", async () => {
|
|
|
102
104
|
});
|
|
103
105
|
test("it should process all rules in parallel", async () => {
|
|
104
106
|
const fn = vi.fn();
|
|
105
|
-
lintRule1.
|
|
106
|
-
fn(lintRule1.
|
|
107
|
+
lintRule1.run.mockImplementation(async () => {
|
|
108
|
+
fn(lintRule1.id, "before");
|
|
107
109
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
108
|
-
fn(lintRule1.
|
|
110
|
+
fn(lintRule1.id, "after");
|
|
109
111
|
});
|
|
110
|
-
lintRule2.
|
|
111
|
-
fn(lintRule2.
|
|
112
|
+
lintRule2.run.mockImplementation(async () => {
|
|
113
|
+
fn(lintRule2.id, "before");
|
|
112
114
|
await new Promise((resolve) => setTimeout(resolve, 0));
|
|
113
|
-
fn(lintRule2.
|
|
115
|
+
fn(lintRule2.id, "after");
|
|
114
116
|
});
|
|
115
117
|
await lintSingleMessage({
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
118
|
+
settings: {
|
|
119
|
+
sourceLanguageTag: "en",
|
|
120
|
+
languageTags: ["en"],
|
|
121
|
+
modules: [],
|
|
122
|
+
messageLintRuleLevels: {
|
|
123
|
+
[lintRule1.id]: "warning",
|
|
124
|
+
[lintRule2.id]: "warning",
|
|
125
|
+
},
|
|
119
126
|
},
|
|
120
|
-
ruleSettings: {},
|
|
121
|
-
sourceLanguageTag: "en",
|
|
122
|
-
languageTags: ["en"],
|
|
123
127
|
messages,
|
|
124
128
|
message: message1,
|
|
125
129
|
rules: [lintRule1, lintRule2],
|
|
126
130
|
});
|
|
127
131
|
expect(fn).toHaveBeenCalledTimes(4);
|
|
128
|
-
expect(fn).toHaveBeenNthCalledWith(1, lintRule1.
|
|
129
|
-
expect(fn).toHaveBeenNthCalledWith(2, lintRule2.
|
|
130
|
-
expect(fn).toHaveBeenNthCalledWith(3, lintRule1.
|
|
131
|
-
expect(fn).toHaveBeenNthCalledWith(4, lintRule2.
|
|
132
|
+
expect(fn).toHaveBeenNthCalledWith(1, lintRule1.id, "before");
|
|
133
|
+
expect(fn).toHaveBeenNthCalledWith(2, lintRule2.id, "before");
|
|
134
|
+
expect(fn).toHaveBeenNthCalledWith(3, lintRule1.id, "after");
|
|
135
|
+
expect(fn).toHaveBeenNthCalledWith(4, lintRule2.id, "after");
|
|
132
136
|
});
|
|
133
137
|
test("it should not abort the linting process when errors occur", async () => {
|
|
134
|
-
lintRule1.
|
|
138
|
+
lintRule1.run.mockImplementation(() => {
|
|
135
139
|
throw new Error("error");
|
|
136
140
|
});
|
|
137
|
-
lintRule2.
|
|
141
|
+
lintRule2.run.mockImplementation(({ report }) => {
|
|
138
142
|
report({});
|
|
139
143
|
});
|
|
140
144
|
const result = await lintSingleMessage({
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
145
|
+
settings: {
|
|
146
|
+
sourceLanguageTag: "en",
|
|
147
|
+
languageTags: ["en"],
|
|
148
|
+
modules: [],
|
|
149
|
+
messageLintRuleLevels: {
|
|
150
|
+
[lintRule1.id]: "warning",
|
|
151
|
+
[lintRule2.id]: "warning",
|
|
152
|
+
},
|
|
144
153
|
},
|
|
145
|
-
ruleSettings: {},
|
|
146
|
-
sourceLanguageTag: "en",
|
|
147
|
-
languageTags: ["en"],
|
|
148
154
|
messages,
|
|
149
155
|
message: message1,
|
|
150
156
|
rules: [lintRule1, lintRule2],
|
|
@@ -8,11 +8,11 @@ import { type NodeishFilesystemSubset } from "./versionedInterfaces.js";
|
|
|
8
8
|
* and supporting legacy resolvedModules such as CJS.
|
|
9
9
|
*
|
|
10
10
|
*/
|
|
11
|
-
export declare const
|
|
12
|
-
|
|
11
|
+
export declare const loadProject: (args: {
|
|
12
|
+
settingsFilePath: string;
|
|
13
13
|
nodeishFs: NodeishFilesystemSubset;
|
|
14
14
|
_import?: ImportFunction | undefined;
|
|
15
15
|
_capture?: ((id: string, props: Record<string, unknown>) => void) | undefined;
|
|
16
16
|
}) => Promise<InlangProject>;
|
|
17
17
|
export declare function createSubscribable<T>(signal: () => T): Subscribable<T>;
|
|
18
|
-
//# sourceMappingURL=
|
|
18
|
+
//# sourceMappingURL=loadProject.d.ts.map
|
|
@@ -0,0 +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;AAahF,OAAO,EAA4B,KAAK,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAMjG;;;;;;GAMG;AACH,eAAO,MAAM,WAAW;sBACL,MAAM;eACb,uBAAuB;;qBAElB,MAAM,SAAS,OAAO,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI;MAC5D,QAAQ,aAAa,CAmLxB,CAAA;AAsGD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAQtE"}
|