marko/lint-staged.config.js
2023-07-24 11:55:08 -04:00

20 lines
587 B
JavaScript

const escape = require("shell-quote").quote;
module.exports = {
"*.{json,css,md}": escapeFileNames(["prettier --write", "git add"]),
"*.{js,ts}": escapeFileNames(["eslint --fix", "prettier --write", "git add"]),
};
function escapeFileNames(commands) {
return (filenames) => {
const allFiles = filenames.join(" ");
const allFilesEscaped = filenames
.map((filename) => `"${escape([filename]).replace(/\\@/g, "@")}"`)
.join(" ");
return commands.map(
(command) =>
`${command} ${command === "eslint" ? allFiles : allFilesEscaped}`
);
};
}