Security News
Node.js EOL Versions CVE Dubbed the "Worst CVE of the Year" by Security Experts
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
@produck/mold
Advanced tools
For helping to create a final options from a defined specification.
A tool module for defining data type schemas to a normalize function. It published as a "Dual CommonJS/ES module" package but ESM first. It is very simple, flexible and extensible.
There is also some default "Catcher". It is helping to throw a "TypeError" with good readability messages. It can be also defined a completely custom catcher to handle the cause if a bad value provided.
It can work in "node.js" and browsers. It is also very friendly with "tree shaking", using "Rollup" so try ESM.
$ npm install @produck/mold
The "options" in fs.appendFile(path, data[, options], callback),
import { S, C, P, Normalizer } from '@produck/mold';
const flags = [
'a', 'ax', 'a+', 'ax+', 'as', 'as+',
'r', 'r+', 'rs+',
'w', 'wx', 'w+', 'wx+'
];
const schema = S.Object({
encoding: P.OrNull(P.String('utf-8')),
mode: P.Integer(0o666),
flag: P.Enum(flags);
});
const normalize = Normalizer(schema);
normalize(); // ok
normalize({ encoding: 'utf-8' }); // ok
normalize({ encoding: 123 }); // throws
normalize({ flag: 'f' }); // throws
As esModule,
import {
Simplex, Simp, S,
Compound, Comp, C,
Preset, Pre, P,
Normalizer, Circular, Custom,
Catcher
} from '@produck/mold';
// Or
import * as Mold from '@produck/mold';
// Your code...
As CommonJS,
const {
Simplex, Simp, S,
Compound, Comp, C,
Preset, Pre, P,
Normalizer, Circular, Custom,
Catcher
} = require('@produck/mold');
// Or
const Mold = require('@produck/mold');
// Your code...
import { S, P, Normalizer } from '@produck/mold';
const OptionsSchema = S.Object({
foo: P.String('bar')
});
const normalize = Normalizer(OptionsSchema);
const finalOptions = normalize();
import { Simplex } from '@produck/mold';
import net from 'node:net';
// A optional schema.
const IPv4 = Simplex.Value(net.isIPv4, 'IP string', () => '0.0.0.0');
// A required schmea
const IPv4 = Simplex.Value(net.isIPv4, 'IP string');
const l0 = (_value, _empty) => {
// Some statement...
}
import { S, Simp, Simplex } from '@produck/mold';
Simplex.Value();
Simplex.Object();
Simplex.Array();
Simplex.Tuple();
import { C, Comp, Compound } from '@produck/mold';
Compound.Not();
Compound.And();
Compound.Or();
Compound.If();
import { Circular, Custom } from '@produck/mold';
Circular();
Custom();
import { P, Pre, Preset } from '@produck/mold';
Preset.Constant();
Preset.Enum();
Preset.Null;
Preset.NotNull;
Preset.Instance();
Preset.OrNull();
Preset.Number();
...
FAQs
For helping to create a final options from a defined specification.
We found that @produck/mold demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 3 open source maintainers 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
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.
Security News
Bun 1.2 enhances its JavaScript runtime with 90% Node.js compatibility, built-in S3 and Postgres support, HTML Imports, and faster, cloud-first performance.