A tiny utility to mask part of a string — perfect for hiding secrets, emails, API keys, and IDs. Fully customizable and zero dependencies.
- 🔐 Hide sensitive values in logs and UIs
- ⚙️ Customizable mask char, prefix, and suffix lengths
- 🪶 Zero dependencies (<1KB gzipped)
- 🧪 Fully tested with edge case handling
- 🧠 TypeScript definitions included
- 📦 Supports CommonJS, ESM, Node.js, bundlers
- 🖥️ CLI support coming soon
npm install obscure-string
# or
yarn add obscure-stringconst { obscureString } = require('obscure-string');
obscureString('mysecretkey');
// → 'mys*****key'
obscureString('[email protected]', {
prefixLength: 2,
suffixLength: 4,
maskChar: '#',
});
// → 'jo##############.com'| Option | Type | Default | Description |
|---|---|---|---|
maskChar |
string |
* |
Character used for masking |
prefixLength |
number |
3 |
Visible characters at the beginning |
suffixLength |
number |
3 |
Visible characters at the end |
If the input string is shorter than
prefixLength + suffixLength, it's returned unchanged.
obscureString('mysecretkey');
// → 'mys*****key'
obscureString('supersecretvalue', { prefixLength: 2, suffixLength: 2 });
// → 'su************ue'
obscureString('veryshort', { prefixLength: 5, suffixLength: 5 });
// → 'veryshort' (too short to mask)
obscureString(null);
// → '' (non-string input)
obscureString('1234567890', { prefixLength: 2, suffixLength: 2 });
// → '12******90'export function obscureString(
str: string,
options?: {
maskChar?: string;
prefixLength?: number;
suffixLength?: number;
}
): string;npm testUses Jest for unit testing. See __tests__/ for test cases.
npm run formatUses Prettier with .prettierrc config.
A CLI version is planned:
npx obscure-string "my-secret-token" --prefix 2 --suffix 4 --char "#"Contributions welcome!
- 🍴 Fork the repo
- 🛠 Create a feature branch
- ✅ Add tests and update docs
- 🚀 Open a pull request
- Base string masking
- TypeScript support
- Prettier formatting
- Jest test suite
- CLI via
npx - GitHub Actions CI
- Optional string-type detectors (email, token, etc.)
- VSCode extension (stretch)
MIT © PDR
string-mask– pattern masking (more complex)redact-pii– automatic PII redactioncommon-tags– tag helpers for strings
Made with ❤️ to keep your secrets secret.