Skip to content

Commit

Permalink
Better typing
Browse files Browse the repository at this point in the history
  • Loading branch information
safareli committed Jan 19, 2021
1 parent 0a1b005 commit daa6489
Showing 1 changed file with 37 additions and 4 deletions.
41 changes: 37 additions & 4 deletions types.d.ts
Original file line number Diff line number Diff line change
@@ -1,19 +1,52 @@
interface Flatted {
/**
* Converts a JavaScript Object Notation (using Flatted encoding) string into an object.
* @param text A valid Flatted string.
* @param reviver A function that transforms the results. This function is called for each member of the object.
* If a member contains nested objects, the nested objects are transformed before the parent object is.
*/
parse(
text: string,
reviver?: (this: any, key: string, value: any) => any
): any;
/**
* Converts a JavaScript value to a JavaScript Object Notation (using Flatted encoding) string.
* @param value A JavaScript value, usually an object or array, to be converted.
* @param replacer A function that transforms the results.
* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
*/
stringify(
value: any,
replacer?: (this: any, key: string, value: any) => any,
space?: string | number
): string;
/**
* Converts a JavaScript value to a JavaScript Object Notation (using Flatted encoding) string.
* @param value A JavaScript value, usually an object or array, to be converted.
* @param replacer An array of strings and numbers that acts as an approved list for selecting the object properties that will be stringified.
* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
*/
stringify(
value: any,
replacer?: (number | string)[] | null,
space?: string | number
): string;
}

/**
* Fast and minimal circular JSON parser.
* logic example
```js
var a = [{one: 1}, {two: '2'}];
var a = [{one: 1}, {two: '2'}];
a[0].a = a;
// a is the main object, will be at index '0'
// {one: 1} is the second object, index '1'
// {two: '2'} the third, in '2', and it has a string
// which will be found at index '3'
Flatted.stringify(a);
// [["1","2"],{"one":1,"a":"0"},{"two":"3"},"2"]
// a[one,two] {one: 1, a} {two: '2'} '2'
```
*/
declare const Flatted: typeof JSON;

declare const Flatted: Flatted;
export = Flatted;

0 comments on commit daa6489

Please sign in to comment.