31 lines
828 B
JavaScript
31 lines
828 B
JavaScript
/**
|
|
* @abstract
|
|
*/
|
|
export default class ProseMirrorPlugin {
|
|
/**
|
|
* An abstract class for building a ProseMirror Plugin.
|
|
* @see {Plugin}
|
|
* @param {Schema} schema The schema to build the plugin against.
|
|
*/
|
|
constructor(schema) {
|
|
/**
|
|
* The ProseMirror schema to build the plugin against.
|
|
* @type {Schema}
|
|
*/
|
|
Object.defineProperty(this, "schema", {value: schema});
|
|
}
|
|
|
|
/* -------------------------------------------- */
|
|
|
|
/**
|
|
* Build the plugin.
|
|
* @param {Schema} schema The ProseMirror schema to build the plugin against.
|
|
* @param {object} [options] Additional options to pass to the plugin.
|
|
* @returns {Plugin}
|
|
* @abstract
|
|
*/
|
|
static build(schema, options={}) {
|
|
throw new Error("Subclasses of ProseMirrorPlugin must implement a static build method.");
|
|
}
|
|
}
|