convertは元ファイルを変更するようなニュアンスを若干感じるのでcompileに改名

This commit is contained in:
syuilo 2025-12-03 18:52:14 +09:00
parent 4580ae1e30
commit a545f6890a
9 changed files with 42 additions and 43 deletions

View File

@ -57,7 +57,7 @@ jobs:
- name: Copy Configure - name: Copy Configure
run: cp .github/misskey/test.yml .config/default.yml run: cp .github/misskey/test.yml .config/default.yml
- name: Compile Configure - name: Compile Configure
run: pnpm convert:config run: pnpm compile-config
- name: Build - name: Build
run: pnpm build run: pnpm build
- name: Run migrations - name: Run migrations

View File

@ -22,15 +22,15 @@
], ],
"private": true, "private": true,
"scripts": { "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-pre": "node ./scripts/build-pre.js",
"build-assets": "node ./scripts/build-assets.mjs", "build-assets": "node ./scripts/build-assets.mjs",
"build": "pnpm build-pre && pnpm -r build && pnpm build-assets", "build": "pnpm build-pre && pnpm -r build && pnpm build-assets",
"build-storybook": "pnpm --filter frontend build-storybook", "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", "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": "pnpm check:connect && cd packages/backend && pnpm compile-config && node ./built/boot/entry.js",
"start:inspect": "cd packages/backend && pnpm convert:config && node --inspect ./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 convert:config && cross-env NODE_ENV=test node ./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", "cli": "cd packages/backend && pnpm cli",
"init": "pnpm migrate", "init": "pnpm migrate",
"migrate": "cd packages/backend && pnpm migrate", "migrate": "cd packages/backend && pnpm migrate",

View File

@ -7,37 +7,37 @@
"node": "^22.15.0 || ^24.10.0" "node": "^22.15.0 || ^24.10.0"
}, },
"scripts": { "scripts": {
"start": "pnpm convert:config && node ./built/boot/entry.js", "start": "pnpm compile-config && node ./built/boot/entry.js",
"start:inspect": "pnpm convert:config && node --inspect ./built/boot/entry.js", "start:inspect": "pnpm compile-config && node --inspect ./built/boot/entry.js",
"start:test": "pnpm convert:config && cross-env NODE_ENV=test node ./built/boot/entry.js", "start:test": "pnpm compile-config && cross-env NODE_ENV=test node ./built/boot/entry.js",
"migrate": "pnpm convert:config && pnpm typeorm migration:run -d ormconfig.js", "migrate": "pnpm compile-config && pnpm typeorm migration:run -d ormconfig.js",
"revert": "pnpm convert:config && pnpm typeorm migration:revert -d ormconfig.js", "revert": "pnpm compile-config && pnpm typeorm migration:revert -d ormconfig.js",
"cli": "pnpm convert:config && node ./built/boot/cli.js", "cli": "pnpm compile-config && node ./built/boot/cli.js",
"check:connect": "pnpm convert:config && node ./scripts/check_connect.js", "check:connect": "pnpm compile-config && node ./scripts/check_connect.js",
"convert:config": "node ./scripts/convert_config.js", "compile-config": "node ./scripts/compile_config.js",
"build": "swc src -d built -D --strip-leading-paths", "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", "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", "watch:swc": "swc src -d built -D -w --strip-leading-paths",
"build:tsc": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json", "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", "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", "typecheck": "tsc --noEmit && tsc -p test --noEmit && tsc -p test-federation --noEmit",
"eslint": "eslint --quiet \"{src,test-federation}/**/*.ts\"", "eslint": "eslint --quiet \"{src,test-federation}/**/*.ts\"",
"lint": "pnpm typecheck && pnpm eslint", "lint": "pnpm typecheck && pnpm eslint",
"jest": "pnpm convert:config && cross-env NODE_ENV=test node ./jest.js --forceExit --config jest.config.unit.cjs", "jest": "pnpm compile-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:e2e": "pnpm compile-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:fed": "pnpm compile-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": "pnpm compile-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-and-coverage:e2e": "pnpm compile-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-clear": "pnpm compile-config && cross-env NODE_ENV=test node ./jest.js --clearCache",
"test": "pnpm jest", "test": "pnpm jest",
"test:e2e": "pnpm build && pnpm build:test && pnpm jest:e2e", "test:e2e": "pnpm build && pnpm build:test && pnpm jest:e2e",
"test:fed": "pnpm jest:fed", "test:fed": "pnpm jest:fed",
"test-and-coverage": "pnpm jest-and-coverage", "test-and-coverage": "pnpm jest-and-coverage",
"test-and-coverage:e2e": "pnpm build && pnpm build:test && pnpm jest-and-coverage:e2e", "test-and-coverage:e2e": "pnpm build && pnpm build:test && pnpm jest-and-coverage:e2e",
"check-migrations": "node scripts/check_migrations_clean.js", "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": { "optionalDependencies": {
"@swc/core-android-arm64": "1.3.11", "@swc/core-android-arm64": "1.3.11",

View File

@ -19,34 +19,33 @@ const _dirname = dirname(_filename);
const configDir = resolve(_dirname, '../../../.config'); const configDir = resolve(_dirname, '../../../.config');
const OUTPUT_PATH = resolve(configDir, '.config.json'); const OUTPUT_PATH = resolve(configDir, '.config.json');
// TODO: yamlのパースに失敗したときのエラーハンドリング
/** /**
* YAMLファイルをJSONファイルに変換 * YAMLファイルをJSONファイルに変換
* @param {string} ymlPath - YAMLファイルのパス * @param {string} ymlPath - YAMLファイルのパス
* @param {string} jsonPath - JSONファイルの出力パス
*/ */
function convertYamlToJson(ymlPath, jsonPath) { function yamlToJson(ymlPath) {
if (!fs.existsSync(ymlPath)) { if (!fs.existsSync(ymlPath)) {
console.log(`skipped: ${ymlPath} is not found`); console.warn(`YAML file not found: ${ymlPath}`);
return; process.exit(1);
} }
console.log(`${ymlPath}${OUTPUT_PATH}`);
const yamlContent = fs.readFileSync(ymlPath, 'utf-8'); const yamlContent = fs.readFileSync(ymlPath, 'utf-8');
const jsonContent = yaml.load(yamlContent); 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.', '_NOTE_': 'This file is auto-generated from YAML file. DO NOT EDIT.',
...jsonContent, ...jsonContent,
}), 'utf-8'); }), 'utf-8');
console.log(`${ymlPath}${jsonPath}`);
} }
if (process.env.MISSKEY_CONFIG_YML) { if (process.env.MISSKEY_CONFIG_YML) {
const customYmlPath = resolve(configDir, process.env.MISSKEY_CONFIG_YML); const customYmlPath = resolve(configDir, process.env.MISSKEY_CONFIG_YML);
convertYamlToJson(customYmlPath, OUTPUT_PATH); yamlToJson(customYmlPath);
} else { } else {
convertYamlToJson( yamlToJson(resolve(configDir, process.env.NODE_ENV === 'test' ? 'test.yml' : 'default.yml'));
resolve(configDir, process.env.NODE_ENV === 'test' ? 'test.yml' : 'default.yml'),
OUTPUT_PATH,
);
} }
console.log('Configuration compiled'); console.log('Configuration compiled ✓');

View File

@ -223,7 +223,7 @@ export const compiledConfigFilePath = resolve(configDir, '.config.json');
export function loadConfig(): Config { export function loadConfig(): Config {
if (!fs.existsSync(compiledConfigFilePath)) { 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')); const meta = JSON.parse(fs.readFileSync(`${_dirname}/../../../built/meta.json`, 'utf-8'));

View File

@ -41,8 +41,8 @@ services:
target: /misskey/.config/default.yml target: /misskey/.config/default.yml
read_only: true read_only: true
- type: bind - type: bind
source: ../scripts/convert_config.js source: ../scripts/compile_config.js
target: /misskey/packages/backend/scripts/convert_config.js target: /misskey/packages/backend/scripts/compile_config.js
read_only: true read_only: true
db.a.test: db.a.test:

View File

@ -41,8 +41,8 @@ services:
target: /misskey/.config/default.yml target: /misskey/.config/default.yml
read_only: true read_only: true
- type: bind - type: bind
source: ../scripts/convert_config.js source: ../scripts/compile_config.js
target: /misskey/packages/backend/scripts/convert_config.js target: /misskey/packages/backend/scripts/compile_config.js
read_only: true read_only: true
db.b.test: db.b.test:

View File

@ -43,8 +43,8 @@ services:
target: /misskey/packages/backend/package.json target: /misskey/packages/backend/package.json
read_only: true read_only: true
- type: bind - type: bind
source: ../scripts/convert_config.js source: ../scripts/compile_config.js
target: /misskey/packages/backend/scripts/convert_config.js target: /misskey/packages/backend/scripts/compile_config.js
read_only: true read_only: true
- type: bind - type: bind
source: ../../misskey-js/built source: ../../misskey-js/built

View File

@ -55,8 +55,8 @@ services:
target: /misskey/packages/backend/jest.js target: /misskey/packages/backend/jest.js
read_only: true read_only: true
- type: bind - type: bind
source: ../scripts/convert_config.js source: ../scripts/compile_config.js
target: /misskey/packages/backend/scripts/convert_config.js target: /misskey/packages/backend/scripts/compile_config.js
read_only: true read_only: true
- type: bind - type: bind
source: ../../misskey-js/built source: ../../misskey-js/built