1/**
2 * @param {string[]} filenames
3 * @returns {string}
4 */
5const filenamesToAjvOption = (filenames) => filenames.map((filename) => `-d ${filename}`).join(' ');
6
7/** @satisfies {import('lint-staged').Config} */
8const config = {
9 'icons/*.svg': [
10 'node ./scripts/optimizeStagedSvgs.mjs',
11 'node ./scripts/generateNextJSAliases.mjs',
12 ],
13 'icons/*.json': (filenames) => [
14 `ajv --spec=draft2020 -s icon.schema.json ${filenamesToAjvOption(filenames)}`,
15 `prettier --write ${filenames.join(' ')}`,
16 ],
17 'categories/*.json': (filenames) => [
18 `ajv --spec=draft2020 -s category.schema.json ${filenamesToAjvOption(filenames)}`,
19 `prettier --write ${filenames.join(' ')}`,
20 ],
21};
22
23export default config;