webssh2-server
Version:
A Websocket to SSH2 gateway using xterm.js, socket.io, ssh2
41 lines (40 loc) • 1.03 kB
JavaScript
// app/utils/data-masker.ts
// Pure functions for masking sensitive data
import maskObject from 'jsmasker';
/**
* Default properties to mask
*/
export const DEFAULT_MASK_PROPERTIES = [
'password',
'privateKey',
'passphrase',
'key',
'secret',
'token'
];
/**
* Create masking options with defaults
* Pure function - no side effects
*
* @param options - Optional custom masking options
* @returns Complete masking options with defaults
*/
export function createMaskingOptions(options) {
return {
properties: DEFAULT_MASK_PROPERTIES,
...options
};
}
/**
* Mask sensitive data in an object
* Pure function wrapper around jsmasker
*
* @param data - Data object potentially containing sensitive information
* @param options - Optional masking options
* @returns Object with sensitive data masked
*/
export function maskSensitive(data, options) {
const maskingOptions = createMaskingOptions(options);
const masker = maskObject;
return masker(data, maskingOptions);
}