Skip to content

Commit cd84294

Browse files
committed
cleaned up tsconfig and lib
1 parent b7802d0 commit cd84294

File tree

8 files changed

+75
-63
lines changed

8 files changed

+75
-63
lines changed

lib/schemaDefiner.d.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,17 @@
1+
import { SafeSchema } from './schemaDefinerTypes';
12
import { ArrayBufferBuilder, ArrayBufferReader } from './arrayBufferBuilder';
3+
export declare type SchemaGenerator<T> = {
4+
readerFunction: (reader: ArrayBufferReader) => T;
5+
adderFunction: (buff: ArrayBufferBuilder, value: T) => ArrayBuffer;
6+
adderSizeFunction: (value: T) => number;
7+
};
28
export declare class SchemaDefiner {
39
static generateAdderFunction(schema: any): any;
410
static generateAdderSizeFunction(schema: any): any;
511
static generateReaderFunction(schema: any): any;
6-
static startAddSchemaBuffer(value: any, adderSizeFunction: (value: any) => number, adderFunction: (buff: ArrayBufferBuilder, value: any) => ArrayBuffer): ArrayBuffer;
7-
static startReadSchemaBuffer(buffer: ArrayBuffer | ArrayBufferLike, readerFunction: (reader: ArrayBufferReader) => any): any;
12+
static generate<T>(schema: SafeSchema<T>): SchemaGenerator<T>;
13+
static toBuffer<T>(value: T, generator: SchemaGenerator<T>): ArrayBuffer;
14+
static fromBuffer<T>(buffer: ArrayBuffer | ArrayBufferLike, generator: SchemaGenerator<T>): T;
815
private static buildAdderFunction;
916
private static buildAdderSizeFunction;
1017
private static buildReaderFunction;

lib/schemaDefiner.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/schemaDefiner.js

Lines changed: 35 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/schemaDefiner.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/schemaDefinerTypes.d.ts

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,63 @@
1-
export declare type Discriminate<T, TField extends keyof T, TValue extends T[TField]> = T extends {
1+
declare type Discriminate<T, TField extends keyof T, TValue extends T[TField]> = T extends {
22
[field in TField]: TValue;
33
} ? T : never;
4-
export declare type SDEnum<T extends string> = {
4+
export declare type SafeSchemaEnum<T extends string> = {
55
[key in T]: number;
66
} & {
77
flag: 'enum';
88
};
9-
export declare type SDBitmask<T> = {
9+
export declare type SafeSchemaBitmask<T> = {
1010
[keyT in keyof T]-?: number;
1111
} & {
1212
flag: 'bitmask';
1313
};
14-
export declare type SDArray<TElements> = {
14+
export declare type SafeSchemaArray<TElements> = {
1515
elements: TElements;
1616
flag: 'array-uint8' | 'array-uint16';
1717
};
18-
export declare type SDTypeLookupElements<TElements extends {
18+
export declare type SafeSchemaTypeLookupElements<TElements extends {
1919
type: string;
2020
}> = {
2121
elements: {
22-
[key in TElements['type']]: SDTypeLookup<TElements, key>;
22+
[key in TElements['type']]: SafeSchemaTypeLookup<TElements, key>;
2323
};
2424
flag: 'type-lookup';
2525
};
26-
export declare type SDTypeLookup<TItem extends {
26+
export declare type SafeSchemaTypeLookup<TItem extends {
2727
type: string;
28-
}, TKey extends TItem['type']> = SDSimpleObject<Omit<Discriminate<TItem, 'type', TKey>, 'type'>>;
29-
export declare type SDTypeElement<TItem extends {
28+
}, TKey extends TItem['type']> = SafeSchemaSimpleObject<Omit<Discriminate<TItem, 'type', TKey>, 'type'>>;
29+
export declare type SafeSchemaTypeElement<TItem extends {
3030
type: string;
31-
}> = SDSimpleObject<Omit<TItem, 'type'>>;
32-
export declare type SDSimpleObject<TItem> = {
31+
}> = SafeSchemaSimpleObject<Omit<TItem, 'type'>>;
32+
export declare type SafeSchemaSimpleObject<TItem> = {
3333
[keyT in OptionalPropertyOf<TItem>]: {
34-
element: SDElement<Required<TItem>, keyT>;
34+
element: SafeSchemaElement<Required<TItem>, keyT>;
3535
flag: 'optional';
3636
};
3737
} & {
38-
[keyT in RequiredPropertyOf<TItem>]: SDElement<Required<TItem>, keyT>;
38+
[keyT in RequiredPropertyOf<TItem>]: SafeSchemaElement<Required<TItem>, keyT>;
3939
};
4040
declare type OptionalPropertyOf<T> = Exclude<{
4141
[K in keyof T]: T extends Record<K, T[K]> ? never : K;
4242
}[keyof T], undefined>;
4343
declare type RequiredPropertyOf<T> = Exclude<{
4444
[K in keyof T]: T extends Record<K, T[K]> ? K : never;
4545
}[keyof T], undefined>;
46-
declare type Simple<T> = T extends string ? 'string' | SDEnum<T> : T extends number ? 'uint8' | 'uint16' | 'uint32' | 'int8' | 'int16' | 'int32' | 'float32' | 'float64' : T extends boolean ? 'boolean' : never;
47-
export declare type SDElement<T, TKey extends keyof T> = T[TKey] extends string | boolean | number ? Simple<T[TKey]> : T[TKey] extends Array<any> ? T[TKey][number] extends string | boolean | number ? SDArray<Simple<T[TKey][number]>> : T[TKey][number] extends {
46+
declare type SafeSchemaSimple<T> = T extends string ? 'string' | SafeSchemaEnum<T> : T extends number ? 'uint8' | 'uint16' | 'uint32' | 'int8' | 'int16' | 'int32' | 'float32' | 'float64' : T extends boolean ? 'boolean' : never;
47+
export declare type SafeSchemaElement<T, TKey extends keyof T> = T[TKey] extends string | boolean | number ? SafeSchemaSimple<T[TKey]> : T[TKey] extends Array<any> ? T[TKey][number] extends string | boolean | number ? SafeSchemaArray<SafeSchemaSimple<T[TKey][number]>> : T[TKey][number] extends {
4848
type: string;
49-
} ? SDArray<SDTypeLookupElements<T[TKey][number]>> | SDArray<SDSimpleObject<T[TKey][number]>> : SDArray<SDSimpleObject<T[TKey][number]>> : T[TKey] extends {
49+
} ? SafeSchemaArray<SafeSchemaTypeLookupElements<T[TKey][number]>> | SafeSchemaArray<SafeSchemaSimpleObject<T[TKey][number]>> : SafeSchemaArray<SafeSchemaSimpleObject<T[TKey][number]>> : T[TKey] extends {
5050
[key in keyof T[TKey]]: boolean;
51-
} ? SDBitmask<T[TKey]> : T[TKey] extends {
51+
} ? SafeSchemaBitmask<T[TKey]> : T[TKey] extends {
5252
type: string;
53-
} ? SDTypeLookupElements<T[TKey]> | SDSimpleObject<T[TKey]> : T[TKey] extends {} ? SDSimpleObject<T[TKey]> : never;
53+
} ? SafeSchemaTypeLookupElements<T[TKey]> | SafeSchemaSimpleObject<T[TKey]> : T[TKey] extends {} ? SafeSchemaSimpleObject<T[TKey]> : never;
54+
export declare type SafeSchema<T> = T extends string | boolean | number ? SafeSchemaSimple<T> : T extends Array<any> ? T[number] extends string | boolean | number ? SafeSchemaArray<SafeSchemaSimple<T[number]>> : T[number] extends {
55+
type: string;
56+
} ? SafeSchemaArray<SafeSchemaTypeLookupElements<T[number]>> | SafeSchemaArray<SafeSchemaSimpleObject<T[number]>> : SafeSchemaArray<SafeSchemaSimpleObject<T[number]>> : T extends {
57+
[key in keyof T]: boolean;
58+
} ? SafeSchemaBitmask<T> | SafeSchemaSimpleObject<T> : T extends {
59+
type: string;
60+
} ? SafeSchemaTypeLookupElements<T> | SafeSchemaSimpleObject<T> : T extends {} ? SafeSchemaSimpleObject<T> : never;
5461
export declare type ABFlags = {
5562
flag: 'enum';
5663
} | {

lib/schemaDefinerTypes.d.ts.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
{
22
"name": "safe-schema",
3-
"version": "1.0.0",
3+
"version": "1.0.3",
44
"author": "Salvatore <[email protected]>",
55
"main": "./lib/index.js",
66
"types": "./lib/index.d.ts",
77
"publishConfig": {
88
"access": "public"
99
},
1010
"scripts": {
11-
"publish-cli": "npm publish",
1211
"test": "jest",
1312
"build": "tsc"
1413
},

tsconfig.json

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
11
{
22
"compileOnSave": true,
33
"compilerOptions": {
4-
"allowSyntheticDefaultImports": true,
5-
"experimentalDecorators": true,
6-
"emitDecoratorMetadata": true,
7-
"removeComments": false,
8-
"allowUnreachableCode": true,
9-
"allowJs": true,
104
"declaration": true,
115
"moduleResolution": "node",
126
"target": "es2015",
@@ -18,12 +12,11 @@
1812
],
1913
"outDir": "./lib/",
2014
"sourceMap": true,
21-
"skipLibCheck": true,
22-
"baseUrl": "./src",
23-
"jsx": "react"
15+
"baseUrl": "./src"
2416
},
2517
"exclude": [
2618
"lib",
19+
"__tests__",
2720
"node_modules"
2821
]
2922
}

0 commit comments

Comments
 (0)