@prismicio/client
Version:
The official JavaScript + TypeScript client library for Prismic
1 lines • 1.72 kB
Source Map (JSON)
{"version":3,"file":"escapeHTML.cjs","names":[],"sources":["../../src/lib/escapeHTML.ts"],"sourcesContent":["/*\n ** Core logic from https://github.com/component/escape-html\n ** Many thanks to @component\n */\n\nconst matchHtmlRegExp = /[\"'&<>]/\n\nexport const escapeHTML = (string?: string | null): string => {\n\tconst str = \"\" + string\n\tconst match = matchHtmlRegExp.exec(str)\n\n\tif (!match) {\n\t\treturn str\n\t}\n\n\tlet escape\n\tlet html = \"\"\n\tlet index = 0\n\tlet lastIndex = 0\n\n\tfor (index = match.index; index < str.length; index++) {\n\t\tswitch (str.charCodeAt(index)) {\n\t\t\tcase 34: // \"\n\t\t\t\tescape = \""\"\n\t\t\t\tbreak\n\t\t\tcase 38: // &\n\t\t\t\tescape = \"&\"\n\t\t\t\tbreak\n\t\t\tcase 39: // '\n\t\t\t\tescape = \"'\"\n\t\t\t\tbreak\n\t\t\tcase 60: // <\n\t\t\t\tescape = \"<\"\n\t\t\t\tbreak\n\t\t\tcase 62: // >\n\t\t\t\tescape = \">\"\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tcontinue\n\t\t}\n\n\t\tif (lastIndex !== index) {\n\t\t\thtml += str.substring(lastIndex, index)\n\t\t}\n\n\t\tlastIndex = index + 1\n\t\thtml += escape\n\t}\n\n\treturn lastIndex !== index ? html + str.substring(lastIndex, index) : html\n}\n"],"mappings":";;AAKA,MAAM,kBAAkB;AAExB,MAAa,cAAc,WAAmC;CAC7D,MAAM,MAAM,KAAK;CACjB,MAAM,QAAQ,gBAAgB,KAAK,IAAI;AAEvC,KAAI,CAAC,MACJ,QAAO;CAGR,IAAI;CACJ,IAAI,OAAO;CACX,IAAI,QAAQ;CACZ,IAAI,YAAY;AAEhB,MAAK,QAAQ,MAAM,OAAO,QAAQ,IAAI,QAAQ,SAAS;AACtD,UAAQ,IAAI,WAAW,MAAM,EAA7B;GACC,KAAK;AACJ,aAAS;AACT;GACD,KAAK;AACJ,aAAS;AACT;GACD,KAAK;AACJ,aAAS;AACT;GACD,KAAK;AACJ,aAAS;AACT;GACD,KAAK;AACJ,aAAS;AACT;GACD,QACC;;AAGF,MAAI,cAAc,MACjB,SAAQ,IAAI,UAAU,WAAW,MAAM;AAGxC,cAAY,QAAQ;AACpB,UAAQ;;AAGT,QAAO,cAAc,QAAQ,OAAO,IAAI,UAAU,WAAW,MAAM,GAAG"}