Skip to content

Commit f23de49

Browse files
chore: refactor config initialisation for CLI to allow easy extension from other config sources as well MCP-288 (#729)
1 parent 53143ee commit f23de49

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+1023
-1136
lines changed

eslint-rules/enforce-zod-v4.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
import path from "path";
33

44
// The file that is allowed to import from zod/v4
5-
const configFilePath = path.resolve(import.meta.dirname, "../src/common/config.ts");
6-
const schemasFilePath = path.resolve(import.meta.dirname, "../src/common/schemas.ts");
5+
const configFilePath = path.resolve(import.meta.dirname, "../src/common/config/userConfig.ts");
76

87
// Ref: https://eslint.org/docs/latest/extend/custom-rules
98
export default {

eslint-rules/enforce-zod-v4.test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,19 @@ const ruleTester = new RuleTester({
1515
});
1616

1717
describe("enforce-zod-v4", () => {
18-
it("should allow zod/v4 imports in config.ts", () => {
18+
it("should allow zod/v4 imports in userConfig.ts", () => {
1919
ruleTester.run("enforce-zod-v4", rule, {
2020
valid: [
2121
{
22-
filename: resolve("src/common/config.ts"),
22+
filename: resolve("src/common/config/userConfig.ts"),
2323
code: 'import { z } from "zod/v4";\n',
2424
},
2525
{
26-
filename: resolve("src/common/config.ts"),
26+
filename: resolve("src/common/config/userConfig.ts"),
2727
code: 'import * as z from "zod/v4";\n',
2828
},
2929
{
30-
filename: resolve("src/common/config.ts"),
30+
filename: resolve("src/common/config/userConfig.ts"),
3131
code: 'import type { ZodType } from "zod/v4";\n',
3232
},
3333
],
@@ -63,7 +63,7 @@ describe("enforce-zod-v4", () => {
6363
code: 'import { something } from "some-package";\n',
6464
},
6565
{
66-
filename: resolve("src/common/config.ts"),
66+
filename: resolve("src/common/config/userConfig.ts"),
6767
code: 'import path from "path";\n',
6868
},
6969
{
@@ -127,7 +127,7 @@ describe("enforce-zod-v4", () => {
127127
ruleTester.run("enforce-zod-v4", rule, {
128128
valid: [
129129
{
130-
filename: resolve("src/common/config.ts"),
130+
filename: resolve("src/common/config/userConfig.ts"),
131131
code: `import { z } from "zod/v4";
132132
import path from "path";
133133
import type { UserConfig } from "./types.js";

eslint-rules/no-config-imports.js

Lines changed: 0 additions & 75 deletions
This file was deleted.

eslint-rules/no-config-imports.test.js

Lines changed: 0 additions & 69 deletions
This file was deleted.

eslint.config.js

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import globals from "globals";
55
import tseslint from "typescript-eslint";
66
import eslintPluginPrettierRecommended from "eslint-plugin-prettier/recommended";
77
import vitestPlugin from "@vitest/eslint-plugin";
8-
import noConfigImports from "./eslint-rules/no-config-imports.js";
98
import enforceZodV4 from "./eslint-rules/enforce-zod-v4.js";
109

1110
const testFiles = ["tests/**/*.test.ts", "tests/**/*.ts"];
@@ -68,19 +67,13 @@ export default defineConfig([
6867
{
6968
files: ["src/**/*.ts"],
7069
plugins: {
71-
"no-config-imports": {
72-
rules: {
73-
"no-config-imports": noConfigImports,
74-
},
75-
},
7670
"enforce-zod-v4": {
7771
rules: {
7872
"enforce-zod-v4": enforceZodV4,
7973
},
8074
},
8175
},
8276
rules: {
83-
"no-config-imports/no-config-imports": "error",
8477
"enforce-zod-v4/enforce-zod-v4": "error",
8578
},
8679
},

scripts/generateArguments.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
import { readFileSync, writeFileSync } from "fs";
1212
import { join, dirname } from "path";
1313
import { fileURLToPath } from "url";
14-
import { UserConfigSchema, configRegistry } from "../src/common/config.js";
14+
import { UserConfigSchema, configRegistry } from "../src/common/config/userConfig.js";
1515
import assert from "assert";
1616
import { execSync } from "child_process";
17-
import { OPTIONS } from "../src/common/argsParserOptions.js";
17+
import { OPTIONS } from "../src/common/config/argsParserOptions.js";
1818

1919
const __filename = fileURLToPath(import.meta.url);
2020
const __dirname = dirname(__filename);

src/common/atlas/roles.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import type { UserConfig } from "../config.js";
1+
import type { UserConfig } from "../config/userConfig.js";
22
import type { DatabaseUserRole } from "./openapi.js";
33

44
const readWriteRole: DatabaseUserRole = {

0 commit comments

Comments
 (0)