UNPKG

@pho9ubenaa/remark-mask-text-beta

Version:

A remark plugin to mask text content with block characters

51 lines 1.46 kB
import remarkMaskText from "../index.js"; /** * Type-safe helper for creating remark-mask-text plugin configurations * * This function ensures that the options object contains only valid * properties, providing compile-time type checking and auto-completion. * * @example * const remarkPlugins = [ * createMaskTextPlugin({ * maskCharacter: '*', * maskDelimiter: '||', * // test: 'invalid' // ❌ TypeScript error * }) * ]; */ export function createMaskTextPlugin(options) { return [remarkMaskText, options]; } /** * Type guard to ensure options are valid * * @example * const config = { maskCharacter: '*', test: 'invalid' }; * if (isValidMaskTextOptions(config)) { * // config is now typed as Options * } */ export function isValidMaskTextOptions(obj) { if (typeof obj !== 'object' || obj === null) { return false; } const keys = Object.keys(obj); const validKeys = ['maskCharacter', 'maskDelimiter']; return keys.every(key => validKeys.includes(key)); } /** * Strict options factory that prevents extra properties at compile time * * @example * const options = createStrictOptions({ * maskCharacter: '*', * maskDelimiter: '||', * // test: 'invalid' // ❌ TypeScript error * }); */ export function createStrictOptions(options) { const { maskCharacter, maskDelimiter } = options; return { maskCharacter, maskDelimiter }; } //# sourceMappingURL=config-helpers.js.map