feat: generate schema in both version-specific and latest directories

Co-Authored-By: Kazuki Yamada <koukun0120@gmail.com>
This commit is contained in:
Devin AI
2025-05-18 09:58:42 +00:00
parent 9cf32f45ff
commit f8511f8a17
2 changed files with 140 additions and 0 deletions

View File

@@ -37,7 +37,13 @@ const generateSchema = async () => {
const versionedOutputPath = path.resolve(versionedOutputDir, 'schema.json');
await fs.writeFile(versionedOutputPath, JSON.stringify(schemaWithMeta, null, 2), 'utf-8');
const latestOutputDir = path.resolve(baseOutputDir, 'latest');
await fs.mkdir(latestOutputDir, { recursive: true });
const latestOutputPath = path.resolve(latestOutputDir, 'schema.json');
await fs.writeFile(latestOutputPath, JSON.stringify(schemaWithMeta, null, 2), 'utf-8');
console.log(`Schema generated at ${versionedOutputPath}`);
console.log(`Schema also generated at ${latestOutputPath}`);
};
generateSchema().catch(console.error);

View File

@@ -0,0 +1,134 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"$schema": {
"type": "string"
},
"input": {
"type": "object",
"properties": {
"maxFileSize": {
"type": "number"
}
},
"additionalProperties": false
},
"output": {
"type": "object",
"properties": {
"filePath": {
"type": "string"
},
"style": {
"type": "string",
"enum": [
"xml",
"markdown",
"plain"
]
},
"parsableStyle": {
"type": "boolean"
},
"headerText": {
"type": "string"
},
"instructionFilePath": {
"type": "string"
},
"fileSummary": {
"type": "boolean"
},
"directoryStructure": {
"type": "boolean"
},
"files": {
"type": "boolean"
},
"removeComments": {
"type": "boolean"
},
"removeEmptyLines": {
"type": "boolean"
},
"compress": {
"type": "boolean"
},
"topFilesLength": {
"type": "number"
},
"showLineNumbers": {
"type": "boolean"
},
"copyToClipboard": {
"type": "boolean"
},
"includeEmptyDirectories": {
"type": "boolean"
},
"git": {
"type": "object",
"properties": {
"sortByChanges": {
"type": "boolean"
},
"sortByChangesMaxCommits": {
"type": "number"
},
"includeDiffs": {
"type": "boolean"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"include": {
"type": "array",
"items": {
"type": "string"
}
},
"ignore": {
"type": "object",
"properties": {
"useGitignore": {
"type": "boolean"
},
"useDefaultPatterns": {
"type": "boolean"
},
"customPatterns": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"security": {
"type": "object",
"properties": {
"enableSecurityCheck": {
"type": "boolean"
}
},
"additionalProperties": false
},
"tokenCount": {
"type": "object",
"properties": {
"encoding": {
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false,
"title": "Repomix Configuration",
"description": "Schema for repomix.config.json configuration file"
}