@pho9ubenaa/remark-mask-text-beta
Version:
A remark plugin to mask text content with block characters
51 lines • 1.46 kB
JavaScript
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