@hyperse/eslint-config-hyperse
Version:
🛠These are settings for TypeScript / ESLint / Prettier in a project
31 lines (30 loc) • 919 B
JavaScript
//#region src/prettierShared.ts
const TAILWIND_PLUGIN = "prettier-plugin-tailwindcss";
const prettierBaseOptions = {
semi: true,
singleQuote: true,
trailingComma: "es5"
};
/**
* Ensures `prettier-plugin-tailwindcss` is present exactly once and last, per
* https://github.com/tailwindlabs/prettier-plugin-tailwindcss#compatibility-with-other-prettier-plugins
*/
function finalizePrettierPlugins(plugins) {
return [...normalizePlugins(plugins).filter((p) => p !== TAILWIND_PLUGIN), TAILWIND_PLUGIN];
}
function normalizePlugins(plugins) {
if (plugins === void 0) return [];
return Array.isArray(plugins) ? [...plugins] : [plugins];
}
//#endregion
//#region src/definePrettierConfig.ts
const definePrettierConfig = (config = {}) => {
const { plugins, ...rest } = config;
return {
...prettierBaseOptions,
...rest,
plugins: finalizePrettierPlugins(plugins)
};
};
//#endregion
export { definePrettierConfig };