MCPcopy Create free account
hub / github.com/CreminiAI/skillpack / use

Method use

web/marked.min.js:1983–2100  ·  view source on GitHub ↗
(...e)

Source from the content-addressed store, hash-verified

1981 return n;
1982 }
1983 use(...e) {
1984 let t = this.defaults.extensions || { renderers: {}, childTokens: {} };
1985 return (
1986 e.forEach((n) => {
1987 let s = { ...n };
1988 if (
1989 ((s.async = this.defaults.async || s.async || !1),
1990 n.extensions &&
1991 (n.extensions.forEach((i) => {
1992 if (!i.name) throw new Error("extension name required");
1993 if ("renderer" in i) {
1994 let r = t.renderers[i.name];
1995 r
1996 ? (t.renderers[i.name] = function (...o) {
1997 let a = i.renderer.apply(this, o);
1998 return (a === !1 && (a = r.apply(this, o)), a);
1999 })
2000 : (t.renderers[i.name] = i.renderer);
2001 }
2002 if ("tokenizer" in i) {
2003 if (
2004 !i.level ||
2005 (i.level !== "block" && i.level !== "inline")
2006 )
2007 throw new Error(
2008 "extension level must be 'block' or 'inline'",
2009 );
2010 let r = t[i.level];
2011 (r ? r.unshift(i.tokenizer) : (t[i.level] = [i.tokenizer]),
2012 i.start &&
2013 (i.level === "block"
2014 ? t.startBlock
2015 ? t.startBlock.push(i.start)
2016 : (t.startBlock = [i.start])
2017 : i.level === "inline" &&
2018 (t.startInline
2019 ? t.startInline.push(i.start)
2020 : (t.startInline = [i.start]))));
2021 }
2022 "childTokens" in i &&
2023 i.childTokens &&
2024 (t.childTokens[i.name] = i.childTokens);
2025 }),
2026 (s.extensions = t)),
2027 n.renderer)
2028 ) {
2029 let i = this.defaults.renderer || new $(this.defaults);
2030 for (let r in n.renderer) {
2031 if (!(r in i))
2032 throw new Error(`renderer '${r}' does not exist`);
2033 if (["options", "parser"].includes(r)) continue;
2034 let o = r,
2035 a = n.renderer[o],
2036 c = i[o];
2037 i[o] = (...p) => {
2038 let u = a.apply(i, p);
2039 return (u === !1 && (u = c.apply(i, p)), u || "");
2040 };

Callers 3

startServerFunction · 0.80
constructorMethod · 0.80
marked.min.jsFile · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected