@palmares/schemas 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/cjs/src/adapter/index.js +2 -0
- package/dist/cjs/src/conf.js +3 -4
- package/dist/cjs/src/model.js +34 -38
- package/dist/cjs/src/schema/array.js +1 -0
- package/dist/cjs/src/schema/object.js +2 -8
- package/dist/cjs/src/schema/schema.js +1 -0
- package/dist/cjs/src/utils.js +12 -14
- package/dist/cjs/src/validators/utils.js +1 -0
- package/dist/cjs/tsconfig.types.tsbuildinfo +1 -1
- package/dist/cjs/types/adapter/index.d.ts +2 -0
- package/dist/cjs/types/adapter/index.d.ts.map +1 -1
- package/dist/cjs/types/conf.d.ts +3 -0
- package/dist/cjs/types/conf.d.ts.map +1 -1
- package/dist/cjs/types/domain.d.ts +3 -0
- package/dist/cjs/types/domain.d.ts.map +1 -1
- package/dist/cjs/types/model.d.ts +2 -2
- package/dist/cjs/types/model.d.ts.map +1 -1
- package/dist/cjs/types/schema/array.d.ts +1 -0
- package/dist/cjs/types/schema/array.d.ts.map +1 -1
- package/dist/cjs/types/schema/object.d.ts.map +1 -1
- package/dist/cjs/types/schema/schema.d.ts +1 -0
- package/dist/cjs/types/schema/schema.d.ts.map +1 -1
- package/dist/cjs/types/utils.d.ts +2 -1
- package/dist/cjs/types/utils.d.ts.map +1 -1
- package/dist/cjs/types/validators/utils.d.ts +1 -0
- package/dist/cjs/types/validators/utils.d.ts.map +1 -1
- package/dist/esm/src/adapter/index.js +2 -0
- package/dist/esm/src/conf.js +3 -4
- package/dist/esm/src/model.js +32 -30
- package/dist/esm/src/schema/array.js +1 -0
- package/dist/esm/src/schema/object.js +2 -1
- package/dist/esm/src/schema/schema.js +1 -0
- package/dist/esm/src/utils.js +9 -6
- package/dist/esm/src/validators/utils.js +1 -0
- package/package.json +11 -5
- package/.turbo/turbo-build$colon$watch.log +0 -24
- package/.turbo/turbo-build.log +0 -4
- package/.turbo/turbo-build:watch.log +0 -26
- package/__tests__/.drizzle/migrations/0000_skinny_harrier.sql +0 -22
- package/__tests__/.drizzle/migrations/meta/0000_snapshot.json +0 -156
- package/__tests__/.drizzle/migrations/meta/_journal.json +0 -13
- package/__tests__/.drizzle/schema.ts +0 -35
- package/__tests__/drizzle.config.ts +0 -11
- package/__tests__/eslint.config.js +0 -10
- package/__tests__/manage.ts +0 -5
- package/__tests__/node_modules/.bin/drizzle-kit +0 -17
- package/__tests__/node_modules/.bin/tsc +0 -17
- package/__tests__/node_modules/.bin/tsserver +0 -17
- package/__tests__/node_modules/.bin/tsx +0 -17
- package/__tests__/package.json +0 -34
- package/__tests__/sqlite.db +0 -0
- package/__tests__/src/core/array.test.ts +0 -131
- package/__tests__/src/core/boolean.test.ts +0 -66
- package/__tests__/src/core/datetime.test.ts +0 -102
- package/__tests__/src/core/index.ts +0 -35
- package/__tests__/src/core/model.test.ts +0 -260
- package/__tests__/src/core/models.ts +0 -50
- package/__tests__/src/core/numbers.test.ts +0 -177
- package/__tests__/src/core/object.test.ts +0 -218
- package/__tests__/src/core/string.test.ts +0 -222
- package/__tests__/src/core/test.test.ts +0 -59
- package/__tests__/src/core/types.test.ts +0 -97
- package/__tests__/src/core/union.test.ts +0 -99
- package/__tests__/src/settings.ts +0 -69
- package/__tests__/tsconfig.json +0 -11
- package/src/adapter/fields/array.ts +0 -31
- package/src/adapter/fields/boolean.ts +0 -43
- package/src/adapter/fields/datetime.ts +0 -43
- package/src/adapter/fields/index.ts +0 -72
- package/src/adapter/fields/number.ts +0 -43
- package/src/adapter/fields/object.ts +0 -52
- package/src/adapter/fields/string.ts +0 -43
- package/src/adapter/fields/union.ts +0 -43
- package/src/adapter/index.ts +0 -35
- package/src/adapter/types.ts +0 -276
- package/src/compile.ts +0 -14
- package/src/conf.ts +0 -27
- package/src/constants.ts +0 -7
- package/src/domain.ts +0 -15
- package/src/exceptions.ts +0 -17
- package/src/index.ts +0 -318
- package/src/middleware.ts +0 -52
- package/src/model.ts +0 -507
- package/src/parsers/convert-from-number.ts +0 -13
- package/src/parsers/convert-from-string.ts +0 -19
- package/src/parsers/index.ts +0 -2
- package/src/schema/array.ts +0 -824
- package/src/schema/boolean.ts +0 -792
- package/src/schema/datetime.ts +0 -704
- package/src/schema/index.ts +0 -5
- package/src/schema/number.ts +0 -929
- package/src/schema/object.ts +0 -798
- package/src/schema/schema.ts +0 -1178
- package/src/schema/string.ts +0 -941
- package/src/schema/types.ts +0 -154
- package/src/schema/union.ts +0 -724
- package/src/types.ts +0 -66
- package/src/utils.ts +0 -383
- package/src/validators/array.ts +0 -183
- package/src/validators/boolean.ts +0 -52
- package/src/validators/datetime.ts +0 -121
- package/src/validators/number.ts +0 -178
- package/src/validators/object.ts +0 -56
- package/src/validators/schema.ts +0 -142
- package/src/validators/string.ts +0 -278
- package/src/validators/types.ts +0 -1
- package/src/validators/union.ts +0 -52
- package/src/validators/utils.ts +0 -225
- package/tsconfig.json +0 -9
- package/tsconfig.types.json +0 -10
@@ -1,72 +0,0 @@
|
|
1
|
-
import { SchemaAdapterNotImplementedError } from '../../exceptions';
|
2
|
-
|
3
|
-
import type { SupportedSchemas } from '../../types';
|
4
|
-
import type { WithFallback } from '../../utils';
|
5
|
-
import type { SchemaAdapter } from '../index';
|
6
|
-
import type { AdapterToStringArgs, AdapterTranslateArgs, ErrorCodes } from '../types';
|
7
|
-
|
8
|
-
export function fieldAdapter<
|
9
|
-
TTranslate extends FieldAdapter['translate'],
|
10
|
-
TToString extends FieldAdapter['toString'],
|
11
|
-
TFormatError extends FieldAdapter['formatError'],
|
12
|
-
TParse extends FieldAdapter['parse']
|
13
|
-
>(args: { translate: TTranslate; toString?: TToString; formatError?: TFormatError; parse?: TParse }) {
|
14
|
-
class CustomFieldAdapter extends FieldAdapter {
|
15
|
-
translate = args.translate;
|
16
|
-
toString = args.toString as TToString;
|
17
|
-
formatError = args.formatError as TFormatError;
|
18
|
-
parse = args.parse as TParse;
|
19
|
-
}
|
20
|
-
|
21
|
-
return CustomFieldAdapter as typeof FieldAdapter & {
|
22
|
-
new (): FieldAdapter & {
|
23
|
-
translate: TTranslate;
|
24
|
-
toString: TToString;
|
25
|
-
formatError: TFormatError;
|
26
|
-
parse: TParse;
|
27
|
-
};
|
28
|
-
};
|
29
|
-
}
|
30
|
-
export class FieldAdapter {
|
31
|
-
translate(
|
32
|
-
_fieldAdapter: FieldAdapter,
|
33
|
-
_args: AdapterTranslateArgs<SupportedSchemas>,
|
34
|
-
_base?: any
|
35
|
-
): any | WithFallback<SupportedSchemas> {
|
36
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'translate' });
|
37
|
-
}
|
38
|
-
|
39
|
-
parse(
|
40
|
-
_adapter: SchemaAdapter,
|
41
|
-
_fieldAdapter: FieldAdapter,
|
42
|
-
_schema: any,
|
43
|
-
_value: any,
|
44
|
-
_args: Omit<AdapterTranslateArgs<SupportedSchemas>, 'withFallback'>
|
45
|
-
): Promise<{ errors: any; parsed: any }> {
|
46
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'parse' });
|
47
|
-
}
|
48
|
-
|
49
|
-
toString(
|
50
|
-
_adapter: SchemaAdapter,
|
51
|
-
_fieldAdapter: FieldAdapter,
|
52
|
-
_args: AdapterToStringArgs,
|
53
|
-
_base?: any
|
54
|
-
): Promise<string> {
|
55
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'toString' });
|
56
|
-
}
|
57
|
-
|
58
|
-
// eslint-disable-next-line ts/require-await
|
59
|
-
async formatError(
|
60
|
-
_adapter: SchemaAdapter,
|
61
|
-
_fieldAdapter: FieldAdapter,
|
62
|
-
_schema: any,
|
63
|
-
_error: any,
|
64
|
-
_metadata?: any
|
65
|
-
): Promise<{
|
66
|
-
message: string;
|
67
|
-
path: (string | number)[];
|
68
|
-
code: ErrorCodes;
|
69
|
-
}> {
|
70
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'formatError' });
|
71
|
-
}
|
72
|
-
}
|
@@ -1,43 +0,0 @@
|
|
1
|
-
import { FieldAdapter } from '.';
|
2
|
-
import { SchemaAdapterNotImplementedError } from '../../exceptions';
|
3
|
-
|
4
|
-
import type { SchemaAdapter } from '..';
|
5
|
-
import type { WithFallback } from '../../utils';
|
6
|
-
import type { NumberAdapterTranslateArgs } from '../types';
|
7
|
-
|
8
|
-
export function numberFieldAdapter<
|
9
|
-
TTranslate extends NumberFieldAdapter['translate'],
|
10
|
-
TToString extends NumberFieldAdapter['toString'],
|
11
|
-
TFormatError extends NumberFieldAdapter['formatError'],
|
12
|
-
TParse extends NumberFieldAdapter['parse']
|
13
|
-
>(args: { translate: TTranslate; toString?: TToString; formatError?: TFormatError; parse?: TParse }) {
|
14
|
-
class CustomNumberFieldAdapter extends NumberFieldAdapter {
|
15
|
-
translate = args.translate;
|
16
|
-
toString = args.toString as TToString;
|
17
|
-
formatError = args.formatError as TFormatError;
|
18
|
-
parse = args.parse as TParse;
|
19
|
-
}
|
20
|
-
|
21
|
-
return CustomNumberFieldAdapter as typeof NumberFieldAdapter & {
|
22
|
-
new (): NumberFieldAdapter & {
|
23
|
-
translate: TTranslate;
|
24
|
-
toString: TToString;
|
25
|
-
formatError: TFormatError;
|
26
|
-
parse: TParse;
|
27
|
-
};
|
28
|
-
};
|
29
|
-
}
|
30
|
-
|
31
|
-
export class NumberFieldAdapter extends FieldAdapter {
|
32
|
-
translate(_fieldAdapter: FieldAdapter, _args: NumberAdapterTranslateArgs): any | WithFallback<'number'> {}
|
33
|
-
|
34
|
-
parse(
|
35
|
-
_adapter: SchemaAdapter,
|
36
|
-
_fieldAdapter: FieldAdapter,
|
37
|
-
_result: any,
|
38
|
-
_value: any,
|
39
|
-
_args: NumberAdapterTranslateArgs
|
40
|
-
): Promise<{ errors: any; parsed: any }> {
|
41
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'parse' });
|
42
|
-
}
|
43
|
-
}
|
@@ -1,52 +0,0 @@
|
|
1
|
-
import { FieldAdapter } from '.';
|
2
|
-
import { SchemaAdapterNotImplementedError } from '../../exceptions';
|
3
|
-
|
4
|
-
import type { SchemaAdapter } from '..';
|
5
|
-
import type { WithFallback } from '../../utils';
|
6
|
-
import type { ObjectAdapterToStringArgs, ObjectAdapterTranslateArgs } from '../types';
|
7
|
-
|
8
|
-
export function objectFieldAdapter<
|
9
|
-
TTranslate extends ObjectFieldAdapter['translate'],
|
10
|
-
TToString extends ObjectFieldAdapter['toString'],
|
11
|
-
TFormatError extends ObjectFieldAdapter['formatError'],
|
12
|
-
TParse extends ObjectFieldAdapter['parse']
|
13
|
-
>(args: { translate: TTranslate; toString?: TToString; formatError?: TFormatError; parse?: TParse }) {
|
14
|
-
class CustomObjectFieldAdapter extends ObjectFieldAdapter {
|
15
|
-
translate = args.translate;
|
16
|
-
toString = args.toString as TToString;
|
17
|
-
formatError = args.formatError as TFormatError;
|
18
|
-
parse = args.parse as TParse;
|
19
|
-
}
|
20
|
-
|
21
|
-
return CustomObjectFieldAdapter as typeof ObjectFieldAdapter & {
|
22
|
-
new (): ObjectFieldAdapter & {
|
23
|
-
translate: TTranslate;
|
24
|
-
toString: TToString;
|
25
|
-
formatError: TFormatError;
|
26
|
-
parse: TParse;
|
27
|
-
};
|
28
|
-
};
|
29
|
-
}
|
30
|
-
|
31
|
-
export class ObjectFieldAdapter extends FieldAdapter {
|
32
|
-
translate(_fieldAdapter: FieldAdapter, _args: ObjectAdapterTranslateArgs): any | WithFallback<'object'> {}
|
33
|
-
|
34
|
-
parse(
|
35
|
-
_adapter: SchemaAdapter,
|
36
|
-
_fieldAdapter: FieldAdapter,
|
37
|
-
_result: any,
|
38
|
-
_value: any,
|
39
|
-
_args: ObjectAdapterTranslateArgs
|
40
|
-
): Promise<{ errors: any; parsed: any }> {
|
41
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'parse' });
|
42
|
-
}
|
43
|
-
|
44
|
-
toString(
|
45
|
-
_adapter: SchemaAdapter,
|
46
|
-
_fieldAdapter: FieldAdapter,
|
47
|
-
_args: ObjectAdapterToStringArgs,
|
48
|
-
_base?: any
|
49
|
-
): Promise<string> {
|
50
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'toString' });
|
51
|
-
}
|
52
|
-
}
|
@@ -1,43 +0,0 @@
|
|
1
|
-
import { FieldAdapter } from '.';
|
2
|
-
import { SchemaAdapterNotImplementedError } from '../../exceptions';
|
3
|
-
|
4
|
-
import type { SchemaAdapter } from '..';
|
5
|
-
import type { WithFallback } from '../../utils';
|
6
|
-
import type { StringAdapterTranslateArgs } from '../types';
|
7
|
-
|
8
|
-
export function stringFieldAdapter<
|
9
|
-
TTranslate extends StringFieldAdapter['translate'],
|
10
|
-
TToString extends StringFieldAdapter['toString'],
|
11
|
-
TFormatError extends StringFieldAdapter['formatError'],
|
12
|
-
TParse extends StringFieldAdapter['parse']
|
13
|
-
>(args: { translate: TTranslate; toString?: TToString; formatError?: TFormatError; parse?: TParse }) {
|
14
|
-
class CustomStringFieldAdapter extends StringFieldAdapter {
|
15
|
-
translate = args.translate;
|
16
|
-
toString = args.toString as TToString;
|
17
|
-
formatError = args.formatError as TFormatError;
|
18
|
-
parse = args.parse as TParse;
|
19
|
-
}
|
20
|
-
|
21
|
-
return CustomStringFieldAdapter as typeof StringFieldAdapter & {
|
22
|
-
new (): StringFieldAdapter & {
|
23
|
-
translate: TTranslate;
|
24
|
-
toString: TToString;
|
25
|
-
formatError: TFormatError;
|
26
|
-
parse: TParse;
|
27
|
-
};
|
28
|
-
};
|
29
|
-
}
|
30
|
-
|
31
|
-
export class StringFieldAdapter extends FieldAdapter {
|
32
|
-
translate(_fieldAdapter: FieldAdapter, _args: StringAdapterTranslateArgs): any | WithFallback<'string'> {}
|
33
|
-
|
34
|
-
parse(
|
35
|
-
_adapter: SchemaAdapter,
|
36
|
-
_fieldAdapter: FieldAdapter,
|
37
|
-
_result: any,
|
38
|
-
_value: any,
|
39
|
-
_args: StringAdapterTranslateArgs
|
40
|
-
): Promise<{ errors: any; parsed: any }> {
|
41
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'parse' });
|
42
|
-
}
|
43
|
-
}
|
@@ -1,43 +0,0 @@
|
|
1
|
-
import { FieldAdapter } from '.';
|
2
|
-
import { SchemaAdapterNotImplementedError } from '../../exceptions';
|
3
|
-
|
4
|
-
import type { SchemaAdapter } from '..';
|
5
|
-
import type { WithFallback } from '../../utils';
|
6
|
-
import type { UnionAdapterTranslateArgs } from '../types';
|
7
|
-
|
8
|
-
export function unionFieldAdapter<
|
9
|
-
TTranslate extends UnionFieldAdapter['translate'],
|
10
|
-
TToString extends UnionFieldAdapter['toString'],
|
11
|
-
TFormatError extends UnionFieldAdapter['formatError'],
|
12
|
-
TParse extends UnionFieldAdapter['parse']
|
13
|
-
>(args: { translate: TTranslate; toString?: TToString; formatError?: TFormatError; parse?: TParse }) {
|
14
|
-
class CustomUnionFieldAdapter extends UnionFieldAdapter {
|
15
|
-
translate = args.translate;
|
16
|
-
toString = args.toString as TToString;
|
17
|
-
formatError = args.formatError as TFormatError;
|
18
|
-
parse = args.parse as TParse;
|
19
|
-
}
|
20
|
-
|
21
|
-
return CustomUnionFieldAdapter as typeof UnionFieldAdapter & {
|
22
|
-
new (): UnionFieldAdapter & {
|
23
|
-
translate: TTranslate;
|
24
|
-
toString: TToString;
|
25
|
-
formatError: TFormatError;
|
26
|
-
parse: TParse;
|
27
|
-
};
|
28
|
-
};
|
29
|
-
}
|
30
|
-
|
31
|
-
export class UnionFieldAdapter extends FieldAdapter {
|
32
|
-
translate(_fieldAdapter: FieldAdapter, _args: UnionAdapterTranslateArgs): any | WithFallback<'union'> {}
|
33
|
-
|
34
|
-
parse(
|
35
|
-
_adapter: SchemaAdapter,
|
36
|
-
_fieldAdapter: FieldAdapter,
|
37
|
-
_result: any,
|
38
|
-
_value: any,
|
39
|
-
_args: UnionAdapterTranslateArgs
|
40
|
-
): Promise<{ errors: any; parsed: any }> {
|
41
|
-
throw new SchemaAdapterNotImplementedError({ className: this.constructor.name, functionName: 'parse' });
|
42
|
-
}
|
43
|
-
}
|
package/src/adapter/index.ts
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
import { SchemaAdapterNotImplementedError } from '../exceptions';
|
2
|
-
|
3
|
-
import type { FieldAdapter } from './fields';
|
4
|
-
import type { ArrayFieldAdapter } from './fields/array';
|
5
|
-
import type { BooleanFieldAdapter } from './fields/boolean';
|
6
|
-
import type { DatetimeFieldAdapter } from './fields/datetime';
|
7
|
-
import type { NumberFieldAdapter } from './fields/number';
|
8
|
-
import type { ObjectFieldAdapter } from './fields/object';
|
9
|
-
import type { StringFieldAdapter } from './fields/string';
|
10
|
-
import type { UnionFieldAdapter } from './fields/union';
|
11
|
-
import type { ErrorCodes } from './types';
|
12
|
-
|
13
|
-
export class SchemaAdapter {
|
14
|
-
field!: FieldAdapter;
|
15
|
-
number?: NumberFieldAdapter;
|
16
|
-
object!: ObjectFieldAdapter;
|
17
|
-
union?: UnionFieldAdapter;
|
18
|
-
string?: StringFieldAdapter;
|
19
|
-
array?: ArrayFieldAdapter;
|
20
|
-
boolean?: BooleanFieldAdapter;
|
21
|
-
datetime?: DatetimeFieldAdapter;
|
22
|
-
adapterInstance: any;
|
23
|
-
|
24
|
-
// eslint-disable-next-line ts/require-await
|
25
|
-
async formatError(
|
26
|
-
_error: any,
|
27
|
-
_metadata?: any
|
28
|
-
): Promise<{
|
29
|
-
message: string;
|
30
|
-
path: (string | number)[];
|
31
|
-
code: ErrorCodes;
|
32
|
-
}> {
|
33
|
-
throw new SchemaAdapterNotImplementedError({ className: 'SchemaAdapter', functionName: 'formatError' });
|
34
|
-
}
|
35
|
-
}
|
package/src/adapter/types.ts
DELETED
@@ -1,276 +0,0 @@
|
|
1
|
-
import type { Schema } from '../schema/schema';
|
2
|
-
import type { SupportedSchemas } from '../types';
|
3
|
-
import type { withFallbackFactory } from '../utils';
|
4
|
-
|
5
|
-
export type NonToTranslateArgs<TType extends SupportedSchemas> = {
|
6
|
-
withFallback: ReturnType<typeof withFallbackFactory<TType>>;
|
7
|
-
};
|
8
|
-
|
9
|
-
export type AdapterToStringArgs = {
|
10
|
-
parsers: {
|
11
|
-
optional: Schema['__optional']['allow'];
|
12
|
-
nullable: Schema['__nullable']['allow'];
|
13
|
-
};
|
14
|
-
type: Schema['__type'];
|
15
|
-
optional: Schema['__optional'];
|
16
|
-
nullable: Schema['__nullable'];
|
17
|
-
};
|
18
|
-
|
19
|
-
export type AdapterTranslateArgs<TType extends SupportedSchemas = SupportedSchemas> = AdapterToStringArgs &
|
20
|
-
NonToTranslateArgs<TType>;
|
21
|
-
|
22
|
-
export type DatetimeAdapterTranslateArgs = {
|
23
|
-
allowString: boolean | undefined;
|
24
|
-
above:
|
25
|
-
| {
|
26
|
-
value: Date;
|
27
|
-
inclusive: boolean;
|
28
|
-
message: string;
|
29
|
-
}
|
30
|
-
| undefined;
|
31
|
-
below:
|
32
|
-
| {
|
33
|
-
value: Date;
|
34
|
-
inclusive: boolean;
|
35
|
-
message: string;
|
36
|
-
}
|
37
|
-
| undefined;
|
38
|
-
} & AdapterTranslateArgs<'datetime'>;
|
39
|
-
|
40
|
-
export type BooleanAdapterTranslateArgs = {
|
41
|
-
parsers: {
|
42
|
-
allowString: boolean | undefined;
|
43
|
-
allowNumber: boolean | undefined;
|
44
|
-
trueValues: any[] | undefined;
|
45
|
-
falseValues: any[] | undefined;
|
46
|
-
} & AdapterTranslateArgs<'boolean'>['parsers'];
|
47
|
-
is:
|
48
|
-
| {
|
49
|
-
value: boolean;
|
50
|
-
message: string;
|
51
|
-
}
|
52
|
-
| undefined;
|
53
|
-
} & AdapterTranslateArgs<'boolean'>;
|
54
|
-
|
55
|
-
export type ArrayAdapterTranslateArgs = {
|
56
|
-
schemas: any[];
|
57
|
-
minLength:
|
58
|
-
| {
|
59
|
-
value: number;
|
60
|
-
inclusive: boolean;
|
61
|
-
message: string;
|
62
|
-
}
|
63
|
-
| undefined;
|
64
|
-
maxLength:
|
65
|
-
| {
|
66
|
-
value: number;
|
67
|
-
inclusive: boolean;
|
68
|
-
message: string;
|
69
|
-
}
|
70
|
-
| undefined;
|
71
|
-
nonEmpty:
|
72
|
-
| {
|
73
|
-
message: string;
|
74
|
-
}
|
75
|
-
| undefined;
|
76
|
-
|
77
|
-
isTuple: boolean;
|
78
|
-
} & (
|
79
|
-
| {
|
80
|
-
isTuple: true;
|
81
|
-
schemas: [any, ...any[]];
|
82
|
-
}
|
83
|
-
| { isTuple: false; schemas: [any] }
|
84
|
-
) &
|
85
|
-
AdapterTranslateArgs<'array'>;
|
86
|
-
|
87
|
-
export type NumberAdapterTranslateArgs = {
|
88
|
-
parsers: {
|
89
|
-
allowString: boolean | undefined;
|
90
|
-
} & AdapterTranslateArgs<'number'>['parsers'];
|
91
|
-
is:
|
92
|
-
| {
|
93
|
-
value: number[];
|
94
|
-
message: string;
|
95
|
-
}
|
96
|
-
| undefined;
|
97
|
-
min:
|
98
|
-
| {
|
99
|
-
value: number;
|
100
|
-
inclusive: boolean;
|
101
|
-
message: string;
|
102
|
-
}
|
103
|
-
| undefined;
|
104
|
-
max:
|
105
|
-
| {
|
106
|
-
value: number;
|
107
|
-
inclusive: boolean;
|
108
|
-
message: string;
|
109
|
-
}
|
110
|
-
| undefined;
|
111
|
-
maxDigits:
|
112
|
-
| {
|
113
|
-
value: number;
|
114
|
-
message: string;
|
115
|
-
}
|
116
|
-
| undefined;
|
117
|
-
decimalPlaces:
|
118
|
-
| {
|
119
|
-
value: number;
|
120
|
-
message: string;
|
121
|
-
}
|
122
|
-
| undefined;
|
123
|
-
integer:
|
124
|
-
| {
|
125
|
-
message: string;
|
126
|
-
}
|
127
|
-
| undefined;
|
128
|
-
} & AdapterTranslateArgs<'number'>;
|
129
|
-
|
130
|
-
export type StringAdapterToStringArgs = Omit<StringAdapterTranslateArgs, keyof NonToTranslateArgs<'string'>>;
|
131
|
-
|
132
|
-
export type StringAdapterTranslateArgsWithoutNonTranslateArgs = Omit<
|
133
|
-
StringAdapterTranslateArgs,
|
134
|
-
keyof NonToTranslateArgs<'string'>
|
135
|
-
>;
|
136
|
-
|
137
|
-
export type StringAdapterTranslateArgs = {
|
138
|
-
is:
|
139
|
-
| {
|
140
|
-
value: string[] | string;
|
141
|
-
message: string;
|
142
|
-
}
|
143
|
-
| undefined;
|
144
|
-
uuid:
|
145
|
-
| {
|
146
|
-
message: string;
|
147
|
-
}
|
148
|
-
| undefined;
|
149
|
-
email: { message: string } | undefined;
|
150
|
-
minLength:
|
151
|
-
| {
|
152
|
-
value: number;
|
153
|
-
message: string;
|
154
|
-
}
|
155
|
-
| undefined;
|
156
|
-
maxLength:
|
157
|
-
| {
|
158
|
-
value: number;
|
159
|
-
message: string;
|
160
|
-
}
|
161
|
-
| undefined;
|
162
|
-
regex:
|
163
|
-
| {
|
164
|
-
value: RegExp;
|
165
|
-
message: string;
|
166
|
-
}
|
167
|
-
| undefined;
|
168
|
-
endsWith:
|
169
|
-
| {
|
170
|
-
value: string;
|
171
|
-
message: string;
|
172
|
-
}
|
173
|
-
| undefined;
|
174
|
-
startsWith:
|
175
|
-
| {
|
176
|
-
value: string;
|
177
|
-
message: string;
|
178
|
-
}
|
179
|
-
| undefined;
|
180
|
-
includes:
|
181
|
-
| {
|
182
|
-
value: string;
|
183
|
-
message: string;
|
184
|
-
}
|
185
|
-
| undefined;
|
186
|
-
} & AdapterTranslateArgs<'string'>;
|
187
|
-
|
188
|
-
export type NumberAdapterToStringArgs = Omit<NumberAdapterTranslateArgs, keyof NonToTranslateArgs<'number'>>;
|
189
|
-
|
190
|
-
export type NumberAdapterTranslateArgsWithoutNonTranslateArgs = Omit<
|
191
|
-
NumberAdapterTranslateArgs,
|
192
|
-
keyof NonToTranslateArgs<'number'>
|
193
|
-
>;
|
194
|
-
|
195
|
-
export type ObjectAdapterTranslateArgs = {
|
196
|
-
data: Record<string, any>;
|
197
|
-
} & AdapterTranslateArgs<'object'>;
|
198
|
-
|
199
|
-
export type ObjectAdapterToStringArgs = {
|
200
|
-
data: Record<string, string>;
|
201
|
-
} & AdapterToStringArgs;
|
202
|
-
|
203
|
-
export type UnionAdapterTranslateArgs<TSchemasType = any> = {
|
204
|
-
schemas: TSchemasType;
|
205
|
-
} & AdapterTranslateArgs<'union'>;
|
206
|
-
|
207
|
-
export type UnionAdapterToStringArgs = {
|
208
|
-
schemas: [string, string, ...string[]];
|
209
|
-
} & AdapterToStringArgs;
|
210
|
-
|
211
|
-
export type UnionAdapterTranslateArgsWithoutNonTranslateArgs = Omit<
|
212
|
-
UnionAdapterTranslateArgs,
|
213
|
-
keyof NonToTranslateArgs<'union'>
|
214
|
-
>;
|
215
|
-
|
216
|
-
export type ObjectAdapterTranslateArgsWithoutNonTranslateArgs = Omit<
|
217
|
-
ObjectAdapterTranslateArgs,
|
218
|
-
keyof NonToTranslateArgs<'object'>
|
219
|
-
>;
|
220
|
-
|
221
|
-
export type ArrayAdapterTranslateArgsWithoutNonTranslateArgs = Omit<
|
222
|
-
ArrayAdapterTranslateArgs,
|
223
|
-
keyof NonToTranslateArgs<'array'>
|
224
|
-
>;
|
225
|
-
|
226
|
-
export type BooleanAdapterTranslateArgsWithoutNonTranslateArgs = Omit<
|
227
|
-
BooleanAdapterTranslateArgs,
|
228
|
-
keyof NonToTranslateArgs<'boolean'>
|
229
|
-
>;
|
230
|
-
|
231
|
-
export type DatetimeAdapterTranslateArgsWithoutNonTranslateArgs = Omit<
|
232
|
-
DatetimeAdapterTranslateArgs,
|
233
|
-
keyof NonToTranslateArgs<'datetime'>
|
234
|
-
>;
|
235
|
-
export type ValidationDataBasedOnType<TType> = TType extends 'number'
|
236
|
-
? NumberAdapterTranslateArgsWithoutNonTranslateArgs
|
237
|
-
: TType extends 'union'
|
238
|
-
? UnionAdapterTranslateArgsWithoutNonTranslateArgs
|
239
|
-
: TType extends 'string'
|
240
|
-
? StringAdapterTranslateArgsWithoutNonTranslateArgs
|
241
|
-
: TType extends 'array'
|
242
|
-
? ArrayAdapterTranslateArgsWithoutNonTranslateArgs
|
243
|
-
: TType extends 'boolean'
|
244
|
-
? BooleanAdapterTranslateArgsWithoutNonTranslateArgs
|
245
|
-
: TType extends 'datetime'
|
246
|
-
? DatetimeAdapterTranslateArgsWithoutNonTranslateArgs
|
247
|
-
: ObjectAdapterTranslateArgsWithoutNonTranslateArgs;
|
248
|
-
|
249
|
-
export type ErrorCodes =
|
250
|
-
| 'max'
|
251
|
-
| 'maxDigits'
|
252
|
-
| 'decimalPlaces'
|
253
|
-
| 'min'
|
254
|
-
| 'integer'
|
255
|
-
| 'required'
|
256
|
-
| 'null'
|
257
|
-
| 'object'
|
258
|
-
| 'number'
|
259
|
-
| 'string'
|
260
|
-
| 'array'
|
261
|
-
| 'tuple'
|
262
|
-
| 'nonEmpty'
|
263
|
-
| 'datetime'
|
264
|
-
| 'is'
|
265
|
-
| 'above'
|
266
|
-
| 'below'
|
267
|
-
| 'boolean'
|
268
|
-
| 'minLength'
|
269
|
-
| 'maxLength'
|
270
|
-
| 'regex'
|
271
|
-
| 'uuid'
|
272
|
-
| 'email'
|
273
|
-
| 'includes'
|
274
|
-
| 'endsWith'
|
275
|
-
| 'startsWith'
|
276
|
-
| `customError${string}`;
|
package/src/compile.ts
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
import { getDefaultStd } from '@palmares/core';
|
2
|
-
|
3
|
-
import { getDefaultAdapter } from './conf';
|
4
|
-
|
5
|
-
import type { Schema } from './schema/schema';
|
6
|
-
|
7
|
-
export async function compile(schemas: Record<string, Schema<any, any>>) {
|
8
|
-
const schemasAsEntries = Object.entries(schemas);
|
9
|
-
const adapter = getDefaultAdapter();
|
10
|
-
const std = getDefaultStd();
|
11
|
-
for (const [keyName, schema] of schemasAsEntries) {
|
12
|
-
console.log(await schema.compile(adapter));
|
13
|
-
}
|
14
|
-
}
|
package/src/conf.ts
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
import { NoAdapterFoundError } from './exceptions';
|
2
|
-
|
3
|
-
import type { SchemaAdapter } from './adapter';
|
4
|
-
|
5
|
-
let cachedAdapter: SchemaAdapter | null = null;
|
6
|
-
|
7
|
-
/**
|
8
|
-
* Sets the default adapter to be used by all of your schemas.
|
9
|
-
*
|
10
|
-
* @param adapter - The adapter to use when you define schemas.
|
11
|
-
*/
|
12
|
-
export function setDefaultAdapter(adapter: SchemaAdapter) {
|
13
|
-
cachedAdapter = adapter;
|
14
|
-
}
|
15
|
-
|
16
|
-
/**
|
17
|
-
* Gets the default adapter to be used by all of your schemas.
|
18
|
-
*
|
19
|
-
* @throws {NoAdapterFoundError} - If no adapter has been set.
|
20
|
-
*
|
21
|
-
* @returns The default adapter.
|
22
|
-
*/
|
23
|
-
export function getDefaultAdapter(): SchemaAdapter {
|
24
|
-
if (!cachedAdapter) throw new NoAdapterFoundError();
|
25
|
-
|
26
|
-
return cachedAdapter;
|
27
|
-
}
|
package/src/constants.ts
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
export const DEFAULT_NUMBER_MAX_EXCEPTION = (max: number, inclusive: boolean) =>
|
2
|
-
`The number is greater than the allowed ${max}.${inclusive ? ` The value ${max} is accepted as well.` : ''}`;
|
3
|
-
export const DEFAULT_NUMBER_MIN_EXCEPTION = (min: number, inclusive: boolean) =>
|
4
|
-
`The number is less than the allowed ${min}.${inclusive ? ` The value ${min} is accepted as well.` : ''}`;
|
5
|
-
export const DEFAULT_NUMBER_POSITIVE_EXCEPTION = (allowZero: boolean) =>
|
6
|
-
`The number should be positive.${allowZero ? ` The value 0 is accepted as well.` : ''}`;
|
7
|
-
export const DEFAULT_NUMBER_INTEGER_EXCEPTION = () => `The number should be an integer.`;
|
package/src/domain.ts
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
import { domain } from '@palmares/core';
|
2
|
-
|
3
|
-
import { getDefaultAdapter, setDefaultAdapter } from './conf';
|
4
|
-
|
5
|
-
import type { SchemasSettingsType } from './types';
|
6
|
-
|
7
|
-
export const schemasDomain = domain('@palmares/schemas', '', {
|
8
|
-
commands: {},
|
9
|
-
// eslint-disable-next-line ts/require-await
|
10
|
-
load: async (settings: SchemasSettingsType) => {
|
11
|
-
setDefaultAdapter(new settings.schemaAdapter());
|
12
|
-
const schemaAdapter = getDefaultAdapter();
|
13
|
-
return undefined;
|
14
|
-
}
|
15
|
-
});
|
package/src/exceptions.ts
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
export class SchemaAdapterNotImplementedError extends Error {
|
2
|
-
constructor(args: { className: string; functionName: string }) {
|
3
|
-
super(`Schema adapter did not implement ${args.functionName} in ${args.className}`);
|
4
|
-
}
|
5
|
-
}
|
6
|
-
|
7
|
-
export class NoAdapterFoundError extends Error {
|
8
|
-
constructor() {
|
9
|
-
super('No adapter found, please define an adapter using setDefaultAdapter() before using any schema.');
|
10
|
-
}
|
11
|
-
}
|
12
|
-
|
13
|
-
export class TranslatableFieldNotImplementedError extends Error {
|
14
|
-
constructor(fieldName: string) {
|
15
|
-
super(`TranslatableField '${fieldName}' did not implement the 'schema' key on 'customAttributes'`);
|
16
|
-
}
|
17
|
-
}
|