@naturalcycles/js-lib 14.80.0 → 14.80.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.
@@ -113,8 +113,8 @@ export declare class JsonSchemaObjectBuilder<T extends AnyObject> extends JsonSc
113
113
  minProps(minProperties: number): this;
114
114
  maxProps(maxProperties: number): this;
115
115
  additionalProps(additionalProperties: boolean): this;
116
- baseDBEntity(): JsonSchemaObjectBuilder<T & BaseDBEntity>;
117
- savedDBEntity(): JsonSchemaObjectBuilder<T & SavedDBEntity>;
116
+ baseDBEntity<ID = string>(idType?: string): JsonSchemaObjectBuilder<T & BaseDBEntity<ID>>;
117
+ savedDBEntity<ID = string>(idType?: string): JsonSchemaObjectBuilder<T & SavedDBEntity<ID>>;
118
118
  extend<T2 extends AnyObject>(s2: JsonSchemaObjectBuilder<T2>): JsonSchemaObjectBuilder<T & T2>;
119
119
  }
120
120
  export declare class JsonSchemaArrayBuilder<ITEM> extends JsonSchemaAnyBuilder<ITEM[], JsonSchemaArray<ITEM>> {
@@ -306,16 +306,16 @@ class JsonSchemaObjectBuilder extends JsonSchemaAnyBuilder {
306
306
  Object.assign(this.schema, { additionalProperties });
307
307
  return this;
308
308
  }
309
- baseDBEntity() {
309
+ baseDBEntity(idType = 'string') {
310
310
  Object.assign(this.schema.properties, {
311
- id: { type: 'string' },
311
+ id: { type: idType },
312
312
  created: { type: 'number', format: 'unixTimestamp' },
313
313
  updated: { type: 'number', format: 'unixTimestamp' },
314
314
  });
315
315
  return this;
316
316
  }
317
- savedDBEntity() {
318
- return this.baseDBEntity().addRequired(['id', 'created', 'updated']);
317
+ savedDBEntity(idType = 'string') {
318
+ return this.baseDBEntity(idType).addRequired(['id', 'created', 'updated']);
319
319
  }
320
320
  extend(s2) {
321
321
  const builder = new JsonSchemaObjectBuilder();
@@ -1,3 +1,3 @@
1
1
  import { SavedDBEntity } from '../types';
2
- export declare const baseDBEntityJsonSchema: import("./jsonSchemaBuilder").JsonSchemaObjectBuilder<Partial<SavedDBEntity>>;
3
- export declare const savedDBEntityJsonSchema: import("./jsonSchemaBuilder").JsonSchemaObjectBuilder<SavedDBEntity>;
2
+ export declare const baseDBEntityJsonSchema: import("./jsonSchemaBuilder").JsonSchemaObjectBuilder<Partial<SavedDBEntity<string>>>;
3
+ export declare const savedDBEntityJsonSchema: import("./jsonSchemaBuilder").JsonSchemaObjectBuilder<SavedDBEntity<string>>;
package/dist/types.d.ts CHANGED
@@ -127,8 +127,8 @@ export declare type UnixTimestamp = number;
127
127
  /**
128
128
  * Base interface for any Entity that was saved to DB.
129
129
  */
130
- export interface SavedDBEntity {
131
- id: string;
130
+ export interface SavedDBEntity<ID = string> {
131
+ id: ID;
132
132
  /**
133
133
  * unixTimestamp of when the entity was first created (in the DB).
134
134
  */
@@ -144,9 +144,9 @@ export interface SavedDBEntity {
144
144
  * hence `id`, `created` and `updated` fields CAN BE undefined (yet).
145
145
  * When it's known to be saved - `SavedDBEntity` interface can be used instead.
146
146
  */
147
- export declare type BaseDBEntity = Partial<SavedDBEntity>;
148
- export declare type Saved<E> = Merge<E, SavedDBEntity>;
149
- export declare type Unsaved<E> = Merge<E, BaseDBEntity>;
147
+ export declare type BaseDBEntity<ID = string> = Partial<SavedDBEntity<ID>>;
148
+ export declare type Saved<E, ID = string> = Merge<E, SavedDBEntity<ID>>;
149
+ export declare type Unsaved<E, ID = string> = Merge<E, BaseDBEntity<ID>>;
150
150
  /**
151
151
  * Named type for JSON.parse / JSON.stringify second argument
152
152
  */
@@ -301,16 +301,16 @@ export class JsonSchemaObjectBuilder extends JsonSchemaAnyBuilder {
301
301
  Object.assign(this.schema, { additionalProperties });
302
302
  return this;
303
303
  }
304
- baseDBEntity() {
304
+ baseDBEntity(idType = 'string') {
305
305
  Object.assign(this.schema.properties, {
306
- id: { type: 'string' },
306
+ id: { type: idType },
307
307
  created: { type: 'number', format: 'unixTimestamp' },
308
308
  updated: { type: 'number', format: 'unixTimestamp' },
309
309
  });
310
310
  return this;
311
311
  }
312
- savedDBEntity() {
313
- return this.baseDBEntity().addRequired(['id', 'created', 'updated']);
312
+ savedDBEntity(idType = 'string') {
313
+ return this.baseDBEntity(idType).addRequired(['id', 'created', 'updated']);
314
314
  }
315
315
  extend(s2) {
316
316
  const builder = new JsonSchemaObjectBuilder();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naturalcycles/js-lib",
3
- "version": "14.80.0",
3
+ "version": "14.80.1",
4
4
  "scripts": {
5
5
  "prepare": "husky install",
6
6
  "build-prod": "build-prod-esm-cjs",
@@ -365,9 +365,9 @@ export class JsonSchemaObjectBuilder<T extends AnyObject> extends JsonSchemaAnyB
365
365
  return this
366
366
  }
367
367
 
368
- baseDBEntity(): JsonSchemaObjectBuilder<T & BaseDBEntity> {
368
+ baseDBEntity<ID = string>(idType = 'string'): JsonSchemaObjectBuilder<T & BaseDBEntity<ID>> {
369
369
  Object.assign(this.schema.properties, {
370
- id: { type: 'string' },
370
+ id: { type: idType },
371
371
  created: { type: 'number', format: 'unixTimestamp' },
372
372
  updated: { type: 'number', format: 'unixTimestamp' },
373
373
  })
@@ -375,8 +375,8 @@ export class JsonSchemaObjectBuilder<T extends AnyObject> extends JsonSchemaAnyB
375
375
  return this
376
376
  }
377
377
 
378
- savedDBEntity(): JsonSchemaObjectBuilder<T & SavedDBEntity> {
379
- return this.baseDBEntity().addRequired(['id', 'created', 'updated']) as any
378
+ savedDBEntity<ID = string>(idType = 'string'): JsonSchemaObjectBuilder<T & SavedDBEntity<ID>> {
379
+ return this.baseDBEntity(idType).addRequired(['id', 'created', 'updated']) as any
380
380
  }
381
381
 
382
382
  extend<T2 extends AnyObject>(s2: JsonSchemaObjectBuilder<T2>): JsonSchemaObjectBuilder<T & T2> {
package/src/types.ts CHANGED
@@ -169,8 +169,8 @@ export type UnixTimestamp = number
169
169
  /**
170
170
  * Base interface for any Entity that was saved to DB.
171
171
  */
172
- export interface SavedDBEntity {
173
- id: string
172
+ export interface SavedDBEntity<ID = string> {
173
+ id: ID
174
174
 
175
175
  /**
176
176
  * unixTimestamp of when the entity was first created (in the DB).
@@ -189,10 +189,10 @@ export interface SavedDBEntity {
189
189
  * hence `id`, `created` and `updated` fields CAN BE undefined (yet).
190
190
  * When it's known to be saved - `SavedDBEntity` interface can be used instead.
191
191
  */
192
- export type BaseDBEntity = Partial<SavedDBEntity>
192
+ export type BaseDBEntity<ID = string> = Partial<SavedDBEntity<ID>>
193
193
 
194
- export type Saved<E> = Merge<E, SavedDBEntity>
195
- export type Unsaved<E> = Merge<E, BaseDBEntity>
194
+ export type Saved<E, ID = string> = Merge<E, SavedDBEntity<ID>>
195
+ export type Unsaved<E, ID = string> = Merge<E, BaseDBEntity<ID>>
196
196
 
197
197
  /**
198
198
  * Named type for JSON.parse / JSON.stringify second argument