UNPKG

@slightning/anything-to-string

Version:
61 lines (60 loc) 1.82 kB
import * as Rules from "./rules"; import { AnythingRule } from "./rules/anything"; export * from "./utils"; export * from "./config"; export * from "./rules/anything"; export * from "./rules/null"; export * from "./rules/undefined"; export * from "./rules/basic-string"; export * from "./rules/basic-number"; export * from "./rules/basic-boolean"; export * from "./rules/string"; export * from "./rules/number"; export * from "./rules/boolean"; export * from "./rules/reg-exp"; export * from "./rules/symbol"; export * from "./rules/bigint"; export * from "./rules/set"; export * from "./rules/map"; export * from "./rules/weak-ref"; export * from "./rules/error"; export * from "./rules/html-element"; export * from "./rules/array"; export * from "./rules/object"; export * from "./rules/function"; export { Rules }; export function stringify(data, config = {}) { const requiredConfig = Object.assign({ rules(__data, __config, context) { const depth = "pathArray" in context ? context.pathArray.length : context.depth; switch (depth) { case 1: return Rules.MAXIMUM; case 2: return Rules.MAJOR; case 3: return Rules.LESSER; default: return Rules.MINIMUM; } }, indent: 4, depth: 4, ref: false, object: {} }, config); const prepareData = { refMap: new Map() }; new AnythingRule().prepare(data, requiredConfig, { pathArray: [], accessedSet: new Set(), prepareData }); return new AnythingRule().toString(data, requiredConfig, { depth: 0, accessedRefSet: new Set(), prepareData }); } export default stringify;