Skip to content

Commit

Permalink
Merge pull request #261 from samchon/features/create
Browse files Browse the repository at this point in the history
Develop #247 - reusable factory functions
  • Loading branch information
samchon authored Oct 23, 2022
2 parents be970a2 + 2f41130 commit 1f63f13
Show file tree
Hide file tree
Showing 513 changed files with 5,401 additions and 422 deletions.
27 changes: 16 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,6 @@ Super-fast Runtime validators and `JSON.stringify()` functions, with only one li
```typescript
import TSON from "typescript-json";

//----
// RUNTIME VALIDATORS
//----
// ALLOW SUPERFLUOUS PROPERTIES
TSON.assertType<T>(input); // throws exception
TSON.is<T>(input); // returns boolean value
Expand All @@ -27,9 +24,7 @@ TSON.equals<T>(input); // returns boolean value
TSON.assertEquals<T>(input); // throws exception
TSON.validateEquals<T>(input); // archives all errors

//----
// APPENDIX FUNCTIONS
//----
TSON.stringify<T>(input); // 5x faster JSON.stringify()
TSON.application<[T, U, V], "swagger">(); // JSON schema application generator
TSON.createObject<T>(input); // 2x faster object creator (only one-time construction)
Expand Down Expand Up @@ -162,15 +157,25 @@ module.exports = {
### Runtime Validators
```typescript
// ALLOW SUPERFLUOUS PROPERTIES
export function is<T>(input: T): boolean; // true or false
export function assertType<T>(input: T): T; // throws `TypeGuardError`
export function validate<T>(input: T): IValidation; // detailed reasons
export function is<T>(input: T | unknown): input is T; // true or false
export function assertType<T>(input: T | unknown): T; // throws `TypeGuardError`
export function validate<T>(input: T | unknown): IValidation; // detailed reasons

// DO NOT ALLOW SUPERFLUOUS PROPERTIES
export function equals<T>(input: T): boolean;
export function assertEquals<T>(input: T): T;
export function validateEquals<T>(input: T): IValidation;
export function equals<T>(input: T | unknown): boolean;
export function assertEquals<T>(input: T | unknown): T;
export function validateEquals<T>(input: T | unknown): IValidation;

// REUSABLE FUNCTIONS
export function createIs<T>(): (input: unknown): input is T;
export function createAssertType<T>(): (input: unknown) => T;
export function createValidate<T>(): (input: unknown) => IValidation;

export function createEquals<T>(): (input: unknown) => input is T;
export function createAssertEquals<T>(): (input: unknown) => T;
export function createValidateEquals<T>(): (input: unknown) => IValidation;

// DATA STRUCTURES
export interface IValidation {
success: boolean;
errors: IValidation.IError[];
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "typescript-json",
"version": "3.3.12",
"version": "3.3.13",
"description": "Runtime type checkers and 5x faster JSON.stringify() function",
"main": "lib/index.js",
"typings": "lib/index.d.ts",
Expand Down
Loading

0 comments on commit 1f63f13

Please sign in to comment.