UNPKG

@muban/muban

Version:

Writing components for server-rendered HTML

22 lines (21 loc) 1.01 kB
import dedent from 'ts-dedent'; import { convertSourceValue } from './convertSourceValue'; export function createCustomPropertySource() { return () => { return { sourceName: 'custom', hasProp: (propInfo) => Boolean(propInfo.source.target), getProp: (propInfo) => { var _a, _b; if (!((_a = propInfo.source.options) === null || _a === void 0 ? void 0 : _a.customSource)) { // eslint-disable-next-line no-console console.warn(dedent `The property "${propInfo.name}" doesn't have a valid 'customSource' function Returning "undefined".`); return undefined; } const rawValue = (_b = propInfo.source.options) === null || _b === void 0 ? void 0 : _b.customSource(propInfo.source.target); return rawValue !== undefined ? convertSourceValue(propInfo, String(rawValue)) : rawValue; }, }; }; }