Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
createExtensions() {
const {
marks = {},
nodes = {},
tools = {}
} = this.schema
return [
// schema.marks:
marks.bold && new Bold(),
marks.italic && new Italic(),
marks.underline && new Underline(),
marks.strike && new Strike(),
marks.small && new Small(),
marks.code && new Code(),
marks.link && new LinkWithTitle(),
// schema.nodes:
nodes.blockquote && new Blockquote(),
nodes.codeBlock && new CodeBlock(),
new HardBreak(), // TODO: Should this always on?
nodes.heading && new Heading({ levels: nodes.heading }),
nodes.horizontalRule && new HorizontalRule(),
(nodes.orderedList || nodes.bulletList) && new ListItem(),
nodes.bulletList && new BulletList(),
nodes.orderedList && new OrderedList(),
Object.keys(this.toolbar).forEach(tool => {
switch (tool) {
case 'header': {
const levels = this.toolbar[tool].filter(level => typeof level === 'number')
levels.forEach(level => {
this.headingOptions.push(level)
})
extensions.push(new Heading({
levels: levels
}))
break
}
case 'bold': {
extensions.push(new Bold())
break
}
case 'italic': {
extensions.push(new Italic())
break
}
case 'strike': {
extensions.push(new Strike())
break
}
case 'underline': {
extensions.push(new Underline())
break
}
case 'link': {
extensions.push(new Link())