@jsonjoy.com/json-type
Version:
High-performance JSON Pointer implementation
57 lines • 1.75 kB
JavaScript
"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