lint: reenable json schema checks

This commit is contained in:
Valentyne Stigloher 2025-08-28 11:45:29 +02:00
parent 323daf29b1
commit 6700c2c116
2 changed files with 35 additions and 38 deletions

View File

@ -83,25 +83,24 @@ export default withNuxt(
}, },
}, },
eslintPluginJsonSchemaValidator.configs['flat/base'], eslintPluginJsonSchemaValidator.configs['flat/base'],
// ! JSON Schema generation fails and causes ESLint to crash {
// { name: 'pronouns-page/validation',
// name: 'pronouns-page/validation', files: ['locale/**/*.suml'],
// files: ['locale/**/*.suml'], rules: {
// rules: { 'json-schema-validator/no-invalid': ['error', {
// 'json-schema-validator/no-invalid': ['error', { schemas: [
// schemas: [ {
// { fileMatch: ['locale/*/config.suml'],
// fileMatch: ['locale/*/config.suml'], schema: 'locale/config.schema.json',
// schema: 'locale/config.schema.json', },
// }, {
// { fileMatch: ['locale/*/nouns/nounsData.suml'],
// fileMatch: ['locale/*/nouns/nounsData.suml'], schema: 'locale/nounsData.schema.json',
// schema: 'locale/nounsData.schema.json', },
// }, ],
// ], }],
// }], },
// }, },
// },
) )
.override('nuxt/javascript', { .override('nuxt/javascript', {
rules: { rules: {

View File

@ -1,6 +1,6 @@
import fs from 'fs/promises'; import fs from 'fs/promises';
// import { createGenerator } from 'ts-json-schema-generator'; import { createGenerator } from 'ts-json-schema-generator';
import type { Config } from '~~/locale/config.ts'; import type { Config } from '~~/locale/config.ts';
import localeDescriptions from '~~/locale/locales.ts'; import localeDescriptions from '~~/locale/locales.ts';
@ -8,21 +8,20 @@ import { loadSuml } from '~~/server/loader.ts';
const __dirname = new URL('.', import.meta.url).pathname; const __dirname = new URL('.', import.meta.url).pathname;
// const generateJsonSchema = async (path: string, typeName: string) => { const generateJsonSchema = async (path: string, typeName: string) => {
// const schema = createGenerator({ const schema = createGenerator({
// path, path,
// tsconfig: `${__dirname}/../.nuxt/tsconfig.node.json`, tsconfig: `${__dirname}/../.nuxt/tsconfig.node.json`,
// strictTuples: true, strictTuples: true,
// markdownDescription: true, markdownDescription: true,
// // speed up schema generation; type checking happens separately // speed up schema generation; type checking happens separately
// skipTypeCheck: true, skipTypeCheck: true,
// }).createSchema(typeName); }).createSchema(typeName);
await fs.writeFile(
// await fs.writeFile( `${__dirname}/${typeName[0].toLowerCase()}${typeName.substring(1)}.schema.json`,
// `${__dirname}/${typeName[0].toLowerCase()}${typeName.substring(1)}.schema.json`, `${JSON.stringify(schema, null, 4)}\n`,
// `${JSON.stringify(schema, null, 4)}\n`, );
// ); };
// };
const generateFontsModule = async () => { const generateFontsModule = async () => {
const configByLocale = Object.fromEntries(await Promise.all(localeDescriptions.map(async (locale) => { const configByLocale = Object.fromEntries(await Promise.all(localeDescriptions.map(async (locale) => {
@ -39,8 +38,7 @@ const generateFontsModule = async () => {
}; };
await Promise.all([ await Promise.all([
// ! throws errors generateJsonSchema(`${__dirname}/config.ts`, 'Config'),
// generateJsonSchema(`${__dirname}/config.ts`, 'Config'), generateJsonSchema(`${__dirname}/../src/nouns.ts`, 'NounsData'),
// generateJsonSchema(`${__dirname}/../src/nouns.ts`, 'NounsData'),
generateFontsModule(), generateFontsModule(),
]); ]);