
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
pseudo-json
Advanced tools
JSON is too simple, not enough for flexible data. So try pseudo-json! Stringify and parse plain js objects as what they look like in the js files. 0 dependency.
🚀 Write more flexible configuration files with JavaScript syntax. Synchronously load configs without import().
This library is better suited for Node.js usage, especially when you want to load configs synchronously.
JSON is too simple and restrictive. pseudo-json lets you serialize and parse JavaScript objects exactly as they appear in JS files—with support for Symbol, Map, Set, Date, RegExp, NaN, Infinity, and more.
For more awesome packages, check out my homepage 💛
npm install pseudo-json
# or
pnpm add pseudo-json
import { PseudoJSON } from 'pseudo-json';
const js = new PseudoJSON({ indent: 2 });
// Stringify: JavaScript object → string
const config = {
name: 'my-app',
version: '1.0.0',
timeout: Infinity,
retries: NaN,
createdAt: new Date(),
pattern: /\.ts$/,
secret: Symbol('api-key'),
cache: new Map([['key', 'value']]),
tags: new Set(['prod', 'v1']),
};
const code = js.stringify(config);
// Output: JavaScript literal syntax, not JSON!
// Parse: string → JavaScript object
const parsed = js.parse(code);
// All types preserved! Map is Map, Date is Date, Symbol is Symbol
new PseudoJSON(options?)Create a new instance with optional formatting.
const js = new PseudoJSON({
indent: 2, // number or string, default: no indent
});
stringify(value: unknown): stringConvert a JavaScript value to its literal string representation.
Note: stringify only captures the current value and cannot preserve runtime computation logic.
js.stringify({ a: 1, b: NaN });
// → "{a: 1, b: NaN}"
js.stringify([1, 2, Symbol('key')]);
// → "[1, 2, Symbol(\"key\")]"
parse(code: string): anyParse a string back into a JavaScript value.
js.parse('{ a: 1, b: NaN }');
// → { a: 1, b: NaN }
js.parse('new Map([["key", "value"]])');
// → Map { 'key' => 'value' }
Note:
parseexecutes the input via the Function constructor and does NOT supportimportstatements. Only pass trusted code and avoid module imports in strings you feed toparse.
generateExportModule(data: unknown): stringGenerate a complete ES module with export default.
js.generateExportModule({ config: 'value' });
// → "export default {config: \"value\"}\n"
⚠️ Simple Use Cases Only: This library is designed for configuration files and simple data structures.
🚫 Not Recommended:
✅ Best For:
MIT © Kasukabe Tsumugi
FAQs
JSON is too simple, not enough for flexible data. So try pseudo-json! Stringify and parse plain js objects as what they look like in the js files. 0 dependency.
The npm package pseudo-json receives a total of 2 weekly downloads. As such, pseudo-json popularity was classified as not popular.
We found that pseudo-json demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.