@naturalcycles/nodejs-lib 15.31.0 → 15.32.0
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BaseDBEntity, IANATimezone, IsoDate, IsoDateTime, NumberEnum, StringEnum, UnixTimestamp, UnixTimestampMillis } from '@naturalcycles/js-lib/types';
|
|
1
|
+
import type { AnyObject, BaseDBEntity, IANATimezone, IsoDate, IsoDateTime, NumberEnum, StringEnum, UnixTimestamp, UnixTimestampMillis } from '@naturalcycles/js-lib/types';
|
|
2
2
|
import type { AlternativesSchema, AnySchema, ArraySchema, ObjectSchema } from 'joi';
|
|
3
3
|
import type { NumberSchema } from './number.extensions.js';
|
|
4
4
|
import type { StringSchema } from './string.extensions.js';
|
|
@@ -33,8 +33,8 @@ export declare const numberEnumValueSchema: <ENUM extends NumberEnum>(en: ENUM)
|
|
|
33
33
|
*/
|
|
34
34
|
export declare const numberEnumKeySchema: <ENUM extends NumberEnum>(en: ENUM) => StringSchema;
|
|
35
35
|
export declare const urlSchema: (scheme?: string | string[]) => StringSchema;
|
|
36
|
-
export declare function arraySchema<T>(items
|
|
37
|
-
export declare function objectSchema<T>(schema
|
|
36
|
+
export declare function arraySchema<T>(items: AnySchema<T>): ArraySchema<T[]>;
|
|
37
|
+
export declare function objectSchema<T extends AnyObject>(schema: {
|
|
38
38
|
[key in keyof Partial<T>]: AnySchema<T[key]>;
|
|
39
39
|
}): ObjectSchema<T>;
|
|
40
40
|
export declare function oneOfSchema<T = any>(...schemas: AnySchema[]): AlternativesSchema<T>;
|
|
@@ -37,7 +37,7 @@ export const numberEnumValueSchema = (en) => Joi.number().valid(..._numberEnumVa
|
|
|
37
37
|
export const numberEnumKeySchema = (en) => Joi.string().valid(..._numberEnumKeys(en));
|
|
38
38
|
export const urlSchema = (scheme = 'https') => Joi.string().uri({ scheme });
|
|
39
39
|
export function arraySchema(items) {
|
|
40
|
-
return
|
|
40
|
+
return Joi.array().items(items);
|
|
41
41
|
}
|
|
42
42
|
export function objectSchema(schema) {
|
|
43
43
|
return Joi.object(schema);
|
package/package.json
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
_stringEnumValues,
|
|
6
6
|
} from '@naturalcycles/js-lib'
|
|
7
7
|
import type {
|
|
8
|
+
AnyObject,
|
|
8
9
|
BaseDBEntity,
|
|
9
10
|
IANATimezone,
|
|
10
11
|
IsoDate,
|
|
@@ -72,11 +73,11 @@ export const numberEnumKeySchema = <ENUM extends NumberEnum>(en: ENUM): StringSc
|
|
|
72
73
|
export const urlSchema = (scheme: string | string[] = 'https'): StringSchema =>
|
|
73
74
|
Joi.string().uri({ scheme })
|
|
74
75
|
|
|
75
|
-
export function arraySchema<T>(items
|
|
76
|
-
return
|
|
76
|
+
export function arraySchema<T>(items: AnySchema<T>): ArraySchema<T[]> {
|
|
77
|
+
return Joi.array().items(items)
|
|
77
78
|
}
|
|
78
79
|
|
|
79
|
-
export function objectSchema<T>(schema
|
|
80
|
+
export function objectSchema<T extends AnyObject>(schema: {
|
|
80
81
|
[key in keyof Partial<T>]: AnySchema<T[key]>
|
|
81
82
|
}): ObjectSchema<T> {
|
|
82
83
|
return Joi.object(schema)
|