diff --git a/.github/workflows/get-backend-memory.yml b/.github/workflows/get-backend-memory.yml index b14885ec34..458f303f0f 100644 --- a/.github/workflows/get-backend-memory.yml +++ b/.github/workflows/get-backend-memory.yml @@ -57,7 +57,7 @@ jobs: - name: Copy Configure run: cp .github/misskey/test.yml .config/default.yml - name: Compile Configure - run: pnpm convert:config + run: pnpm compile-config - name: Build run: pnpm build - name: Run migrations diff --git a/package.json b/package.json index e72bb70d5f..003e363a94 100644 --- a/package.json +++ b/package.json @@ -22,15 +22,15 @@ ], "private": true, "scripts": { - "convert:config": "cd packages/backend && pnpm convert:config", + "compile-config": "cd packages/backend && pnpm compile-config", "build-pre": "node ./scripts/build-pre.js", "build-assets": "node ./scripts/build-assets.mjs", "build": "pnpm build-pre && pnpm -r build && pnpm build-assets", "build-storybook": "pnpm --filter frontend build-storybook", "build-misskey-js-with-types": "pnpm build-pre && pnpm --filter backend... --filter=!misskey-js build && pnpm --filter backend generate-api-json --no-build && ncp packages/backend/built/api.json packages/misskey-js/generator/api.json && pnpm --filter misskey-js update-autogen-code && pnpm --filter misskey-js build && pnpm --filter misskey-js api", - "start": "pnpm check:connect && cd packages/backend && pnpm convert:config && node ./built/boot/entry.js", - "start:inspect": "cd packages/backend && pnpm convert:config && node --inspect ./built/boot/entry.js", - "start:test": "ncp ./.github/misskey/test.yml ./.config/test.yml && cd packages/backend && pnpm convert:config && cross-env NODE_ENV=test node ./built/boot/entry.js", + "start": "pnpm check:connect && cd packages/backend && pnpm compile-config && node ./built/boot/entry.js", + "start:inspect": "cd packages/backend && pnpm compile-config && node --inspect ./built/boot/entry.js", + "start:test": "ncp ./.github/misskey/test.yml ./.config/test.yml && cd packages/backend && pnpm compile-config && cross-env NODE_ENV=test node ./built/boot/entry.js", "cli": "cd packages/backend && pnpm cli", "init": "pnpm migrate", "migrate": "cd packages/backend && pnpm migrate", diff --git a/packages/backend/package.json b/packages/backend/package.json index 25d84a1e14..0e70aab317 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -7,37 +7,37 @@ "node": "^22.15.0 || ^24.10.0" }, "scripts": { - "start": "pnpm convert:config && node ./built/boot/entry.js", - "start:inspect": "pnpm convert:config && node --inspect ./built/boot/entry.js", - "start:test": "pnpm convert:config && cross-env NODE_ENV=test node ./built/boot/entry.js", - "migrate": "pnpm convert:config && pnpm typeorm migration:run -d ormconfig.js", - "revert": "pnpm convert:config && pnpm typeorm migration:revert -d ormconfig.js", - "cli": "pnpm convert:config && node ./built/boot/cli.js", - "check:connect": "pnpm convert:config && node ./scripts/check_connect.js", - "convert:config": "node ./scripts/convert_config.js", + "start": "pnpm compile-config && node ./built/boot/entry.js", + "start:inspect": "pnpm compile-config && node --inspect ./built/boot/entry.js", + "start:test": "pnpm compile-config && cross-env NODE_ENV=test node ./built/boot/entry.js", + "migrate": "pnpm compile-config && pnpm typeorm migration:run -d ormconfig.js", + "revert": "pnpm compile-config && pnpm typeorm migration:revert -d ormconfig.js", + "cli": "pnpm compile-config && node ./built/boot/cli.js", + "check:connect": "pnpm compile-config && node ./scripts/check_connect.js", + "compile-config": "node ./scripts/compile_config.js", "build": "swc src -d built -D --strip-leading-paths", "build:test": "swc test-server -d built-test -D --config-file test-server/.swcrc --strip-leading-paths", "watch:swc": "swc src -d built -D -w --strip-leading-paths", "build:tsc": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json", - "watch": "pnpm convert:config && node ./scripts/watch.mjs", + "watch": "pnpm compile-config && node ./scripts/watch.mjs", "restart": "pnpm build && pnpm start", - "dev": "pnpm convert:config && node ./scripts/dev.mjs", + "dev": "pnpm compile-config && node ./scripts/dev.mjs", "typecheck": "tsc --noEmit && tsc -p test --noEmit && tsc -p test-federation --noEmit", "eslint": "eslint --quiet \"{src,test-federation}/**/*.ts\"", "lint": "pnpm typecheck && pnpm eslint", - "jest": "pnpm convert:config && cross-env NODE_ENV=test node ./jest.js --forceExit --config jest.config.unit.cjs", - "jest:e2e": "pnpm convert:config && cross-env NODE_ENV=test node ./jest.js --forceExit --config jest.config.e2e.cjs", - "jest:fed": "pnpm convert:config && node ./jest.js --forceExit --config jest.config.fed.cjs", - "jest-and-coverage": "pnpm convert:config && cross-env NODE_ENV=test node ./jest.js --coverage --forceExit --config jest.config.unit.cjs", - "jest-and-coverage:e2e": "pnpm convert:config && cross-env NODE_ENV=test node ./jest.js --coverage --forceExit --config jest.config.e2e.cjs", - "jest-clear": "pnpm convert:config && cross-env NODE_ENV=test node ./jest.js --clearCache", + "jest": "pnpm compile-config && cross-env NODE_ENV=test node ./jest.js --forceExit --config jest.config.unit.cjs", + "jest:e2e": "pnpm compile-config && cross-env NODE_ENV=test node ./jest.js --forceExit --config jest.config.e2e.cjs", + "jest:fed": "pnpm compile-config && node ./jest.js --forceExit --config jest.config.fed.cjs", + "jest-and-coverage": "pnpm compile-config && cross-env NODE_ENV=test node ./jest.js --coverage --forceExit --config jest.config.unit.cjs", + "jest-and-coverage:e2e": "pnpm compile-config && cross-env NODE_ENV=test node ./jest.js --coverage --forceExit --config jest.config.e2e.cjs", + "jest-clear": "pnpm compile-config && cross-env NODE_ENV=test node ./jest.js --clearCache", "test": "pnpm jest", "test:e2e": "pnpm build && pnpm build:test && pnpm jest:e2e", "test:fed": "pnpm jest:fed", "test-and-coverage": "pnpm jest-and-coverage", "test-and-coverage:e2e": "pnpm build && pnpm build:test && pnpm jest-and-coverage:e2e", "check-migrations": "node scripts/check_migrations_clean.js", - "generate-api-json": "pnpm convert:config && node ./scripts/generate_api_json.js" + "generate-api-json": "pnpm compile-config && node ./scripts/generate_api_json.js" }, "optionalDependencies": { "@swc/core-android-arm64": "1.3.11", diff --git a/packages/backend/scripts/convert_config.js b/packages/backend/scripts/compile_config.js similarity index 69% rename from packages/backend/scripts/convert_config.js rename to packages/backend/scripts/compile_config.js index 92039998dd..63311df1ae 100644 --- a/packages/backend/scripts/convert_config.js +++ b/packages/backend/scripts/compile_config.js @@ -19,34 +19,33 @@ const _dirname = dirname(_filename); const configDir = resolve(_dirname, '../../../.config'); const OUTPUT_PATH = resolve(configDir, '.config.json'); +// TODO: yamlのパースに失敗したときのエラーハンドリング + /** * YAMLファイルをJSONファイルに変換 * @param {string} ymlPath - YAMLファイルのパス - * @param {string} jsonPath - JSONファイルの出力パス */ -function convertYamlToJson(ymlPath, jsonPath) { +function yamlToJson(ymlPath) { if (!fs.existsSync(ymlPath)) { - console.log(`skipped: ${ymlPath} is not found`); - return; + console.warn(`YAML file not found: ${ymlPath}`); + process.exit(1); } + console.log(`${ymlPath} → ${OUTPUT_PATH}`); + const yamlContent = fs.readFileSync(ymlPath, 'utf-8'); const jsonContent = yaml.load(yamlContent); - fs.writeFileSync(jsonPath, JSON.stringify({ + fs.writeFileSync(OUTPUT_PATH, JSON.stringify({ '_NOTE_': 'This file is auto-generated from YAML file. DO NOT EDIT.', ...jsonContent, }), 'utf-8'); - console.log(`✓ ${ymlPath} → ${jsonPath}`); } if (process.env.MISSKEY_CONFIG_YML) { const customYmlPath = resolve(configDir, process.env.MISSKEY_CONFIG_YML); - convertYamlToJson(customYmlPath, OUTPUT_PATH); + yamlToJson(customYmlPath); } else { - convertYamlToJson( - resolve(configDir, process.env.NODE_ENV === 'test' ? 'test.yml' : 'default.yml'), - OUTPUT_PATH, - ); + yamlToJson(resolve(configDir, process.env.NODE_ENV === 'test' ? 'test.yml' : 'default.yml')); } -console.log('Configuration compiled'); +console.log('Configuration compiled ✓'); diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts index be138b601b..4109c281cd 100644 --- a/packages/backend/src/config.ts +++ b/packages/backend/src/config.ts @@ -223,7 +223,7 @@ export const compiledConfigFilePath = resolve(configDir, '.config.json'); export function loadConfig(): Config { if (!fs.existsSync(compiledConfigFilePath)) { - throw new Error('Compiled configuration file not found. Try running \'pnpm convert:config\'.'); + throw new Error('Compiled configuration file not found. Try running \'pnpm compile-config\'.'); } const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../built/meta.json`, 'utf-8')); diff --git a/packages/backend/test-federation/compose.a.yml b/packages/backend/test-federation/compose.a.yml index 1d3d8fd404..511c269fe0 100644 --- a/packages/backend/test-federation/compose.a.yml +++ b/packages/backend/test-federation/compose.a.yml @@ -41,8 +41,8 @@ services: target: /misskey/.config/default.yml read_only: true - type: bind - source: ../scripts/convert_config.js - target: /misskey/packages/backend/scripts/convert_config.js + source: ../scripts/compile_config.js + target: /misskey/packages/backend/scripts/compile_config.js read_only: true db.a.test: diff --git a/packages/backend/test-federation/compose.b.yml b/packages/backend/test-federation/compose.b.yml index 9a3bfb8abe..0d2eafda68 100644 --- a/packages/backend/test-federation/compose.b.yml +++ b/packages/backend/test-federation/compose.b.yml @@ -41,8 +41,8 @@ services: target: /misskey/.config/default.yml read_only: true - type: bind - source: ../scripts/convert_config.js - target: /misskey/packages/backend/scripts/convert_config.js + source: ../scripts/compile_config.js + target: /misskey/packages/backend/scripts/compile_config.js read_only: true db.b.test: diff --git a/packages/backend/test-federation/compose.tpl.yml b/packages/backend/test-federation/compose.tpl.yml index ad9e127b3a..2a49558149 100644 --- a/packages/backend/test-federation/compose.tpl.yml +++ b/packages/backend/test-federation/compose.tpl.yml @@ -43,8 +43,8 @@ services: target: /misskey/packages/backend/package.json read_only: true - type: bind - source: ../scripts/convert_config.js - target: /misskey/packages/backend/scripts/convert_config.js + source: ../scripts/compile_config.js + target: /misskey/packages/backend/scripts/compile_config.js read_only: true - type: bind source: ../../misskey-js/built diff --git a/packages/backend/test-federation/compose.yml b/packages/backend/test-federation/compose.yml index 07c0e03f99..25475a89ab 100644 --- a/packages/backend/test-federation/compose.yml +++ b/packages/backend/test-federation/compose.yml @@ -55,8 +55,8 @@ services: target: /misskey/packages/backend/jest.js read_only: true - type: bind - source: ../scripts/convert_config.js - target: /misskey/packages/backend/scripts/convert_config.js + source: ../scripts/compile_config.js + target: /misskey/packages/backend/scripts/compile_config.js read_only: true - type: bind source: ../../misskey-js/built