@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?: 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 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 items ? Joi.array().items(items) : Joi.array();
40
+ return Joi.array().items(items);
41
41
  }
42
42
  export function objectSchema(schema) {
43
43
  return Joi.object(schema);
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.0",
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,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?: 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 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)