@naturalcycles/nodejs-lib 15.41.0 → 15.43.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.
@@ -4,8 +4,11 @@ export declare const j: {
4
4
  string(): JsonSchemaStringBuilder<string, string, false>;
5
5
  number(): JsonSchemaNumberBuilder<number, number, false>;
6
6
  boolean(): JsonSchemaBooleanBuilder<boolean, boolean, false>;
7
- object: typeof object;
8
- objectInfer<P extends Record<string, JsonSchemaAnyBuilder<any, any, any>>>(props: P): JsonSchemaObjectInferringBuilder<P, false>;
7
+ object: typeof object & {
8
+ dbEntity: typeof objectDbEntity;
9
+ infer: typeof objectInfer;
10
+ any(): JsonSchemaObjectBuilder<AnyObject, AnyObject, false>;
11
+ };
9
12
  array<IN, OUT, Opt>(itemSchema: JsonSchemaAnyBuilder<IN, OUT, Opt>): JsonSchemaArrayBuilder<IN, OUT, Opt>;
10
13
  set<IN, OUT, Opt>(itemSchema: JsonSchemaAnyBuilder<IN, OUT, Opt>): JsonSchemaSet2Builder<IN, OUT, Opt>;
11
14
  buffer(): JsonSchemaBufferBuilder;
@@ -236,6 +239,9 @@ declare function object(props: AnyObject): never;
236
239
  declare function object<IN extends AnyObject>(props: {
237
240
  [key in keyof IN]: JsonSchemaAnyBuilder<any, IN[key], any>;
238
241
  }): JsonSchemaObjectBuilder<IN, IN, false>;
242
+ declare function objectInfer<P extends Record<string, JsonSchemaAnyBuilder<any, any, any>>>(props: P): JsonSchemaObjectInferringBuilder<P, false>;
243
+ declare function objectDbEntity(props?: AnyObject): never;
244
+ declare function objectDbEntity<IN extends AnyObject>(props?: AnyObject): JsonSchemaObjectBuilder<IN, IN, false>;
239
245
  type Expand<T> = T extends infer O ? {
240
246
  [K in keyof O]: O[K];
241
247
  } : never;
@@ -16,10 +16,13 @@ export const j = {
16
16
  boolean() {
17
17
  return new JsonSchemaBooleanBuilder();
18
18
  },
19
- object,
20
- objectInfer(props) {
21
- return new JsonSchemaObjectInferringBuilder(props);
22
- },
19
+ object: Object.assign(object, {
20
+ dbEntity: objectDbEntity,
21
+ infer: objectInfer,
22
+ any() {
23
+ return j.object({}).allowAdditionalProperties();
24
+ },
25
+ }),
23
26
  array(itemSchema) {
24
27
  return new JsonSchemaArrayBuilder(itemSchema);
25
28
  },
@@ -524,3 +527,14 @@ export class JsonSchemaEnumBuilder extends JsonSchemaAnyBuilder {
524
527
  function object(props) {
525
528
  return new JsonSchemaObjectBuilder(props);
526
529
  }
530
+ function objectInfer(props) {
531
+ return new JsonSchemaObjectInferringBuilder(props);
532
+ }
533
+ function objectDbEntity(props) {
534
+ return j.object({
535
+ id: j.string(),
536
+ created: j.number().unixTimestamp2000(),
537
+ updated: j.number().unixTimestamp2000(),
538
+ ...props,
539
+ });
540
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@naturalcycles/nodejs-lib",
3
3
  "type": "module",
4
- "version": "15.41.0",
4
+ "version": "15.43.0",
5
5
  "dependencies": {
6
6
  "@naturalcycles/js-lib": "^15",
7
7
  "@types/js-yaml": "^4",
@@ -37,13 +37,13 @@ export const j = {
37
37
  return new JsonSchemaBooleanBuilder()
38
38
  },
39
39
 
40
- object,
41
-
42
- objectInfer<P extends Record<string, JsonSchemaAnyBuilder<any, any, any>>>(
43
- props: P,
44
- ): JsonSchemaObjectInferringBuilder<P, false> {
45
- return new JsonSchemaObjectInferringBuilder<P, false>(props)
46
- },
40
+ object: Object.assign(object, {
41
+ dbEntity: objectDbEntity,
42
+ infer: objectInfer,
43
+ any() {
44
+ return j.object<AnyObject>({}).allowAdditionalProperties()
45
+ },
46
+ }),
47
47
 
48
48
  array<IN, OUT, Opt>(
49
49
  itemSchema: JsonSchemaAnyBuilder<IN, OUT, Opt>,
@@ -833,6 +833,28 @@ function object<IN extends AnyObject>(props: {
833
833
  return new JsonSchemaObjectBuilder<IN, IN, false>(props)
834
834
  }
835
835
 
836
+ function objectInfer<P extends Record<string, JsonSchemaAnyBuilder<any, any, any>>>(
837
+ props: P,
838
+ ): JsonSchemaObjectInferringBuilder<P, false> {
839
+ return new JsonSchemaObjectInferringBuilder<P, false>(props)
840
+ }
841
+
842
+ function objectDbEntity(props?: AnyObject): never
843
+ function objectDbEntity<IN extends AnyObject>(
844
+ props?: AnyObject,
845
+ ): JsonSchemaObjectBuilder<IN, IN, false>
846
+
847
+ function objectDbEntity<IN extends AnyObject>(
848
+ props?: AnyObject,
849
+ ): JsonSchemaObjectBuilder<IN, IN, false> {
850
+ return j.object({
851
+ id: j.string(),
852
+ created: j.number().unixTimestamp2000(),
853
+ updated: j.number().unixTimestamp2000(),
854
+ ...props,
855
+ })
856
+ }
857
+
836
858
  type Expand<T> = T extends infer O ? { [K in keyof O]: O[K] } : never
837
859
 
838
860
  type ExactMatch<A, B> =