JSONSchema mask
A well tested lightweight library that takes in a JSON schema and a JSON object and ensures that extra properties are removed from the object. It requires two peer dependencies of ajv and jsonpointer
Installation
npm i jsonschema-mask
yarn add jsonschema-mask
Usage
import { maskData } from "jsonschema-mask";
const schema = {
type: "object",
properties: {
username: {
type: "string",
},
},
required: ["username"],
additionalProperties: false,
};
const rawData = {
username: "mock-username",
password: "mock-hash",
email: "mock-email",
};
const maskOptions: IMaskOptions = {};
const maskedData = maskData(schema, "#", rawData, maskOptions);
Options
export interface IMaskOptions {
readonly shouldMaskTypeErrors?: boolean;
readonly onMissingProperty?: (error: ErrorObject) => void;
readonly onAdditionalProperty?: (error: ErrorObject) => void;
readonly onTypeError?: (error: ErrorObject) => void;
}