diff --git a/.gitignore b/.gitignore index f6ff34d..65cbaee 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ node_modules/ build/ +temp-docs/ tests/build .DS_Store diff --git a/.travis.yml b/.travis.yml index 5e530bf..6abf2ad 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,3 +5,4 @@ node_js: script: - yarn test + - yarn docs diff --git a/README.md b/README.md index cb9526b..4df16d0 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,61 @@ # assemblyscript-json +![npm version](https://img.shields.io/npm/v/assemblyscript-json) ![npm downloads per month](https://img.shields.io/npm/dm/assemblyscript-json) + JSON encoder / decoder for AssemblyScript. Special thanks to https://github.com/MaxGraey/bignum.wasm for basic unit testing infra for AssemblyScript. -# Limitations +## Installation + +`assemblyscript-json` is available as a [npm package](https://www.npmjs.com/package/assemblyscript-json). You can install `assemblyscript-json` in your AssemblyScript project by running: -This is developed for use in smart contracts written in AssemblyScript for https://github.com/nearprotocol/nearcore. -This imposes such limitations: +`npm install --save assemblyscript-json` -- Float numbers not supported -- We assume that memory never needs to be deallocated (cause these contracts are short-lived). +## Usage -Note that this mostly just defines the way it's currently implemented. Contributors are welcome to fix limitations. +### Parsing JSON -# Usage +```typescript +import { JSON } from "assemblyscript-json"; -## Encoding JSON +// Parse an object using the JSON object +let jsonObj: JSON.Obj = (JSON.parse('{"hello": "world", "value": 24}')); -```ts -// Make sure memory allocator is available -import "allocator/arena"; -// Import encoder -import { JSONEncoder } from "path/to/module"; +// We can then use the .getX functions to read from the object if you know it's type +// This will return the appropriate JSON.X value if the key exists, or null if the key does not exist +let worldOrNull: JSON.Str | null = jsonObj.getString("hello"); // This will return a JSON.Str or null +if (worldOrNull != null) { + // use .valueOf() to turn the high level JSON.Str type into a string + let world: string = worldOrNull.valueOf(); +} + +let numOrNull: JSON.Num | null = jsonObj.getNum("value"); +if (numOrNull != null) { + // use .valueOf() to turn the high level JSON.Num type into a f64 + let value: f64 = numOrNull.valueOf(); +} + +// If you don't know the value type, get the parent JSON.Value +let valueOrNull: JSON.Value | null = jsonObj.getValue("hello"); + if (valueOrNull != null) { + let value: JSON.Value = changetype(valueOrNull); + + // Next we could figure out what type we are + if(value.isString) { + // value.isString would be true, so we can cast to a string + let stringValue: string = changetype(value).toString(); + + // Do something with string value + } +} +``` + +### Encoding JSON + + +```typescript +import { JSONEncoder } from "assemblyscript-json"; // Create encoder let encoder = new JSONEncoder(); @@ -37,83 +70,79 @@ encoder.popObject(); let json: Uint8Array = encoder.serialize(); // Or get serialized data as string -let jsonString: String = encoder.toString(); +let jsonString: string = encoder.toString(); + +assert(jsonString, '"obj": {"int": 10, "str": ""}'); // True! ``` -## Parsing JSON +### Custom JSON Deserializers -```ts -// Make sure memory allocator is available -import "allocator/arena"; -// Import decoder -import { JSONDecoder, JSONHandler } from "path/to/module"; +```typescript +import { JSONDecoder, JSONHandler } from "assemblyscript-json"; // Events need to be received by custom object extending JSONHandler. // NOTE: All methods are optional to implement. class MyJSONEventsHandler extends JSONHandler { - setString(name: string, value: string): void { - // Handle field - } - - setBoolean(name: string, value: bool): void { - // Handle field - } - - setNull(name: string): void { - // Handle field - } - - setInteger(name: string, value: i32): void { - // Handle field - } - - pushArray(name: string): bool { - // Handle array start - // true means that nested object needs to be traversed, false otherwise - // Note that returning false means JSONDecoder.startIndex need to be updated by handler - return true; - } - - popArray(): void { - // Handle array end - } - - pushObject(name: string): bool { - // Handle object start - // true means that nested object needs to be traversed, false otherwise - // Note that returning false means JSONDecoder.startIndex need to be updated by handler - return true; - } - - popObject(): void { - // Handle object end - } + setString(name: string, value: string): void { + // Handle field + } + + setBoolean(name: string, value: bool): void { + // Handle field + } + + setNull(name: string): void { + // Handle field + } + + setInteger(name: string, value: i64): void { + // Handle field + } + + setFloat(name: string, value: f64): void { + // Handle field + } + + pushArray(name: string): bool { + // Handle array start + // true means that nested object needs to be traversed, false otherwise + // Note that returning false means JSONDecoder.startIndex need to be updated by handler + return true; + } + + popArray(): void { + // Handle array end + } + + pushObject(name: string): bool { + // Handle object start + // true means that nested object needs to be traversed, false otherwise + // Note that returning false means JSONDecoder.startIndex need to be updated by handler + return true; + } + + popObject(): void { + // Handle object end + } } // Create decoder let decoder = new JSONDecoder(new MyJSONEventsHandler()); -// Let's assume JSON data is available in this variable -let json: Uint8Array = ...; +// Create a byte buffer of our JSON. NOTE: Deserializers work on UTF8 string buffers. +let jsonString = '{"hello": "world"}'; +let jsonBuffer = Uint8Array.wrap(String.UTF8.encode(jsonString)); // Parse JSON -decoder.deserialize(json); // This will send events to MyJSONEventsHandler - +decoder.deserialize(jsonBuffer); // This will send events to MyJSONEventsHandler ``` -## JSON namespace +Feel free to look through the [tests](https://github.com/nearprotocol/assemblyscript-json/tree/master/assembly/__tests__) for more usage examples. -```ts -import { JSON } from "path/to/module"; +## Reference Documentation -// Can use JS parse api -let jsonObj: JSON.Object = JSON.parse(`{"hello": "world"}`); +Reference API Documentation can be found in the [docs directory](./docs). -// Can then use a key to read from the object if you know it's type -let world = jsonObj.getString("hello"); +## License -// If you don't know what the type of the value -let unknown = jsonObj.getValue("hello"); - -unknown.isString; // true; -``` +[MIT](./LICENSE) diff --git a/assembly/JSON.ts b/assembly/JSON.ts index 6e4aac1..af7ef1d 100644 --- a/assembly/JSON.ts +++ b/assembly/JSON.ts @@ -2,7 +2,7 @@ import { Buffer } from "./util"; import { JSONDecoder } from "./decoder"; class Handler { - stack: JSON.Value[] = new Array(); + stack: Value[] = new Array(); reset(): void { while (this.stack.length > 0) { @@ -10,37 +10,37 @@ class Handler { } } - get peek(): JSON.Value { + get peek(): Value { return this.stack[this.stack.length - 1]; } setString(name: string, value: string): void { - const obj: JSON.Value = JSON.Value.String(value); + const obj: Value = Value.String(value); this.addValue(name, obj); } setBoolean(name: string, value: bool): void { - const obj = JSON.Value.Bool(value); + const obj = Value.Bool(value); this.addValue(name, obj); } setNull(name: string): void { - const obj = JSON.Value.Null(); + const obj = Value.Null(); this.addValue(name, obj); } setInteger(name: string, value: i64): void { - const obj = JSON.Value.Integer(value); + const obj = Value.Integer(value); this.addValue(name, obj); } setFloat(name: string, value: f64): void { - const obj = JSON.Value.Float(value); + const obj = Value.Float(value); this.addValue(name, obj); } pushArray(name: string): bool { - const obj: JSON.Value = JSON.Value.Array(); + const obj: Value = Value.Array(); if (this.stack.length == 0) { this.stack.push(obj); } else { @@ -57,7 +57,7 @@ class Handler { } pushObject(name: string): bool { - const obj: JSON.Value = JSON.Value.Object(); + const obj: Value = Value.Object(); this.addValue(name, obj); this.stack.push(obj); return true; @@ -69,15 +69,15 @@ class Handler { } } - addValue(name: string, obj: JSON.Value): void { + addValue(name: string, obj: Value): void { if (name.length == 0 && this.stack.length == 0) { this.stack.push(obj); return; } - if (this.peek instanceof JSON.Obj) { - (this.peek as JSON.Obj).set(name, obj); - } else if (this.peek instanceof JSON.Arr) { - (this.peek).push(obj); + if (this.peek instanceof Obj) { + (this.peek as Obj).set(name, obj); + } else if (this.peek instanceof Arr) { + (this.peek).push(obj); } } } @@ -93,7 +93,7 @@ namespace _JSON { ); /** Parses a string or Uint8Array and returns a Json Value. */ - export function parse(str: T): JSON.Value { + export function parse(str: T): Value { var arr: Uint8Array; if (isString(str)) { arr = Buffer.fromString(str); @@ -107,112 +107,168 @@ namespace _JSON { } } -// @ts-ignore -@global -export namespace JSON { - export abstract class Value { - static String(str: string): Str { - return new Str(str); - } - static Number(num: f64): Num { - return new Num(num); - } - static Float(num: f64): Float { - return new Float(num); - } - static Integer(num: i64): Integer { - return new Integer(num); - } - static Bool(b: bool): Bool { - return new Bool(b); - } - static Null(): Null { - return new Null(); +export abstract class Value { + static String(str: string): Str { + return new Str(str); + } + static Number(num: f64): Num { + return new Num(num); + } + static Float(num: f64): Float { + return new Float(num); + } + static Integer(num: i64): Integer { + return new Integer(num); + } + static Bool(b: bool): Bool { + return new Bool(b); + } + static Null(): Null { + return new Null(); + } + static Array(): Arr { + return new Arr(); + } + static Object(): Obj { + return new Obj(); + } + + get isString(): boolean { + if (this instanceof Str) { + return true; } - static Array(): Arr { - return new Arr(); + return false; + } + + get isNum(): boolean { + if (this instanceof Num) { + return true; } - static Object(): Obj { - return new Obj(); + return false; + } + + get isFloat(): boolean { + if (this instanceof Float) { + return true; } + return false; + } - toString(): string { - if (this instanceof Str) { - return (this).toString(); - } - if (this instanceof Num) { - return (this).toString(); - } - if (this instanceof Bool) { - return (this).toString(); - } - if (this instanceof Null) { - return (this).toString(); - } - if (this instanceof Arr) { - return (this).toString(); - } - if (this instanceof Obj) { - return (this).toString(); - } - throw new Error("Not a value."); + get isInteger(): boolean { + if (this instanceof Integer) { + return true; } + return false; } - export class Str extends Value { - constructor(public _str: string) { - super(); + get isBool(): boolean { + if (this instanceof Bool) { + return true; } + return false; + } - toString(): string { - return '"' + this._str + '"'; + get isNull(): boolean { + if (this instanceof Null) { + return true; } + return false; } - export class Num extends Value { - constructor(public _num: f64) { - super(); + get isArr(): boolean { + if (this instanceof Arr) { + return true; } + return false; + } - toString(): string { - return this._num.toString(); + get isObj(): boolean { + if (this instanceof Obj) { + return true; } + return false; } - export class Float extends Num { + toString(): string { + throw new Error("Values must be casted to their JSON type for .toString()"); + return ""; } +} - export class Integer extends Value { - constructor(public _num: i64) { - super(); - } +export class Str extends Value { + constructor(public _str: string) { + super(); + } - toString(): string { - return this._num.toString(); - } + toString(): string { + return this._str; } - export class Null extends Value { - constructor() { - super(); - } + valueOf(): string { + return this._str; + } +} - toString(): string { - return "null"; - } +export class Num extends Value { + constructor(public _num: f64) { + super(); } - export class Bool extends Value { - constructor(public _bool: bool) { - super(); - } + toString(): string { + return this._num.toString(); + } - toString(): string { - return this._bool.toString(); - } + valueOf(): f64 { + return this._num; + } +} + +export class Float extends Num { +} + +export class Integer extends Value { + constructor(public _num: i64) { + super(); + } + + toString(): string { + return this._num.toString(); + } + + valueOf(): i64 { + return this._num; + } +} + +export class Null extends Value { + constructor() { + super(); + } + + toString(): string { + return "null"; } - export class Arr extends Value { + valueOf(): null { + return null; + } +} + +export class Bool extends Value { + constructor(public _bool: bool) { + super(); + } + + toString(): string { + return this._bool.toString(); + } + + valueOf(): bool { + return this._bool; + } +} + +export class Arr extends Value { _arr: Array; constructor() { super(); @@ -234,9 +290,13 @@ export namespace JSON { "]" ); } - } - export class Obj extends Value { + valueOf(): Array { + return this._arr; + } +} + +export class Obj extends Value { _obj: Map; keys: Array; @@ -246,6 +306,55 @@ export namespace JSON { this.keys = new Array(); } + toString(): string { + const objs: string[] = []; + for (let i: i32 = 0; i < this.keys.length; i++) { + let keyValueString = '"' + this.keys[i] + '": '; + + // Cast our value into it's appropriate type + let value: Value | null = this._obj.get(this.keys[i]); + + // Check for null values + if (value == null || value.isNull) { + objs.push(keyValueString += "null"); + continue; + } + + // Cast to our proper type + if (value.isString) { + let castedValue = changetype(value); + keyValueString += '"' + castedValue.toString() + '"'; + } else if (value.isNum) { + let castedValue = changetype(value); + keyValueString += castedValue.toString(); + } else if (value.isFloat) { + let castedValue = changetype(value); + keyValueString += castedValue.toString(); + } else if (value.isInteger) { + let castedValue = changetype(value); + keyValueString += castedValue.toString(); + } else if (value.isBool) { + let castedValue = changetype(value); + keyValueString += castedValue.toString(); + } else if (value.isArr) { + let castedValue = changetype(value); + keyValueString += castedValue.toString(); + } else if (value.isObj) { + let castedValue = changetype(value); + keyValueString += castedValue.toString(); + } + + // Push the keyValueString + objs.push(keyValueString); + } + return "{" + objs.join(",") + "}"; + } + + valueOf(): Map { + return this._obj; + } + + set(key: string, value: T): void { if (isReference(value)) { if (value instanceof Value) { @@ -262,6 +371,10 @@ export namespace JSON { this._obj.set(key, value); } + has(key: string): bool { + return this._obj.has(key); + } + get(key: string): Value | null { if (!this._obj.has(key)) { return null; @@ -269,55 +382,100 @@ export namespace JSON { return this._obj.get(key); } - toString(): string { - const objs: string[] = []; - for (let i: i32 = 0; i < this.keys.length; i++) { - objs.push( - '"' + this.keys[i] + '":' + this._obj.get(this.keys[i]).toString() - ); - } - return "{" + objs.join(",") + "}"; + getValue(key: string): Value | null { + return this.get(key); } - has(key: string): bool { - return this._obj.has(key); + getString(key: string): Str | null { + let jsonValue = this.get(key); + if (jsonValue != null && jsonValue.isString) { + return changetype(jsonValue); + } + return null; } - } - export function from(val: T): Value { - if (isBoolean(val)) { - return Value.Bool(val); + getNum(key: string): Num | null { + let jsonValue = this.get(key); + if (jsonValue != null && jsonValue.isNum) { + return changetype(jsonValue); + } + return null; } - if (isInteger(val)) { - return Value.Integer(val); + + getFloat(key: string): Float | null { + let jsonValue = this.get(key); + if (jsonValue != null && jsonValue.isFloat) { + return changetype(jsonValue); + } + return null; } - if (isFloat(val)) { - return Value.Float(val); + + getInteger(key: string): Integer | null { + let jsonValue = this.get(key); + if (jsonValue != null && jsonValue.isInteger) { + return changetype(jsonValue); + } + return null; } - if (isString(val)) { - return Value.String(val); + + getBool(key: string): Bool | null { + let jsonValue = this.get(key); + if (jsonValue != null && jsonValue.isBool) { + return changetype(jsonValue); + } + return null; } - if (val == null) { - return Value.Null(); + + getArr(key: string): Arr | null { + let jsonValue = this.get(key); + if (jsonValue != null && jsonValue.isArr) { + return changetype(jsonValue); + } + return null; } - if (isArrayLike(val)) { - const arr = Value.Array(); - for (let i: i32 = 0; i < val.length; i++) { - // @ts-ignore - arr.push(from>(val[i])); + + getObj(key: string): Obj | null { + let jsonValue = this.get(key); + if (jsonValue != null && jsonValue.isObj) { + return changetype(jsonValue); } - return arr; + return null; + } +} + +export function from(val: T): Value { + if (isBoolean(val)) { + return Value.Bool(val); + } + if (isInteger(val)) { + return Value.Integer(val); + } + if (isFloat(val)) { + return Value.Float(val); + } + if (isString(val)) { + return Value.String(val); + } + if (val == null) { + return Value.Null(); + } + if (isArrayLike(val)) { + const arr = Value.Array(); + for (let i: i32 = 0; i < val.length; i++) { + // @ts-ignore + arr.push(from>(val[i])); } - /** + return arr; + } + /** * TODO: add object support. */ - return Value.Object(); - } + return Value.Object(); +} - // @ts-ignore - @inline - /** Parses a string or Uint8Array and returns a Json Value. */ - export function parse(str: T): Value { - return _JSON.parse(str); - } +// @ts-ignore +@inline +/** Parses a string or Uint8Array and returns a Json Value. */ +export function parse(str: T): Value { + return _JSON.parse(str); } diff --git a/assembly/__tests__/json-parse.spec.ts b/assembly/__tests__/json-parse.spec.ts new file mode 100644 index 0000000..b5e577e --- /dev/null +++ b/assembly/__tests__/json-parse.spec.ts @@ -0,0 +1,139 @@ +import { JSONDecoder } from "../decoder"; +import { JSONEncoder } from "../encoder"; +import { Buffer } from "../util"; +import * as JSON from "../JSON"; + +let primObj: JSON.Obj; +let primArr: JSON.Arr; + +function parseToString(input: string): string { + return JSON.parse(input).toString(); +} + +describe("JSON.parse", () => { + beforeAll(() => { + primObj = JSON.Value.Object(); + primArr = JSON.from([42]); + primObj.set("number", JSON.from(42)); + primObj.set("boolean", JSON.from(true)); + primObj.set("string", JSON.from("Hello")); + }); + + describe("Primitive Values", () => { + it("should handle numbers", () => { + expect((JSON.parse("123456789.0"))._num).toStrictEqual( + (JSON.from(123456789.0))._num + ); + }); + + it("should handle floats", () => { + expect((JSON.parse("123456789.0"))._num).toStrictEqual( + (JSON.from(123456789.0))._num + ); + }); + + it("should handle scientific notation floats", () => { + // Supports lower e + expect((JSON.parse("1.23456e5"))._num).toStrictEqual( + (JSON.from(123456.0))._num + ); + + // Supports Upper e + expect((JSON.parse("1.23456E5"))._num).toStrictEqual( + (JSON.from(123456.0))._num + ); + + // Supports Complex + + expect((JSON.parse("1.23456e+5"))._num).toStrictEqual( + (JSON.from(123456.0))._num + ); + + // Supports Complex - + expect((JSON.parse("123456E-5"))._num).toStrictEqual( + (JSON.from(1.23456))._num + ); + }); + + it("should handle special floats", () => { + expect((JSON.parse("-0"))._num).toStrictEqual( + (JSON.from(-0.0))._num + ); + }); + + it("should handle integers", () => { + expect((JSON.parse("123456789"))._num).toStrictEqual( + (JSON.from(123456789))._num + ); + }); + + it("should handle strings", () => { + expect(parseToString('"hello"')).toStrictEqual( + JSON.from("hello").toString() + ); + }); + + it("should handle booleans", () => { + expect(parseToString("true")).toStrictEqual(JSON.from(true).toString()); + expect(parseToString("false")).toStrictEqual(JSON.from(false).toString()); + }); + + // TODO: JSON.from(null) should equal JSON.NUll(); + it("should handle null", () => { + expect(parseToString("null")).toStrictEqual("null"); + }); + }); + + describe("Arrays", () => { + it("should handle empty ones", () => { + expect(parseToString("[]")).toStrictEqual( + JSON.from([]).toString() + ); + }); + + it("should handle non-empty ones", () => { + expect(parseToString("[42]")).toStrictEqual(primArr.toString()); + }); + + it("should handle nested ones", () => { + const outterArr = JSON.Value.Array(); + outterArr.push(primArr); + expect(parseToString("[[42]]")).toStrictEqual(outterArr.toString()); + }); + }); + + describe("Objects", () => { + it("should handle empty objects", () => { + expect(parseToString("{}")).toStrictEqual(JSON.Value.Object().toString()); + }); + + it("should handle primitive values", () => { + expect( + parseToString(`{ + "number": 42, + "boolean": true, + "string": "Hello" + }`) + ).toStrictEqual(primObj.toString()); + }); + + it("should handle nested objects", () => { + const outerObj = JSON.Value.Object(); + outerObj.set("innerObject", primObj); + expect( + JSON.parse(`{ + "innerObject": { + "number": 42, + "boolean": true, + "string": "Hello" + } + }`) + ).toStrictEqual(outerObj); + }); + + it("should handle arrays", () => { + const obj = JSON.Value.Object(); + obj.set("arr", primArr); + expect(parseToString('{"arr": [42]}')).toStrictEqual(obj.toString()); + }); + }); +}); diff --git a/assembly/__tests__/roundtrip.spec.ts b/assembly/__tests__/roundtrip.spec.ts index 4eb3247..2a88403 100644 --- a/assembly/__tests__/roundtrip.spec.ts +++ b/assembly/__tests__/roundtrip.spec.ts @@ -1,7 +1,7 @@ import { JSONDecoder } from "../decoder"; import { JSONEncoder } from "../encoder"; import { Buffer } from "../util"; -import { JSON } from "../JSON"; +import * as JSON from "../JSON"; function roundtripTest(jsonString: string, _expectedString: string = ""): void { const expectedString = _expectedString == "" ? jsonString : _expectedString; @@ -130,137 +130,3 @@ describe("Round trip", () => { }); }); -var primObj: JSON.Obj; -var primArr: JSON.Arr; - -function parseToString(input: string): string { - return JSON.parse(input).toString(); -} - -describe("JSON.parse", () => { - beforeAll(() => { - primObj = JSON.Value.Object(); - primArr = JSON.from([42]); - primObj.set("number", JSON.from(42)); - primObj.set("boolean", JSON.from(true)); - primObj.set("string", JSON.from("Hello")); - }); - - describe("Primitive Values", () => { - it("should handle numbers", () => { - expect((JSON.parse("123456789.0"))._num).toStrictEqual( - (JSON.from(123456789.0))._num - ); - }); - - it("should handle floats", () => { - expect((JSON.parse("123456789.0"))._num).toStrictEqual( - (JSON.from(123456789.0))._num - ); - }); - - it("should handle scientific notation floats", () => { - // Supports lower e - expect((JSON.parse("1.23456e5"))._num).toStrictEqual( - (JSON.from(123456.0))._num - ); - - // Supports Upper e - expect((JSON.parse("1.23456E5"))._num).toStrictEqual( - (JSON.from(123456.0))._num - ); - - // Supports Complex + - expect((JSON.parse("1.23456e+5"))._num).toStrictEqual( - (JSON.from(123456.0))._num - ); - - // Supports Complex - - expect((JSON.parse("123456E-5"))._num).toStrictEqual( - (JSON.from(1.23456))._num - ); - }); - - it("should handle special floats", () => { - expect((JSON.parse("-0"))._num).toStrictEqual( - (JSON.from(-0.0))._num - ); - }); - - it("should handle integers", () => { - expect((JSON.parse("123456789"))._num).toStrictEqual( - (JSON.from(123456789))._num - ); - }); - - it("should handle strings", () => { - expect(parseToString('"hello"')).toStrictEqual( - JSON.from("hello").toString() - ); - }); - - it("should handle booleans", () => { - expect(parseToString("true")).toStrictEqual(JSON.from(true).toString()); - expect(parseToString("false")).toStrictEqual(JSON.from(false).toString()); - }); - - // TODO: JSON.from(null) should equal JSON.NUll(); - it("should handle null", () => { - expect(parseToString("null")).toStrictEqual("null"); - }); - }); - - describe("Arrays", () => { - it("should handle empty ones", () => { - expect(parseToString("[]")).toStrictEqual( - JSON.from([]).toString() - ); - }); - - it("should handle non-empty ones", () => { - expect(parseToString("[42]")).toStrictEqual(primArr.toString()); - }); - - it("should handle nested ones", () => { - const outterArr = JSON.Value.Array(); - outterArr.push(primArr); - expect(parseToString("[[42]]")).toStrictEqual(outterArr.toString()); - }); - }); - - describe("Objects", () => { - it("should handle empty objects", () => { - expect(parseToString("{}")).toStrictEqual(JSON.Value.Object().toString()); - }); - - it("should handle primitive values", () => { - expect( - parseToString(`{ - "number": 42, - "boolean": true, - "string": "Hello" - }`) - ).toStrictEqual(primObj.toString()); - }); - - it("should handle nested objects", () => { - const outerObj = JSON.Value.Object(); - outerObj.set("innerObject", primObj); - expect( - JSON.parse(`{ - "innerObject": { - "number": 42, - "boolean": true, - "string": "Hello" - } - }`) - ).toStrictEqual(outerObj); - }); - - it("should handle arrays", () => { - const obj = JSON.Value.Object(); - obj.set("arr", primArr); - expect(parseToString('{"arr": [42]}')).toStrictEqual(obj.toString()); - }); - }); -}); diff --git a/assembly/__tests__/to-string.spec.ts b/assembly/__tests__/to-string.spec.ts new file mode 100644 index 0000000..4a66fb7 --- /dev/null +++ b/assembly/__tests__/to-string.spec.ts @@ -0,0 +1,66 @@ +import { JSONDecoder } from "../decoder"; +import { JSONEncoder } from "../encoder"; +import { Buffer } from "../util"; +import * as JSON from "../JSON"; + +let primObj: JSON.Obj; +let testFloat = 42.24; +let testInteger = 42; +let testBool = true; +let testArray = [1, 2, 3]; + +describe("JSON.Value.toString()", () => { + beforeAll(() => { + primObj = JSON.Value.Object(); + primObj.set("Str", JSON.from("Hello")); + primObj.set("Num", JSON.from(testFloat)); + primObj.set("Float", JSON.from(testFloat)); + primObj.set("Integer", JSON.from(testInteger)); + primObj.set("Bool", JSON.from(testBool)); + primObj.set("Arr", JSON.from(testArray)); + let childObj = JSON.Value.Object(); + childObj.set("isChild", JSON.from(true)); + primObj.set("Obj", childObj); + }); + + it("Str", () => { + let value = primObj.getString("Str"); + expect(value!.toString()).toBe("Hello"); + }); + + it("Num", () => { + let value = primObj.getNum("Num"); + expect(value!.toString()).toBe(testFloat.toString()); + }); + + it("Float", () => { + let value = primObj.getFloat("Float"); + expect(value!.toString()).toBe(testFloat.toString()); + + }); + + it("Integer", () => { + let value = primObj.getInteger("Integer"); + expect(value!.toString()).toBe(testInteger.toString()); + }); + + it("Bool", () => { + let value = primObj.getBool("Bool"); + expect(value!.toString()).toBe(testBool.toString()); + }); + + it("Arr", () => { + let value = primObj.getArr("Arr"); + expect(value!.toString()).toBe("[" + testArray.toString() + "]"); + }); + + it("Obj", () => { + let value = primObj.getObj("Obj"); + expect(value!.toString()).toBe('{"isChild": true}'); + }); + + it("Entire Object", () => { + expect(primObj.toString()).toBe("{\"Str\": \"Hello\",\"Num\": 42.24,\"Float\": 42.24,\"Integer\": 42,\"Bool\": true,\"Arr\": [1,2,3],\"Obj\": {\"isChild\": true}}"); + }); +}); + diff --git a/assembly/__tests__/usage.spec.ts b/assembly/__tests__/usage.spec.ts new file mode 100644 index 0000000..f60869d --- /dev/null +++ b/assembly/__tests__/usage.spec.ts @@ -0,0 +1,119 @@ +import * as JSON from "../JSON"; +import { JSONEncoder } from "../encoder"; +import { JSONDecoder, JSONHandler } from "../decoder"; + +// Events need to be received by custom object extending JSONHandler. +// NOTE: All methods are optional to implement. +class MyJSONEventsHandler extends JSONHandler { + setString(name: string, value: string): void { + // Handle field + } + + setBoolean(name: string, value: bool): void { + // Handle field + } + + setNull(name: string): void { + // Handle field + } + + setInteger(name: string, value: i64): void { + // Handle field + } + + setFloat(name: string, value: f64): void { + // Handle field + } + + pushArray(name: string): bool { + // Handle array start + // true means that nested object needs to be traversed, false otherwise + // Note that returning false means JSONDecoder.startIndex need to be updated by handler + return true; + } + + popArray(): void { + // Handle array end + } + + pushObject(name: string): bool { + // Handle object start + // true means that nested object needs to be traversed, false otherwise + // Note that returning false means JSONDecoder.startIndex need to be updated by handler + return true; + } + + popObject(): void { + // Handle object end + } +} + +describe("README Usage Examples", () => { + it("Parsing JSON", () => { + // Parse an object using the JSON object + let jsonObj: JSON.Obj = (JSON.parse('{"hello": "world", "value": 24}')); + + // We can then use the .getX functions to read from the object if you know it's type + // This will return the appropriate JSON.X value if the key exists, or null if the key does not exist + let worldOrNull: JSON.Str | null = jsonObj.getString("hello"); // This will return a JSON.Str or null + if (worldOrNull != null) { + // use .valueOf() to turn the high level JSON.Str type into a string + let world: string = worldOrNull.valueOf(); + } + + let numOrNull: JSON.Num | null = jsonObj.getNum("value"); + if (numOrNull != null) { + // use .valueOf() to turn the high level JSON.Num type into a f64 + let value: f64 = numOrNull.valueOf(); + } + + // If you don't know the value type, get the parent JSON.Value + let valueOrNull: JSON.Value | null = jsonObj.getValue("hello"); + if (valueOrNull != null) { + let value: JSON.Value = changetype(valueOrNull); + + // Next we could figure out what type we are + if(value.isString) { + // value.isString would be true, so we can cast to a string + let stringValue: string = changetype(value).toString(); + + // Do something with string value + } + } + }); + + it("Encoding JSON", () => { + // Create encoder + let encoder = new JSONEncoder(); + + // Construct necessary object + encoder.pushObject("obj"); + encoder.setInteger("int", 10); + encoder.setString("str", ""); + encoder.popObject(); + + // Get serialized data + let json: Uint8Array = encoder.serialize(); + + // Or get serialized data as string + let jsonString: string = encoder.toString(); + + assert(jsonString, '"obj": {"int": 10, "str": ""}'); // True! + }); + + it("Decoding JSON", () => { + + // NOTE: Include the JSON Handler Class here + + // Create decoder + let decoder = new JSONDecoder(new MyJSONEventsHandler()); + + // Create a byte buffer of our JSON. NOTE: Deserializers work on UTF8 string buffers. + let jsonString = '{"hello": "world"}'; + let jsonBuffer = Uint8Array.wrap(String.UTF8.encode(jsonString)); + + // Parse JSON + decoder.deserialize(jsonBuffer); // This will send events to MyJSONEventsHandler + }); +}); + diff --git a/assembly/index.ts b/assembly/index.ts index ef3f570..400081f 100644 --- a/assembly/index.ts +++ b/assembly/index.ts @@ -1,3 +1,4 @@ export * from "./decoder"; export * from "./encoder"; -export * from "./JSON"; +import * as JSON from "./JSON"; +export { JSON }; diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000..1e9c76c --- /dev/null +++ b/docs/README.md @@ -0,0 +1,17 @@ +assemblyscript-json + +# assemblyscript-json + +## Table of contents + +### Namespaces + +- [JSON](modules/json.md) + +### Classes + +- [DecoderState](classes/decoderstate.md) +- [JSONDecoder](classes/jsondecoder.md) +- [JSONEncoder](classes/jsonencoder.md) +- [JSONHandler](classes/jsonhandler.md) +- [ThrowingJSONHandler](classes/throwingjsonhandler.md) diff --git a/docs/classes/decoderstate.md b/docs/classes/decoderstate.md new file mode 100644 index 0000000..3fc4010 --- /dev/null +++ b/docs/classes/decoderstate.md @@ -0,0 +1,92 @@ +[assemblyscript-json](../README.md) / DecoderState + +# Class: DecoderState + +## Hierarchy + +* **DecoderState** + +## Table of contents + +### Constructors + +- [constructor](decoderstate.md#constructor) + +### Properties + +- [buffer](decoderstate.md#buffer) +- [lastKey](decoderstate.md#lastkey) +- [readIndex](decoderstate.md#readindex) + +### Accessors + +- [ptr](decoderstate.md#ptr) + +### Methods + +- [readString](decoderstate.md#readstring) + +## Constructors + +### constructor + +\+ **new DecoderState**(`buffer`: *Uint8Array*): [*DecoderState*](decoderstate.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`buffer` | *Uint8Array* | + +**Returns:** [*DecoderState*](decoderstate.md) + +Defined in: [decoder.ts:106](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L106) + +## Properties + +### buffer + +• **buffer**: *Uint8Array* + +___ + +### lastKey + +• **lastKey**: *string*= "" + +Defined in: [decoder.ts:105](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L105) + +___ + +### readIndex + +• **readIndex**: *number*= 0 + +Defined in: [decoder.ts:106](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L106) + +## Accessors + +### ptr + +• **ptr**(): *number* + +**Returns:** *number* + +Defined in: [decoder.ts:109](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L109) + +## Methods + +### readString + +▸ **readString**(`start`: *number*, `end?`: *number*): *string* + +#### Parameters: + +Name | Type | Default value | +------ | ------ | ------ | +`start` | *number* | - | +`end` | *number* | ... | + +**Returns:** *string* + +Defined in: [decoder.ts:113](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L113) diff --git a/docs/classes/json.arr.md b/docs/classes/json.arr.md new file mode 100644 index 0000000..905fae1 --- /dev/null +++ b/docs/classes/json.arr.md @@ -0,0 +1,310 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Arr + +# Class: Arr + +[JSON](../modules/json.md).Arr + +## Hierarchy + +* [*Value*](json.value.md) + + ↳ **Arr** + +## Table of contents + +### Constructors + +- [constructor](json.arr.md#constructor) + +### Properties + +- [\_arr](json.arr.md#_arr) + +### Accessors + +- [isArr](json.arr.md#isarr) +- [isBool](json.arr.md#isbool) +- [isFloat](json.arr.md#isfloat) +- [isInteger](json.arr.md#isinteger) +- [isNull](json.arr.md#isnull) +- [isNum](json.arr.md#isnum) +- [isObj](json.arr.md#isobj) +- [isString](json.arr.md#isstring) + +### Methods + +- [push](json.arr.md#push) +- [toString](json.arr.md#tostring) +- [valueOf](json.arr.md#valueof) +- [Array](json.arr.md#array) +- [Bool](json.arr.md#bool) +- [Float](json.arr.md#float) +- [Integer](json.arr.md#integer) +- [Null](json.arr.md#null) +- [Number](json.arr.md#number) +- [Object](json.arr.md#object) +- [String](json.arr.md#string) + +## Constructors + +### constructor + +\+ **new Arr**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:272](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L272) + +## Properties + +### \_arr + +• **\_arr**: [*Value*](json.value.md)[] + +Defined in: [JSON.ts:272](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L272) + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### push + +▸ **push**(`obj`: [*Value*](json.value.md)): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`obj` | [*Value*](json.value.md) | + +**Returns:** *void* + +Defined in: [JSON.ts:278](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L278) + +___ + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Overrides: [Value](json.value.md) + +Defined in: [JSON.ts:282](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L282) + +___ + +### valueOf + +▸ **valueOf**(): [*Value*](json.value.md)[] + +**Returns:** [*Value*](json.value.md)[] + +Defined in: [JSON.ts:294](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L294) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/json.bool.md b/docs/classes/json.bool.md new file mode 100644 index 0000000..584928c --- /dev/null +++ b/docs/classes/json.bool.md @@ -0,0 +1,297 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Bool + +# Class: Bool + +[JSON](../modules/json.md).Bool + +## Hierarchy + +* [*Value*](json.value.md) + + ↳ **Bool** + +## Table of contents + +### Constructors + +- [constructor](json.bool.md#constructor) + +### Properties + +- [\_bool](json.bool.md#_bool) + +### Accessors + +- [isArr](json.bool.md#isarr) +- [isBool](json.bool.md#isbool) +- [isFloat](json.bool.md#isfloat) +- [isInteger](json.bool.md#isinteger) +- [isNull](json.bool.md#isnull) +- [isNum](json.bool.md#isnum) +- [isObj](json.bool.md#isobj) +- [isString](json.bool.md#isstring) + +### Methods + +- [toString](json.bool.md#tostring) +- [valueOf](json.bool.md#valueof) +- [Array](json.bool.md#array) +- [Bool](json.bool.md#bool) +- [Float](json.bool.md#float) +- [Integer](json.bool.md#integer) +- [Null](json.bool.md#null) +- [Number](json.bool.md#number) +- [Object](json.bool.md#object) +- [String](json.bool.md#string) + +## Constructors + +### constructor + +\+ **new Bool**(`_bool`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`_bool` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:257](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L257) + +## Properties + +### \_bool + +• **\_bool**: bool + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Overrides: [Value](json.value.md) + +Defined in: [JSON.ts:262](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L262) + +___ + +### valueOf + +▸ **valueOf**(): bool + +**Returns:** bool + +Defined in: [JSON.ts:266](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L266) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/json.float.md b/docs/classes/json.float.md new file mode 100644 index 0000000..8f78c75 --- /dev/null +++ b/docs/classes/json.float.md @@ -0,0 +1,301 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Float + +# Class: Float + +[JSON](../modules/json.md).Float + +## Hierarchy + +* [*Num*](json.num.md) + + ↳ **Float** + +## Table of contents + +### Constructors + +- [constructor](json.float.md#constructor) + +### Properties + +- [\_num](json.float.md#_num) + +### Accessors + +- [isArr](json.float.md#isarr) +- [isBool](json.float.md#isbool) +- [isFloat](json.float.md#isfloat) +- [isInteger](json.float.md#isinteger) +- [isNull](json.float.md#isnull) +- [isNum](json.float.md#isnum) +- [isObj](json.float.md#isobj) +- [isString](json.float.md#isstring) + +### Methods + +- [toString](json.float.md#tostring) +- [valueOf](json.float.md#valueof) +- [Array](json.float.md#array) +- [Bool](json.float.md#bool) +- [Float](json.float.md#float) +- [Integer](json.float.md#integer) +- [Null](json.float.md#null) +- [Number](json.float.md#number) +- [Object](json.float.md#object) +- [String](json.float.md#string) + +## Constructors + +### constructor + +\+ **new Float**(`_num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`_num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:212](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L212) + +## Properties + +### \_num + +• **\_num**: *number* + +Inherited from: [Num](json.num.md).[_num](json.num.md#_num) + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:217](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L217) + +___ + +### valueOf + +▸ **valueOf**(): *number* + +**Returns:** *number* + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:221](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L221) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Num](json.num.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/json.integer.md b/docs/classes/json.integer.md new file mode 100644 index 0000000..9ceb838 --- /dev/null +++ b/docs/classes/json.integer.md @@ -0,0 +1,297 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Integer + +# Class: Integer + +[JSON](../modules/json.md).Integer + +## Hierarchy + +* [*Value*](json.value.md) + + ↳ **Integer** + +## Table of contents + +### Constructors + +- [constructor](json.integer.md#constructor) + +### Properties + +- [\_num](json.integer.md#_num) + +### Accessors + +- [isArr](json.integer.md#isarr) +- [isBool](json.integer.md#isbool) +- [isFloat](json.integer.md#isfloat) +- [isInteger](json.integer.md#isinteger) +- [isNull](json.integer.md#isnull) +- [isNum](json.integer.md#isnum) +- [isObj](json.integer.md#isobj) +- [isString](json.integer.md#isstring) + +### Methods + +- [toString](json.integer.md#tostring) +- [valueOf](json.integer.md#valueof) +- [Array](json.integer.md#array) +- [Bool](json.integer.md#bool) +- [Float](json.integer.md#float) +- [Integer](json.integer.md#integer) +- [Null](json.integer.md#null) +- [Number](json.integer.md#number) +- [Object](json.integer.md#object) +- [String](json.integer.md#string) + +## Constructors + +### constructor + +\+ **new Integer**(`_num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`_num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:229](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L229) + +## Properties + +### \_num + +• **\_num**: *number* + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Overrides: [Value](json.value.md) + +Defined in: [JSON.ts:234](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L234) + +___ + +### valueOf + +▸ **valueOf**(): *number* + +**Returns:** *number* + +Defined in: [JSON.ts:238](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L238) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/json.null.md b/docs/classes/json.null.md new file mode 100644 index 0000000..6653cc8 --- /dev/null +++ b/docs/classes/json.null.md @@ -0,0 +1,281 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Null + +# Class: Null + +[JSON](../modules/json.md).Null + +## Hierarchy + +* [*Value*](json.value.md) + + ↳ **Null** + +## Table of contents + +### Constructors + +- [constructor](json.null.md#constructor) + +### Accessors + +- [isArr](json.null.md#isarr) +- [isBool](json.null.md#isbool) +- [isFloat](json.null.md#isfloat) +- [isInteger](json.null.md#isinteger) +- [isNull](json.null.md#isnull) +- [isNum](json.null.md#isnum) +- [isObj](json.null.md#isobj) +- [isString](json.null.md#isstring) + +### Methods + +- [toString](json.null.md#tostring) +- [valueOf](json.null.md#valueof) +- [Array](json.null.md#array) +- [Bool](json.null.md#bool) +- [Float](json.null.md#float) +- [Integer](json.null.md#integer) +- [Null](json.null.md#null) +- [Number](json.null.md#number) +- [Object](json.null.md#object) +- [String](json.null.md#string) + +## Constructors + +### constructor + +\+ **new Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:243](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L243) + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Overrides: [Value](json.value.md) + +Defined in: [JSON.ts:248](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L248) + +___ + +### valueOf + +▸ **valueOf**(): *null* + +**Returns:** *null* + +Defined in: [JSON.ts:252](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L252) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/json.num.md b/docs/classes/json.num.md new file mode 100644 index 0000000..dad05d0 --- /dev/null +++ b/docs/classes/json.num.md @@ -0,0 +1,299 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Num + +# Class: Num + +[JSON](../modules/json.md).Num + +## Hierarchy + +* [*Value*](json.value.md) + + ↳ **Num** + + ↳↳ [*Float*](json.float.md) + +## Table of contents + +### Constructors + +- [constructor](json.num.md#constructor) + +### Properties + +- [\_num](json.num.md#_num) + +### Accessors + +- [isArr](json.num.md#isarr) +- [isBool](json.num.md#isbool) +- [isFloat](json.num.md#isfloat) +- [isInteger](json.num.md#isinteger) +- [isNull](json.num.md#isnull) +- [isNum](json.num.md#isnum) +- [isObj](json.num.md#isobj) +- [isString](json.num.md#isstring) + +### Methods + +- [toString](json.num.md#tostring) +- [valueOf](json.num.md#valueof) +- [Array](json.num.md#array) +- [Bool](json.num.md#bool) +- [Float](json.num.md#float) +- [Integer](json.num.md#integer) +- [Null](json.num.md#null) +- [Number](json.num.md#number) +- [Object](json.num.md#object) +- [String](json.num.md#string) + +## Constructors + +### constructor + +\+ **new Num**(`_num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`_num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:212](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L212) + +## Properties + +### \_num + +• **\_num**: *number* + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Overrides: [Value](json.value.md) + +Defined in: [JSON.ts:217](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L217) + +___ + +### valueOf + +▸ **valueOf**(): *number* + +**Returns:** *number* + +Defined in: [JSON.ts:221](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L221) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/json.obj.md b/docs/classes/json.obj.md new file mode 100644 index 0000000..7a718a9 --- /dev/null +++ b/docs/classes/json.obj.md @@ -0,0 +1,497 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Obj + +# Class: Obj + +[JSON](../modules/json.md).Obj + +## Hierarchy + +* [*Value*](json.value.md) + + ↳ **Obj** + +## Table of contents + +### Constructors + +- [constructor](json.obj.md#constructor) + +### Properties + +- [\_obj](json.obj.md#_obj) +- [keys](json.obj.md#keys) + +### Accessors + +- [isArr](json.obj.md#isarr) +- [isBool](json.obj.md#isbool) +- [isFloat](json.obj.md#isfloat) +- [isInteger](json.obj.md#isinteger) +- [isNull](json.obj.md#isnull) +- [isNum](json.obj.md#isnum) +- [isObj](json.obj.md#isobj) +- [isString](json.obj.md#isstring) + +### Methods + +- [\_set](json.obj.md#_set) +- [get](json.obj.md#get) +- [getArr](json.obj.md#getarr) +- [getBool](json.obj.md#getbool) +- [getFloat](json.obj.md#getfloat) +- [getInteger](json.obj.md#getinteger) +- [getNum](json.obj.md#getnum) +- [getString](json.obj.md#getstring) +- [getValue](json.obj.md#getvalue) +- [has](json.obj.md#has) +- [set](json.obj.md#set) +- [toString](json.obj.md#tostring) +- [valueOf](json.obj.md#valueof) +- [Array](json.obj.md#array) +- [Bool](json.obj.md#bool) +- [Float](json.obj.md#float) +- [Integer](json.obj.md#integer) +- [Null](json.obj.md#null) +- [Number](json.obj.md#number) +- [Object](json.obj.md#object) +- [String](json.obj.md#string) + +## Constructors + +### constructor + +\+ **new Obj**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:301](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L301) + +## Properties + +### \_obj + +• **\_obj**: *Map*<*string*, [*Value*](json.value.md)\> + +Defined in: [JSON.ts:300](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L300) + +___ + +### keys + +• **keys**: *string*[] + +Defined in: [JSON.ts:301](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L301) + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### \_set + +▸ `Private`**_set**(`key`: *string*, `value`: [*Value*](json.value.md)): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | +`value` | [*Value*](json.value.md) | + +**Returns:** *void* + +Defined in: [JSON.ts:333](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L333) + +___ + +### get + +▸ **get**(`key`: *string*): *null* \| [*Value*](json.value.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** *null* \| [*Value*](json.value.md) + +Defined in: [JSON.ts:344](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L344) + +___ + +### getArr + +▸ **getArr**(`key`: *string*): *null* \| [*Arr*](json.arr.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** *null* \| [*Arr*](json.arr.md) + +Defined in: [JSON.ts:395](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L395) + +___ + +### getBool + +▸ **getBool**(`key`: *string*): *null* \| [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** *null* \| [*Bool*](json.bool.md) + +Defined in: [JSON.ts:387](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L387) + +___ + +### getFloat + +▸ **getFloat**(`key`: *string*): *null* \| [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** *null* \| [*Float*](json.float.md) + +Defined in: [JSON.ts:371](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L371) + +___ + +### getInteger + +▸ **getInteger**(`key`: *string*): *null* \| [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** *null* \| [*Integer*](json.integer.md) + +Defined in: [JSON.ts:379](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L379) + +___ + +### getNum + +▸ **getNum**(`key`: *string*): *null* \| [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** *null* \| [*Num*](json.num.md) + +Defined in: [JSON.ts:363](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L363) + +___ + +### getString + +▸ **getString**(`key`: *string*): *null* \| [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** *null* \| [*Str*](json.str.md) + +Defined in: [JSON.ts:355](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L355) + +___ + +### getValue + +▸ **getValue**(`key`: *string*): *null* \| [*Value*](json.value.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** *null* \| [*Value*](json.value.md) + +Defined in: [JSON.ts:351](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L351) + +___ + +### has + +▸ **has**(`key`: *string*): bool + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | + +**Returns:** bool + +Defined in: [JSON.ts:340](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L340) + +___ + +### set + +▸ **set**(`key`: *string*, `value`: T): *void* + +#### Type parameters: + +Name | +------ | +`T` | + +#### Parameters: + +Name | Type | +------ | ------ | +`key` | *string* | +`value` | T | + +**Returns:** *void* + +Defined in: [JSON.ts:324](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L324) + +___ + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Overrides: [Value](json.value.md) + +Defined in: [JSON.ts:309](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L309) + +___ + +### valueOf + +▸ **valueOf**(): *Map*<*string*, [*Value*](json.value.md)\> + +**Returns:** *Map*<*string*, [*Value*](json.value.md)\> + +Defined in: [JSON.ts:319](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L319) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/json.str.md b/docs/classes/json.str.md new file mode 100644 index 0000000..e6c4832 --- /dev/null +++ b/docs/classes/json.str.md @@ -0,0 +1,297 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Str + +# Class: Str + +[JSON](../modules/json.md).Str + +## Hierarchy + +* [*Value*](json.value.md) + + ↳ **Str** + +## Table of contents + +### Constructors + +- [constructor](json.str.md#constructor) + +### Properties + +- [\_str](json.str.md#_str) + +### Accessors + +- [isArr](json.str.md#isarr) +- [isBool](json.str.md#isbool) +- [isFloat](json.str.md#isfloat) +- [isInteger](json.str.md#isinteger) +- [isNull](json.str.md#isnull) +- [isNum](json.str.md#isnum) +- [isObj](json.str.md#isobj) +- [isString](json.str.md#isstring) + +### Methods + +- [toString](json.str.md#tostring) +- [valueOf](json.str.md#valueof) +- [Array](json.str.md#array) +- [Bool](json.str.md#bool) +- [Float](json.str.md#float) +- [Integer](json.str.md#integer) +- [Null](json.str.md#null) +- [Number](json.str.md#number) +- [Object](json.str.md#object) +- [String](json.str.md#string) + +## Constructors + +### constructor + +\+ **new Str**(`_str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`_str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:198](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L198) + +## Properties + +### \_str + +• **\_str**: *string* + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Overrides: [Value](json.value.md) + +Defined in: [JSON.ts:203](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L203) + +___ + +### valueOf + +▸ **valueOf**(): *string* + +**Returns:** *string* + +Defined in: [JSON.ts:207](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L207) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Inherited from: [Value](json.value.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/json.value.md b/docs/classes/json.value.md new file mode 100644 index 0000000..411cbd9 --- /dev/null +++ b/docs/classes/json.value.md @@ -0,0 +1,260 @@ +[assemblyscript-json](../README.md) / [JSON](../modules/json.md) / Value + +# Class: Value + +[JSON](../modules/json.md).Value + +## Hierarchy + +* **Value** + + ↳ [*Str*](json.str.md) + + ↳ [*Num*](json.num.md) + + ↳ [*Integer*](json.integer.md) + + ↳ [*Null*](json.null.md) + + ↳ [*Bool*](json.bool.md) + + ↳ [*Arr*](json.arr.md) + + ↳ [*Obj*](json.obj.md) + +## Table of contents + +### Constructors + +- [constructor](json.value.md#constructor) + +### Accessors + +- [isArr](json.value.md#isarr) +- [isBool](json.value.md#isbool) +- [isFloat](json.value.md#isfloat) +- [isInteger](json.value.md#isinteger) +- [isNull](json.value.md#isnull) +- [isNum](json.value.md#isnum) +- [isObj](json.value.md#isobj) +- [isString](json.value.md#isstring) + +### Methods + +- [toString](json.value.md#tostring) +- [Array](json.value.md#array) +- [Bool](json.value.md#bool) +- [Float](json.value.md#float) +- [Integer](json.value.md#integer) +- [Null](json.value.md#null) +- [Number](json.value.md#number) +- [Object](json.value.md#object) +- [String](json.value.md#string) + +## Constructors + +### constructor + +\+ **new Value**(): [*Value*](json.value.md) + +**Returns:** [*Value*](json.value.md) + +## Accessors + +### isArr + +• **isArr**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:178](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L178) + +___ + +### isBool + +• **isBool**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:164](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L164) + +___ + +### isFloat + +• **isFloat**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:150](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L150) + +___ + +### isInteger + +• **isInteger**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:157](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L157) + +___ + +### isNull + +• **isNull**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:171](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L171) + +___ + +### isNum + +• **isNum**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:143](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L143) + +___ + +### isObj + +• **isObj**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:185](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L185) + +___ + +### isString + +• **isString**(): *boolean* + +**Returns:** *boolean* + +Defined in: [JSON.ts:136](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L136) + +## Methods + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Defined in: [JSON.ts:192](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L192) + +___ + +### Array + +▸ `Static`**Array**(): [*Arr*](json.arr.md) + +**Returns:** [*Arr*](json.arr.md) + +Defined in: [JSON.ts:129](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L129) + +___ + +### Bool + +▸ `Static`**Bool**(`b`: bool): [*Bool*](json.bool.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`b` | bool | + +**Returns:** [*Bool*](json.bool.md) + +Defined in: [JSON.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L123) + +___ + +### Float + +▸ `Static`**Float**(`num`: *number*): [*Float*](json.float.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Float*](json.float.md) + +Defined in: [JSON.ts:117](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L117) + +___ + +### Integer + +▸ `Static`**Integer**(`num`: *number*): [*Integer*](json.integer.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Integer*](json.integer.md) + +Defined in: [JSON.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L120) + +___ + +### Null + +▸ `Static`**Null**(): [*Null*](json.null.md) + +**Returns:** [*Null*](json.null.md) + +Defined in: [JSON.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L126) + +___ + +### Number + +▸ `Static`**Number**(`num`: *number*): [*Num*](json.num.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`num` | *number* | + +**Returns:** [*Num*](json.num.md) + +Defined in: [JSON.ts:114](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L114) + +___ + +### Object + +▸ `Static`**Object**(): [*Obj*](json.obj.md) + +**Returns:** [*Obj*](json.obj.md) + +Defined in: [JSON.ts:132](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L132) + +___ + +### String + +▸ `Static`**String**(`str`: *string*): [*Str*](json.str.md) + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** [*Str*](json.str.md) + +Defined in: [JSON.ts:111](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L111) diff --git a/docs/classes/jsondecoder.md b/docs/classes/jsondecoder.md new file mode 100644 index 0000000..c52f6d6 --- /dev/null +++ b/docs/classes/jsondecoder.md @@ -0,0 +1,297 @@ +[assemblyscript-json](../README.md) / JSONDecoder + +# Class: JSONDecoder + +## Type parameters + +Name | Type | +------ | ------ | +`JSONHandlerT` | [*JSONHandler*](jsonhandler.md) | + +## Hierarchy + +* **JSONDecoder** + +## Table of contents + +### Constructors + +- [constructor](jsondecoder.md#constructor) + +### Properties + +- [\_state](jsondecoder.md#_state) +- [handler](jsondecoder.md#handler) + +### Accessors + +- [state](jsondecoder.md#state) + +### Methods + +- [deserialize](jsondecoder.md#deserialize) +- [isWhitespace](jsondecoder.md#iswhitespace) +- [parseArray](jsondecoder.md#parsearray) +- [parseBoolean](jsondecoder.md#parseboolean) +- [parseKey](jsondecoder.md#parsekey) +- [parseNull](jsondecoder.md#parsenull) +- [parseNumber](jsondecoder.md#parsenumber) +- [parseObject](jsondecoder.md#parseobject) +- [parseString](jsondecoder.md#parsestring) +- [parseValue](jsondecoder.md#parsevalue) +- [peekChar](jsondecoder.md#peekchar) +- [readAndAssert](jsondecoder.md#readandassert) +- [readChar](jsondecoder.md#readchar) +- [readEscapedChar](jsondecoder.md#readescapedchar) +- [readHexDigit](jsondecoder.md#readhexdigit) +- [readString](jsondecoder.md#readstring) +- [skipWhitespace](jsondecoder.md#skipwhitespace) + +## Constructors + +### constructor + +\+ **new JSONDecoder**(`handler`: JSONHandlerT): [*JSONDecoder*](jsondecoder.md) + +#### Type parameters: + +Name | Type | +------ | ------ | +`JSONHandlerT` | [*JSONHandler*](jsonhandler.md) | + +#### Parameters: + +Name | Type | +------ | ------ | +`handler` | JSONHandlerT | + +**Returns:** [*JSONDecoder*](jsondecoder.md) + +Defined in: [decoder.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L120) + +## Properties + +### \_state + +• **\_state**: *null* \| [*DecoderState*](decoderstate.md)= null + +Defined in: [decoder.ts:120](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L120) + +___ + +### handler + +• **handler**: JSONHandlerT + +Defined in: [decoder.ts:119](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L119) + +## Accessors + +### state + +• **state**(): [*DecoderState*](decoderstate.md) + +**Returns:** [*DecoderState*](decoderstate.md) + +Defined in: [decoder.ts:126](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L126) + +• **state**(`state`: [*DecoderState*](decoderstate.md)): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`state` | [*DecoderState*](decoderstate.md) | + +**Returns:** *void* + +Defined in: [decoder.ts:130](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L130) + +## Methods + +### deserialize + +▸ **deserialize**(`buffer`: *Uint8Array*, `decoderState?`: *null* \| [*DecoderState*](decoderstate.md)): *void* + +#### Parameters: + +Name | Type | Default value | +------ | ------ | ------ | +`buffer` | *Uint8Array* | - | +`decoderState` | *null* \| [*DecoderState*](decoderstate.md) | null | + +**Returns:** *void* + +Defined in: [decoder.ts:134](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L134) + +___ + +### isWhitespace + +▸ `Private`**isWhitespace**(`charCode`: *number*): bool + +#### Parameters: + +Name | Type | +------ | ------ | +`charCode` | *number* | + +**Returns:** bool + +Defined in: [decoder.ts:406](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L406) + +___ + +### parseArray + +▸ `Private`**parseArray**(): bool + +**Returns:** bool + +Defined in: [decoder.ts:210](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L210) + +___ + +### parseBoolean + +▸ `Private`**parseBoolean**(): bool + +**Returns:** bool + +Defined in: [decoder.ts:370](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L370) + +___ + +### parseKey + +▸ `Private`**parseKey**(): *void* + +**Returns:** *void* + +Defined in: [decoder.ts:203](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L203) + +___ + +### parseNull + +▸ `Private`**parseNull**(): bool + +**Returns:** bool + +Defined in: [decoder.ts:385](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L385) + +___ + +### parseNumber + +▸ `Private`**parseNumber**(): bool + +**Returns:** bool + +Defined in: [decoder.ts:323](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L323) + +___ + +### parseObject + +▸ `Private`**parseObject**(): bool + +**Returns:** bool + +Defined in: [decoder.ts:176](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L176) + +___ + +### parseString + +▸ `Private`**parseString**(): bool + +**Returns:** bool + +Defined in: [decoder.ts:236](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L236) + +___ + +### parseValue + +▸ `Private`**parseValue**(): bool + +**Returns:** bool + +Defined in: [decoder.ts:163](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L163) + +___ + +### peekChar + +▸ `Private`**peekChar**(): *number* + +**Returns:** *number* + +Defined in: [decoder.ts:148](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L148) + +___ + +### readAndAssert + +▸ `Private`**readAndAssert**(`str`: *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** *void* + +Defined in: [decoder.ts:394](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L394) + +___ + +### readChar + +▸ `Private`**readChar**(): *number* + +**Returns:** *number* + +Defined in: [decoder.ts:155](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L155) + +___ + +### readEscapedChar + +▸ `Private`**readEscapedChar**(): *string* + +**Returns:** *string* + +Defined in: [decoder.ts:274](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L274) + +___ + +### readHexDigit + +▸ `Private`**readHexDigit**(): *number* + +**Returns:** *number* + +Defined in: [decoder.ts:310](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L310) + +___ + +### readString + +▸ `Private`**readString**(): *string* + +**Returns:** *string* + +Defined in: [decoder.ts:244](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L244) + +___ + +### skipWhitespace + +▸ `Private`**skipWhitespace**(): *void* + +**Returns:** *void* + +Defined in: [decoder.ts:400](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L400) diff --git a/docs/classes/jsonencoder.md b/docs/classes/jsonencoder.md new file mode 100644 index 0000000..1e7b17e --- /dev/null +++ b/docs/classes/jsonencoder.md @@ -0,0 +1,330 @@ +[assemblyscript-json](../README.md) / JSONEncoder + +# Class: JSONEncoder + +## Hierarchy + +* **JSONEncoder** + +## Table of contents + +### Constructors + +- [constructor](jsonencoder.md#constructor) + +### Properties + +- [\_isFirstKey](jsonencoder.md#_isfirstkey) +- [result](jsonencoder.md#result) + +### Accessors + +- [isFirstKey](jsonencoder.md#isfirstkey) + +### Methods + +- [popArray](jsonencoder.md#poparray) +- [popObject](jsonencoder.md#popobject) +- [pushArray](jsonencoder.md#pusharray) +- [pushObject](jsonencoder.md#pushobject) +- [serialize](jsonencoder.md#serialize) +- [setBoolean](jsonencoder.md#setboolean) +- [setFloat](jsonencoder.md#setfloat) +- [setInteger](jsonencoder.md#setinteger) +- [setNull](jsonencoder.md#setnull) +- [setString](jsonencoder.md#setstring) +- [toString](jsonencoder.md#tostring) +- [write](jsonencoder.md#write) +- [writeBoolean](jsonencoder.md#writeboolean) +- [writeFloat](jsonencoder.md#writefloat) +- [writeInteger](jsonencoder.md#writeinteger) +- [writeKey](jsonencoder.md#writekey) +- [writeString](jsonencoder.md#writestring) + +## Constructors + +### constructor + +\+ **new JSONEncoder**(): [*JSONEncoder*](jsonencoder.md) + +**Returns:** [*JSONEncoder*](jsonencoder.md) + +Defined in: [encoder.ts:5](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L5) + +## Properties + +### \_isFirstKey + +• `Private` **\_isFirstKey**: *number*[] + +Defined in: [encoder.ts:4](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L4) + +___ + +### result + +• `Private` **result**: *string*[] + +Defined in: [encoder.ts:5](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L5) + +## Accessors + +### isFirstKey + +• **isFirstKey**(): bool + +**Returns:** bool + +Defined in: [encoder.ts:13](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L13) + +## Methods + +### popArray + +▸ **popArray**(): *void* + +**Returns:** *void* + +Defined in: [encoder.ts:58](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L58) + +___ + +### popObject + +▸ **popObject**(): *void* + +**Returns:** *void* + +Defined in: [encoder.ts:70](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L70) + +___ + +### pushArray + +▸ **pushArray**(`name`: *null* \| *string*): bool + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *null* \| *string* | + +**Returns:** bool + +Defined in: [encoder.ts:51](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L51) + +___ + +### pushObject + +▸ **pushObject**(`name`: *null* \| *string*): bool + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *null* \| *string* | + +**Returns:** bool + +Defined in: [encoder.ts:63](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L63) + +___ + +### serialize + +▸ **serialize**(): *Uint8Array* + +**Returns:** *Uint8Array* + +Defined in: [encoder.ts:17](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L17) + +___ + +### setBoolean + +▸ **setBoolean**(`name`: *null* \| *string*, `value`: bool): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *null* \| *string* | +`value` | bool | + +**Returns:** *void* + +Defined in: [encoder.ts:31](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L31) + +___ + +### setFloat + +▸ **setFloat**(`name`: *null* \| *string*, `value`: *number*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *null* \| *string* | +`value` | *number* | + +**Returns:** *void* + +Defined in: [encoder.ts:46](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L46) + +___ + +### setInteger + +▸ **setInteger**(`name`: *null* \| *string*, `value`: *number*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *null* \| *string* | +`value` | *number* | + +**Returns:** *void* + +Defined in: [encoder.ts:41](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L41) + +___ + +### setNull + +▸ **setNull**(`name`: *null* \| *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *null* \| *string* | + +**Returns:** *void* + +Defined in: [encoder.ts:36](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L36) + +___ + +### setString + +▸ **setString**(`name`: *null* \| *string*, `value`: *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *null* \| *string* | +`value` | *string* | + +**Returns:** *void* + +Defined in: [encoder.ts:26](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L26) + +___ + +### toString + +▸ **toString**(): *string* + +**Returns:** *string* + +Defined in: [encoder.ts:22](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L22) + +___ + +### write + +▸ `Private`**write**(`str`: *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** *void* + +Defined in: [encoder.ts:135](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L135) + +___ + +### writeBoolean + +▸ `Private`**writeBoolean**(`value`: bool): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`value` | bool | + +**Returns:** *void* + +Defined in: [encoder.ts:123](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L123) + +___ + +### writeFloat + +▸ `Private`**writeFloat**(`value`: *number*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`value` | *number* | + +**Returns:** *void* + +Defined in: [encoder.ts:131](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L131) + +___ + +### writeInteger + +▸ `Private`**writeInteger**(`value`: *number*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`value` | *number* | + +**Returns:** *void* + +Defined in: [encoder.ts:127](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L127) + +___ + +### writeKey + +▸ `Private`**writeKey**(`str`: *null* \| *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *null* \| *string* | + +**Returns:** *void* + +Defined in: [encoder.ts:75](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L75) + +___ + +### writeString + +▸ `Private`**writeString**(`str`: *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | *string* | + +**Returns:** *void* + +Defined in: [encoder.ts:87](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/encoder.ts#L87) diff --git a/docs/classes/jsonhandler.md b/docs/classes/jsonhandler.md new file mode 100644 index 0000000..fed62c2 --- /dev/null +++ b/docs/classes/jsonhandler.md @@ -0,0 +1,174 @@ +[assemblyscript-json](../README.md) / JSONHandler + +# Class: JSONHandler + +Extend from this class to handle events from parser. +Default implementation traverses whole object tree and does nothing. + +## Hierarchy + +* **JSONHandler** + + ↳ [*ThrowingJSONHandler*](throwingjsonhandler.md) + +## Table of contents + +### Constructors + +- [constructor](jsonhandler.md#constructor) + +### Methods + +- [popArray](jsonhandler.md#poparray) +- [popObject](jsonhandler.md#popobject) +- [pushArray](jsonhandler.md#pusharray) +- [pushObject](jsonhandler.md#pushobject) +- [setBoolean](jsonhandler.md#setboolean) +- [setFloat](jsonhandler.md#setfloat) +- [setInteger](jsonhandler.md#setinteger) +- [setNull](jsonhandler.md#setnull) +- [setString](jsonhandler.md#setstring) + +## Constructors + +### constructor + +\+ **new JSONHandler**(): [*JSONHandler*](jsonhandler.md) + +**Returns:** [*JSONHandler*](jsonhandler.md) + +## Methods + +### popArray + +▸ **popArray**(): *void* + +**Returns:** *void* + +Defined in: [decoder.ts:22](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L22) + +___ + +### popObject + +▸ **popObject**(): *void* + +**Returns:** *void* + +Defined in: [decoder.ts:28](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L28) + +___ + +### pushArray + +▸ **pushArray**(`name`: *string*): bool + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | + +**Returns:** bool + +Defined in: [decoder.ts:18](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L18) + +___ + +### pushObject + +▸ **pushObject**(`name`: *string*): bool + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | + +**Returns:** bool + +Defined in: [decoder.ts:24](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L24) + +___ + +### setBoolean + +▸ **setBoolean**(`name`: *string*, `value`: bool): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | +`value` | bool | + +**Returns:** *void* + +Defined in: [decoder.ts:10](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L10) + +___ + +### setFloat + +▸ **setFloat**(`name`: *string*, `value`: *number*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | +`value` | *number* | + +**Returns:** *void* + +Defined in: [decoder.ts:16](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L16) + +___ + +### setInteger + +▸ **setInteger**(`name`: *string*, `value`: *number*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | +`value` | *number* | + +**Returns:** *void* + +Defined in: [decoder.ts:14](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L14) + +___ + +### setNull + +▸ **setNull**(`name`: *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | + +**Returns:** *void* + +Defined in: [decoder.ts:12](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L12) + +___ + +### setString + +▸ **setString**(`name`: *string*, `value`: *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | +`value` | *string* | + +**Returns:** *void* + +Defined in: [decoder.ts:8](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L8) diff --git a/docs/classes/throwingjsonhandler.md b/docs/classes/throwingjsonhandler.md new file mode 100644 index 0000000..1a8ca29 --- /dev/null +++ b/docs/classes/throwingjsonhandler.md @@ -0,0 +1,195 @@ +[assemblyscript-json](../README.md) / ThrowingJSONHandler + +# Class: ThrowingJSONHandler + +Extend from this class to handle events from parser. +This implementation crashes on every unimplemented set/push method +to allow easier validation of input. + +## Hierarchy + +* [*JSONHandler*](jsonhandler.md) + + ↳ **ThrowingJSONHandler** + +## Table of contents + +### Constructors + +- [constructor](throwingjsonhandler.md#constructor) + +### Methods + +- [popArray](throwingjsonhandler.md#poparray) +- [popObject](throwingjsonhandler.md#popobject) +- [pushArray](throwingjsonhandler.md#pusharray) +- [pushObject](throwingjsonhandler.md#pushobject) +- [setBoolean](throwingjsonhandler.md#setboolean) +- [setFloat](throwingjsonhandler.md#setfloat) +- [setInteger](throwingjsonhandler.md#setinteger) +- [setNull](throwingjsonhandler.md#setnull) +- [setString](throwingjsonhandler.md#setstring) + +## Constructors + +### constructor + +\+ **new ThrowingJSONHandler**(): [*ThrowingJSONHandler*](throwingjsonhandler.md) + +**Returns:** [*ThrowingJSONHandler*](throwingjsonhandler.md) + +Inherited from: [JSONHandler](jsonhandler.md) + +## Methods + +### popArray + +▸ **popArray**(): *void* + +**Returns:** *void* + +Inherited from: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:22](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L22) + +___ + +### popObject + +▸ **popObject**(): *void* + +**Returns:** *void* + +Inherited from: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:28](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L28) + +___ + +### pushArray + +▸ **pushArray**(`name`: *string*): bool + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | + +**Returns:** bool + +Overrides: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:68](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L68) + +___ + +### pushObject + +▸ **pushObject**(`name`: *string*): bool + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | + +**Returns:** bool + +Overrides: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:73](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L73) + +___ + +### setBoolean + +▸ **setBoolean**(`name`: *string*, `value`: bool): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | +`value` | bool | + +**Returns:** *void* + +Overrides: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:41](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L41) + +___ + +### setFloat + +▸ **setFloat**(`name`: *string*, `value`: *number*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | +`value` | *number* | + +**Returns:** *void* + +Overrides: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:60](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L60) + +___ + +### setInteger + +▸ **setInteger**(`name`: *string*, `value`: *number*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | +`value` | *number* | + +**Returns:** *void* + +Overrides: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:52](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L52) + +___ + +### setNull + +▸ **setNull**(`name`: *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | + +**Returns:** *void* + +Overrides: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:48](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L48) + +___ + +### setString + +▸ **setString**(`name`: *string*, `value`: *string*): *void* + +#### Parameters: + +Name | Type | +------ | ------ | +`name` | *string* | +`value` | *string* | + +**Returns:** *void* + +Overrides: [JSONHandler](jsonhandler.md) + +Defined in: [decoder.ts:37](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/decoder.ts#L37) diff --git a/docs/modules/json.md b/docs/modules/json.md new file mode 100644 index 0000000..0a0d975 --- /dev/null +++ b/docs/modules/json.md @@ -0,0 +1,66 @@ +[assemblyscript-json](../README.md) / JSON + +# Namespace: JSON + +## Table of contents + +### Classes + +- [Arr](../classes/json.arr.md) +- [Bool](../classes/json.bool.md) +- [Float](../classes/json.float.md) +- [Integer](../classes/json.integer.md) +- [Null](../classes/json.null.md) +- [Num](../classes/json.num.md) +- [Obj](../classes/json.obj.md) +- [Str](../classes/json.str.md) +- [Value](../classes/json.value.md) + +### Functions + +- [from](json.md#from) +- [parse](json.md#parse) + +## Functions + +### from + +▸ **from**(`val`: T): [*Value*](../classes/json.value.md) + +#### Type parameters: + +Name | +------ | +`T` | + +#### Parameters: + +Name | Type | +------ | ------ | +`val` | T | + +**Returns:** [*Value*](../classes/json.value.md) + +Defined in: [JSON.ts:404](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L404) + +___ + +### parse + +▸ **parse**(`str`: T): [*Value*](../classes/json.value.md) + +#### Type parameters: + +Name | Default | +------ | ------ | +`T` | *Uint8Array* | + +#### Parameters: + +Name | Type | +------ | ------ | +`str` | T | + +**Returns:** [*Value*](../classes/json.value.md) + +Defined in: [JSON.ts:437](https://github.com/torch2424/assemblyscript-json/blob/d5af3b8/assembly/JSON.ts#L437) diff --git a/package.json b/package.json index d8242d5..c0a4b63 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "asbuild": "yarn asbuild:untouched && yarn asbuild:optimized", "lint": "eslint --max-warnings 0 --ext ts \"assembly/**/*.ts\"", "lint:fix": "yarn lint --fix", + "docs": "typedoc --plugin typedoc-plugin-markdown --out temp-docs --tsconfig assembly/tsconfig.json --exclude \"node_modules/**/*\" --readme none assembly/index.ts", + "docs:deploy": "cp -r temp-docs/* docs", "test": "asp" }, "husky": { @@ -22,6 +24,8 @@ "assemblyscript": "^0.15.0", "eslint": "^7.17.0", "husky": "^4.3.7", + "typedoc": "^0.20.21", + "typedoc-plugin-markdown": "^3.4.5", "typescript": "^4.1.3" } } diff --git a/yarn.lock b/yarn.lock index 55aad6a..fb18e30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -270,6 +270,11 @@ astral-regex@^2.0.0: resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -346,6 +351,11 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +colors@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + commander@^2.19.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -628,11 +638,26 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.0.tgz#a5d06b4a8b01e3a63771daa5cb7a1903e2e57067" integrity sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA== +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== + dependencies: + at-least-node "^1.0.0" + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -645,7 +670,7 @@ glob-parent@^5.0.0, glob-parent@^5.1.0: dependencies: is-glob "^4.0.1" -glob@^7.1.3, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.6: version "7.1.6" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== @@ -676,6 +701,23 @@ globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" +graceful-fs@^4.1.6, graceful-fs@^4.2.0: + version "4.2.5" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.5.tgz#bc18864a6c9fc7b303f2e2abdb9155ad178fbe29" + integrity sha512-kBBSQbz2K0Nyn+31j/w36fUfxkBW9/gfwRWdUY1ULReH3iokVJgddZAFcD1D0xlgTmFxJCbUkUclAlc6/IDJkw== + +handlebars@^4.7.6: + version "4.7.6" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.6.tgz#d4c05c1baf90e9945f77aa68a7a219aa4a7df74e" + integrity sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.0" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -686,6 +728,13 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + husky@^4.3.7: version "4.3.7" resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.7.tgz#ca47bbe6213c1aa8b16bbd504530d9600de91e88" @@ -738,11 +787,23 @@ inherits@2: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-core-module@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" + integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== + dependencies: + has "^1.0.3" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -803,6 +864,22 @@ json-stable-stringify-without-jsonify@^1.0.1: resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= +json5@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== + dependencies: + minimist "^1.2.5" + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -833,6 +910,13 @@ long@^4.0.0: resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -840,6 +924,16 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + +marked@^1.2.8: + version "1.2.9" + resolved "https://registry.yarnpkg.com/marked/-/marked-1.2.9.tgz#53786f8b05d4c01a2a5a76b7d1ec9943d29d72dc" + integrity sha512-H8lIX2SvyitGX+TRdtS06m1jHMijKN/XjfH6Ooii9fvxMlh8QdqBfBDkGUpMWH2kQNrtixjzYUa3SH8ROTgRRw== + merge2@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" @@ -853,13 +947,18 @@ micromatch@^4.0.2: braces "^3.0.1" picomatch "^2.0.5" -minimatch@^3.0.4: +minimatch@^3.0.0, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + moo@^0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/moo/-/moo-0.5.1.tgz#7aae7f384b9b09f620b6abf6f74ebbcd1b65dbc4" @@ -885,6 +984,11 @@ nearley@^2.19.3: railroad-diagrams "^1.0.0" randexp "0.4.6" +neo-async@^2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + once@^1.3.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -892,6 +996,13 @@ once@^1.3.0: dependencies: wrappy "1" +onigasm@^2.2.5: + version "2.2.5" + resolved "https://registry.yarnpkg.com/onigasm/-/onigasm-2.2.5.tgz#cc4d2a79a0fa0b64caec1f4c7ea367585a676892" + integrity sha512-F+th54mPc0l1lp1ZcFMyL/jTs2Tlq4SqIHKIXGZOR/VkHkF9A7Fr5rRr5+ZG/lWeRsyrClLYRq7s/yFQ/XhWCA== + dependencies: + lru-cache "^5.1.1" + opencollective-postinstall@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259" @@ -955,6 +1066,11 @@ path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -984,7 +1100,7 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -progress@^2.0.0: +progress@^2.0.0, progress@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -1007,6 +1123,13 @@ randexp@0.4.6: discontinuous-range "1.0.0" ret "~0.1.10" +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q= + dependencies: + resolve "^1.1.6" + regexpp@^3.0.0, regexpp@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" @@ -1022,6 +1145,14 @@ resolve-from@^4.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve@^1.1.6: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + ret@~0.1.10: version "0.1.15" resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" @@ -1073,6 +1204,40 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shelljs@^0.8.4: + version "0.8.4" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.4.tgz#de7684feeb767f8716b326078a8a00875890e3c2" + integrity sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shiki-languages@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/shiki-languages/-/shiki-languages-0.2.7.tgz#7230b675b96d37a36ac1bf995525375ce69f3924" + integrity sha512-REmakh7pn2jCn9GDMRSK36oDgqhh+rSvJPo77sdWTOmk44C5b0XlYPwJZcFOMJWUZJE0c7FCbKclw4FLwUKLRw== + dependencies: + vscode-textmate "^5.2.0" + +shiki-themes@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/shiki-themes/-/shiki-themes-0.2.7.tgz#6e04451d832152e0fc969876a7bd926b3963c1f2" + integrity sha512-ZMmboDYw5+SEpugM8KGUq3tkZ0vXg+k60XX6NngDK7gc1Sv6YLUlanpvG3evm57uKJvfXsky/S5MzSOTtYKLjA== + dependencies: + json5 "^2.1.0" + vscode-textmate "^5.2.0" + +shiki@^0.2.7: + version "0.2.7" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.2.7.tgz#d2547548ed8742673730e1e4bbe792a77c445540" + integrity sha512-bwVc7cdtYYHEO9O+XJ8aNOskKRfaQd5Y4ovLRfbQkmiLSUaR+bdlssbZUUhbQ0JAFMYcTcJ5tjG5KtnufttDHQ== + dependencies: + onigasm "^2.2.5" + shiki-languages "^0.2.7" + shiki-themes "^0.2.7" + vscode-textmate "^5.2.0" + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -1087,6 +1252,11 @@ slice-ansi@^4.0.0: astral-regex "^2.0.0" is-fullwidth-code-point "^3.0.0" +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -1173,11 +1343,50 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +typedoc-default-themes@^0.12.7: + version "0.12.7" + resolved "https://registry.yarnpkg.com/typedoc-default-themes/-/typedoc-default-themes-0.12.7.tgz#d44f68d40a3e90a19b5ea7be4cc6ed949afe768d" + integrity sha512-0XAuGEqID+gon1+fhi4LycOEFM+5Mvm2PjwaiVZNAzU7pn3G2DEpsoXnFOPlLDnHY6ZW0BY0nO7ur9fHOFkBLQ== + +typedoc-plugin-markdown@^3.4.5: + version "3.4.5" + resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.4.5.tgz#d32aad06a9b93946a31ea68438cd02620c12e857" + integrity sha512-m24mSCGcEk6tQDCHIG4TM3AS2a7e9NtC/YdO0mefyF+z1/bKYnZ/oQswLZmm2zBngiLIoKX6eNdufdBpQNPtrA== + dependencies: + handlebars "^4.7.6" + +typedoc@^0.20.21: + version "0.20.21" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.20.21.tgz#e83a5d599173ae4bbc6402c9a510e1f0a85c1972" + integrity sha512-KAXRnKyyhdA5Wgd96QMdld7gvlL/izUaJi2FAf6KoGuRNgYIUVHQy4KExl9enMt24l/y4LgTFqR6aw3P8NGiZg== + dependencies: + colors "^1.4.0" + fs-extra "^9.1.0" + handlebars "^4.7.6" + lodash "^4.17.20" + lunr "^2.3.9" + marked "^1.2.8" + minimatch "^3.0.0" + progress "^2.0.3" + shelljs "^0.8.4" + shiki "^0.2.7" + typedoc-default-themes "^0.12.7" + typescript@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.1.3.tgz#519d582bd94cba0cf8934c7d8e8467e473f53bb7" integrity sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg== +uglify-js@^3.1.4: + version "3.12.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.12.6.tgz#f884584fcc42e10bca70db5cb32e8625c2c42535" + integrity sha512-aqWHe3DfQmZUDGWBbabZ2eQnJlQd1fKlMUu7gV+MiTuDzdgDw31bI3wA2jLLsV/hNcDP26IfyEgSVoft5+0SVw== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -1190,6 +1399,11 @@ v8-compile-cache@^2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== +vscode-textmate@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" + integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== + which-pm-runs@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb" @@ -1207,11 +1421,21 @@ word-wrap@^1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus= + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"