UNPKG

marked-code-format

Version:

A marked extension for formatting code blocks using Prettier

2 lines (1 loc) 2.23 kB
"use strict";const b=require("attributes-parser"),u=require("prettier");function g(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const s in e)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,r.get?r:{enumerable:!0,get:()=>e[s]})}}return t.default=e,Object.freeze(t)}const n=g(u),y={javascript:"babel",js:"babel",node:"babel",jsx:"babel",javascriptreact:"babel",react:"babel",typescript:"babel-ts",ts:"babel-ts",tsx:"babel-ts",flow:"babel-flow",css:"css",scss:"scss",less:"less",handlebars:"glimmer",json:"json",jsonc:"json",geojson:"json",jsonl:"json",topojson:"json",json5:"json5","json.stringify":"json-stringify",graphql:"graphql",pandoc:"markdown",markdown:"markdown",md:"markdown",mdx:"mdx",html:"html",xhtml:"html",vue:"vue",angular:"angular",lwc:"lwc",yaml:"yaml",yml:"yaml",ansible:"yaml","home-assistant":"yaml"},d={php:"php",inc:"php",pug:"pug",jade:"pug",ruby:"ruby",jruby:"ruby",macruby:"ruby",rb:"ruby",rbx:"ruby",xml:"xml",rss:"xml",xsd:"xml",wsdl:"xml",apex:"apex-anonymous",astro:"astro",elm:"elm",erb:"erb",rhtml:"erb","html+ruby":"erb",glsl:"glsl-parser",gohtml:"go-template",gotmpl:"go-template",java:"java",jsonata:"JSONata",kotlin:"kotlin",kt:"kotlin",ktm:"kotlin",kts:"kotlin",motoko:"motoko-tt-parse",mo:"motoko-tt-parse",nginx:"nginx",prisma:"prisma-parse",properties:"dot-properties",ini:"dot-properties",dosini:"dot-properties",rust:"jinx-rust",rs:"jinx-rust",sql:"sql",solidity:"solidity-parse",sol:"solidity-parse",svelte:"svelte",toml:"toml"},i=/\s*prettier(?:=(?:"[^"]*"|'[^']*'|[^"'\s]*))?$|prettier(?:=(?:"[^"]*"|'[^']*'|[^"'\s]*))?\s*/g;function j(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function f(e={}){return{async:!0,async walkTokens(t){var o,l;if(t.type!=="code"||!t.lang)return;const{prettier:s}=b(t.lang);if(!s)return;const r={...y,...d},p=Object.keys(r),a=t.lang.split(" ")[0];if(!p.includes(a.toLowerCase()))return;const c=typeof process<"u"?await n.resolveConfig(process.cwd()):{};try{t.raw=(o=t.raw)==null?void 0:o.replace(i,""),t.lang=(l=t.lang)==null?void 0:l.replace(i,""),t.text=await n.format(t.text,{parser:r[String(a)],...c,...e,...j(s)?s:{}})}catch(m){console.error(m)}}}}module.exports=f;