@anolilab/prettier-config
Version:
Prettier shareable config for Anolilab.
1 lines • 4.43 kB
Source Map (JSON)
{"version":3,"sources":["../src/postinstall.ts"],"names":["existsSync","writeFile","join","env","exit","promisify","packageIsTypeModule","projectPath","writeFileAsync","configFile","writePrettierRc","filename","src_default","prettierPath","writePrettierIgnore","error"],"mappings":"yCAAA,OAAS,cAAAA,EAAY,aAAAC,MAAiB,KACtC,OAAS,QAAAC,MAAY,OACrB,OAAS,OAAAC,EAAK,QAAAC,MAAY,UAC1B,OAAS,aAAAC,MAAiB,OAE1B,OAAS,uBAAAC,EAAqB,eAAAC,MAAmB,+BAI7CJ,EAAI,KAAU,QACdC,EAAK,CAAC,EAGV,IAAMI,EAAiBH,EAAUJ,CAAS,EAE1C,QAAQ,IAAI,wCAAyCM,EAAa;AAAA,CAAI,EAEtE,IAAME,EAAa,cAKbC,EAAkB,SAAY,CAEhC,QAAWC,IAAY,CACnBF,EACA,GAAGA,CAAU,MACb,GAAGA,CAAU,OACb,GAAGA,CAAU,QACb,GAAGA,CAAU,SACb,GAAGA,CAAU,QACb,GAAGA,CAAU,OACb,GAAGA,CAAU,QACb,qBACA,qBACJ,EAEI,GAAIT,EAAWE,EAAKK,EAAaI,CAAQ,CAAC,EAAG,CACzC,QAAQ,KAAK,iBAAOA,CAAQ;AAAA;AAAA,EAEtC,KAAK,UAAUC,EAAS,OAAW,CAAC,CAAC;AAAA,CAAI,EAE/B,MACJ,CAGJ,IAAMC,EAAeX,EAAKK,EAAa,gBAAgB,EAEvD,MAAMC,EACFK,EACA,GAAGP,EAAsB,kDAAoD,oDAAoD;AAAA;AAAA,EAEvIA,EAAsB,iBAAmB,kBAAkB;AAAA;AAAA;AAAA,EAIrD,MACJ,CACJ,EAKMQ,EAAsB,SAAY,CACpC,IAAMD,EAAeX,EAAKK,EAAa,iBAAiB,EAGxD,GAAIP,EAAWa,CAAY,EAAG,CAC1B,QAAQ,KAAK,8CAAoC,EAEjD,MACJ,CAEA,MAAML,EACFK,EACA,GAAG,CAAC,OAAQ,OAAQ,QAAS,QAAS,QAAS,QAAS,YAAa,QAAS,UAAW,UAAW,MAAO,OAAQ,QAAS,WAAW,EAAE,KAAK;AAAA,CAAI,CAAC;AAAA,EACnJ,MACJ,CACJ,GAGC,SAAY,CACT,GAAI,CAEA,MAAM,QAAQ,IAAI,CAACH,EAAgB,EAAGI,EAAoB,CAAC,CAAC,EAE5D,QAAQ,IAAI,4CAAqC,EAEjDV,EAAK,CAAC,CACV,OAASW,EAAO,CACZ,QAAQ,IAAI,kCAA2B,EACvC,QAAQ,MAAMA,CAAK,EAEnBX,EAAK,CAAC,CACV,CACJ,GAAG","sourcesContent":["import { existsSync, writeFile } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { env, exit } from \"node:process\";\nimport { promisify } from \"node:util\";\n\nimport { packageIsTypeModule, projectPath } from \"@anolilab/package-json-utils\";\n\nimport content from \".\";\n\nif (env[\"CI\"] !== undefined) {\n exit(0);\n}\n\nconst writeFileAsync = promisify(writeFile);\n\nconsole.log(\"Configuring @anolilab/prettier-config\", projectPath, \"\\n\");\n\nconst configFile = \".prettierrc\";\n\n/**\n * Writes .prettierrc.${m|c}js if it doesn't exist. Warns if it exists.\n */\nconst writePrettierRc = async () => {\n // eslint-disable-next-line no-restricted-syntax,no-loops/no-loops\n for (const filename of [\n configFile,\n `${configFile}.js`,\n `${configFile}.cjs`,\n `${configFile}.json`,\n `${configFile}.json5`,\n `${configFile}.yaml`,\n `${configFile}.yml`,\n `${configFile}.toml`,\n \"prettier.config.js\",\n \"prettier.config.cjs\",\n ]) {\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(join(projectPath, filename))) {\n console.warn(`⚠️ ${filename} already exists;\nMake sure that it includes the following for @anolilab/prettier-config to work as it should:\n${JSON.stringify(content, undefined, 4)}\\n`);\n\n return;\n }\n }\n\n const prettierPath = join(projectPath, \".prettierrc.js\");\n\n await writeFileAsync(\n prettierPath,\n `${packageIsTypeModule ? 'import config from \"@anolilab/prettier-config\";' : 'var config = require(\"@anolilab/prettier-config\");'}\n\n${packageIsTypeModule ? \"export default\" : \"module.exports =\"} {\n ...config,\n}\n`,\n \"utf8\",\n );\n};\n\n/**\n * Writes .prettierignore if it doesn't exist. Warns if it exists.\n */\nconst writePrettierIgnore = async () => {\n const prettierPath = join(projectPath, \".prettierignore\");\n\n // eslint-disable-next-line security/detect-non-literal-fs-filename\n if (existsSync(prettierPath)) {\n console.warn(\"⚠️ .prettierignore already exists\");\n\n return;\n }\n\n await writeFileAsync(\n prettierPath,\n `${[\"*.md\", \"*.sh\", \"*.yml\", \"*.svg\", \"*.gif\", \"*.log\", \".DS_Store\", \"CNAME\", \"AUTHORS\", \"LICENSE\", \"es/\", \"lib/\", \"dist/\", \"coverage/\"].join(\"\\n\")}\\n`,\n \"utf8\",\n );\n};\n\n// eslint-disable-next-line unicorn/prefer-top-level-await\n(async () => {\n try {\n // eslint-disable-next-line compat/compat\n await Promise.all([writePrettierRc(), writePrettierIgnore()]);\n\n console.log(\"😎 Everything went well, have fun!\");\n\n exit(0);\n } catch (error) {\n console.log(\"😬 something went wrong:\");\n console.error(error);\n\n exit(1);\n }\n})();\n"]}