@naturalcycles/nodejs-lib 15.31.0 → 15.32.1

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,13 +33,13 @@ 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?: AnySchema<T>): ArraySchema<T[]>;
37
- export declare function objectSchema<T>(schema?: {
36
+ export declare function arraySchema<T>(items: AnySchema<T>): ArraySchema<T[]>;
37
+ export declare function anyObjectSchema<T extends AnyObject>(): ObjectSchema<T>;
38
+ export declare function objectSchema<T extends AnyObject>(schema: {
38
39
  [key in keyof Partial<T>]: AnySchema<T[key]>;
39
40
  }): ObjectSchema<T>;
40
41
  export declare function oneOfSchema<T = any>(...schemas: AnySchema[]): AlternativesSchema<T>;
41
42
  export declare const anySchema: AnySchema<any>;
42
- export declare const anyObjectSchema: ObjectSchema;
43
43
  export declare const BASE62_REGEX: RegExp;
44
44
  export declare const BASE64_REGEX: RegExp;
45
45
  export declare const BASE64URL_REGEX: RegExp;
@@ -37,7 +37,10 @@ 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 items ? Joi.array().items(items) : Joi.array();
40
+ return Joi.array().items(items);
41
+ }
42
+ export function anyObjectSchema() {
43
+ return Joi.object().options({ stripUnknown: false });
41
44
  }
42
45
  export function objectSchema(schema) {
43
46
  return Joi.object(schema);
@@ -46,7 +49,6 @@ export function oneOfSchema(...schemas) {
46
49
  return Joi.alternatives(schemas);
47
50
  }
48
51
  export const anySchema = Joi.any();
49
- export const anyObjectSchema = Joi.object().options({ stripUnknown: false });
50
52
  export const BASE62_REGEX = /^[a-zA-Z0-9]+$/;
51
53
  export const BASE64_REGEX = /^[a-zA-Z0-9+/]+={0,2}$/;
52
54
  export const BASE64URL_REGEX = /^[a-zA-Z0-9_-]+$/;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@naturalcycles/nodejs-lib",
3
3
  "type": "module",
4
- "version": "15.31.0",
4
+ "version": "15.32.1",
5
5
  "dependencies": {
6
6
  "@naturalcycles/js-lib": "^15",
7
7
  "@types/js-yaml": "^4",
@@ -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,15 @@ 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?: AnySchema<T>): ArraySchema<T[]> {
76
- return items ? Joi.array().items(items) : Joi.array()
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 anyObjectSchema<T extends AnyObject>(): ObjectSchema<T> {
81
+ return Joi.object().options({ stripUnknown: false })
82
+ }
83
+
84
+ export function objectSchema<T extends AnyObject>(schema: {
80
85
  [key in keyof Partial<T>]: AnySchema<T[key]>
81
86
  }): ObjectSchema<T> {
82
87
  return Joi.object(schema)
@@ -87,7 +92,6 @@ export function oneOfSchema<T = any>(...schemas: AnySchema[]): AlternativesSchem
87
92
  }
88
93
 
89
94
  export const anySchema = Joi.any()
90
- export const anyObjectSchema: ObjectSchema = Joi.object().options({ stripUnknown: false })
91
95
 
92
96
  export const BASE62_REGEX = /^[a-zA-Z0-9]+$/
93
97
  export const BASE64_REGEX = /^[a-zA-Z0-9+/]+={0,2}$/