UNPKG

@jsonjoy.com/json-type

Version:

High-performance JSON Pointer implementation

57 lines 1.75 kB
"use strict"; /** * `json-type` * * Implements types and builder for JSON Type. * * Use {@link t} builder instance to build your JSON types. * * ```ts * import {t} from '@jsonjoy.com/json-type'; * * const userType = t.Object( * t.prop('id', t.num), * t.prop('name', t.str), * ); * ``` * * Define basic types, for example, a string: * * ```ts * t.String(); // { kind: 'str' } * ``` * * Define complex types: * * ```ts * const type = t.Object( * t.prop('collection', t.Object( * t.prop('id', t.String({format: 'ascii', noJsonEscape: true})), * t.prop('ts', t.num, {format: 'u64'}), * t.prop('cid', t.String({format: 'ascii', noJsonEscape: true})), * t.prop('prid', t.String({format: 'ascii', noJsonEscape: true})), * t.prop('slug', t.String({format: 'ascii', noJsonEscape: true})), * t.prop('name', t.str, {isOptional: true}), * t.prop('src', t.str, {isOptional: true}), * t.prop('doc', t.str, {isOptional: true}), * t.prop('authz', t.str, {isOptional: true}), * t.prop('active', t.bool), * )), * t.prop('block', t.Object( * t.prop('id', t.String({format: 'ascii', noJsonEscape: true})), * t.prop('ts', t.num, {format: 'u64'}), * t.prop('cid', t.String({format: 'ascii', noJsonEscape: true})), * t.prop('slug', t.String({format: 'ascii', noJsonEscape: true})), * )), * ); * ``` * * @module */ Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); tslib_1.__exportStar(require("./constants"), exports); tslib_1.__exportStar(require("./schema"), exports); tslib_1.__exportStar(require("./type"), exports); tslib_1.__exportStar(require("./value"), exports); //# sourceMappingURL=index.js.map