UNPKG

@mkljczk/lexical-remark

Version:

This package contains Markdown helpers and functionality for Lexical using remark-parse.

27 lines (26 loc) 828 B
const own = {}.hasOwnProperty; /** * Handle values based on a field. */ export function zwitchFunc(key, options) { const settings = options || {}; function one(value, ...parameters) { let fn = one.invalid; const handlers = one.handlers; // @ts-expect-error Indexable. if (value && typeof value[key] === 'function') { // @ts-expect-error Indexable. const id = String(value[key]()); // @ts-expect-error Indexable. fn = own.call(handlers, id) ? handlers[id] : one.unknown; } if (fn) { return fn.call(this, value, ...parameters); } } one.handlers = settings.handlers || {}; one.invalid = settings.invalid; one.unknown = settings.unknown; // @ts-expect-error: matches! return one; }