@warlock.js/cascade 3.0.5 → 3.0.6

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,450 +0,0 @@
1
- import { ObjectId } from "mongodb";
2
- import { ModelAggregate } from "./ModelAggregate";
3
- import { ModelSync } from "./ModelSync";
4
- import { RelationshipWithMany } from "./RelationshipWithMany";
5
- import { CrudModel } from "./crud-model";
6
- import { Joinable } from "./joinable";
7
- import type { CastType, Casts, ChildModel, CustomCasts, Document, ModelDocument } from "./types";
8
- export type Schema<ModelSchema = Document> = ModelSchema & {
9
- _id?: ObjectId;
10
- id?: number;
11
- createdAt?: Date;
12
- updatedAt?: Date;
13
- };
14
- type ModelSchema = Schema;
15
- export declare class Model extends CrudModel {
16
- /**
17
- * Model Initial Document data
18
- */
19
- initialData: Partial<ModelSchema>;
20
- /**
21
- * Model relationships defined using the joinable API.
22
- *
23
- * Each key represents a relationship name that can be referenced when running queries.
24
- * Each value defines how to join another collection to the current model.
25
- *
26
- * @example
27
- * Basic definition:
28
- * ```ts
29
- * public static relations = {
30
- * // Join users collection where local createdBy.id matches user's id
31
- * author: User.joinable("createdBy.id", "id").single().as("author"),
32
- * }
33
- * ```
34
- *
35
- * @usage
36
- * Example of calling:
37
- * ```ts
38
- * Post.aggregate().joining("author").get(); // use `joining` method to join the `author` relationship
39
- * // Where `author` is the name of the relationship defined in the `relations` property
40
- * ```
41
- */
42
- static relations: Record<string, Joinable>;
43
- /**
44
- * Model Document data
45
- */
46
- data: ModelSchema;
47
- /**
48
- * Define Default value data that will be merged with the models' data
49
- * on the create process
50
- */
51
- defaultValue: Partial<ModelSchema>;
52
- /**
53
- * A flag to determine if the model is being restored
54
- */
55
- protected isRestored: boolean;
56
- /**
57
- * Model casts types
58
- */
59
- protected casts: Casts;
60
- /**
61
- * Sync with list
62
- */
63
- syncWith: ModelSync[];
64
- /**
65
- * Set custom casts that will be used to cast the model's data are not related to the current value of the collection's column
66
- *
67
- * For example: `name` is not a column in the given data, but it will be concatenation of `firstName` and `lastName`
68
- */
69
- protected customCasts: CustomCasts<string>;
70
- /**
71
- * Guarded fields
72
- */
73
- guarded: (keyof ModelDocument)[];
74
- /**
75
- * Fillable fields
76
- */
77
- filled: (keyof ModelDocument)[];
78
- /**
79
- * Embedded columns
80
- */
81
- embedded: (keyof ModelSchema)[];
82
- /**
83
- * Embed all columns except the given columns
84
- */
85
- embedAllExcept: (keyof ModelDocument)[];
86
- /**
87
- * Embed all columns except timestamps and created|updated|deleted by columns
88
- */
89
- embedAllExceptTimestampsAndUserColumns: boolean;
90
- /**
91
- * Created at column
92
- */
93
- createdAtColumn: string;
94
- /**
95
- * Updated at column
96
- */
97
- updatedAtColumn: string;
98
- /**
99
- * Deleted at column
100
- */
101
- deletedAtColumn: string;
102
- /**
103
- * Created by column
104
- */
105
- createdByColumn: string;
106
- /**
107
- * Updated by column
108
- */
109
- updatedByColumn: string;
110
- /**
111
- * Deleted by column
112
- */
113
- deletedByColumn: string;
114
- /**
115
- * Date format
116
- */
117
- dateFormat: string;
118
- /**
119
- * A flag to determine if the id is auto generated not added manually
120
- */
121
- protected autoGeneratedId: boolean;
122
- /**
123
- * Is active column
124
- */
125
- protected isActiveColumn: string;
126
- /**
127
- * Original data
128
- */
129
- originalData: ModelSchema;
130
- /**
131
- * List of dirty columns
132
- */
133
- dirtyColumns: Record<string, {
134
- oldValue: any;
135
- newValue: any;
136
- }>;
137
- /**
138
- * Constructor
139
- */
140
- constructor(originalData?: Partial<ModelSchema>);
141
- /**
142
- * Get save columns which are the casts keys
143
- */
144
- get castColumns(): string[];
145
- /**
146
- * Get value from original data
147
- */
148
- original(key: string, defaultValue?: any): any;
149
- /**
150
- * Get all data except the guarded fields
151
- */
152
- get publicData(): any;
153
- /**
154
- * Get guarded data
155
- */
156
- get guardedData(): any;
157
- /**
158
- * Get the model's id
159
- */
160
- get id(): number;
161
- /**
162
- * Check if current user is active
163
- */
164
- get isActive(): boolean;
165
- /**
166
- * Get mongodb id
167
- */
168
- get _id(): ObjectId;
169
- /**
170
- * Mark the current model as being restored
171
- */
172
- markAsRestored(): void;
173
- /**
174
- * Set a column in the model data
175
- */
176
- set(column: keyof ModelSchema, value: any): this;
177
- /**
178
- * Increment the given column by the given value
179
- */
180
- increment(column: keyof ModelSchema, value?: number): this;
181
- /**
182
- * Decrement the given column by the given value
183
- */
184
- decrement(column: keyof ModelSchema, value?: number): this;
185
- /**
186
- * Get initial value of the given column
187
- */
188
- getInitial(column: keyof ModelSchema, defaultValue?: any): any;
189
- /**
190
- * Get value of the given column
191
- */
192
- get<ValueType = any>(column: keyof ModelSchema, defaultValue?: any): ValueType;
193
- /**
194
- * Return the value of the given column as a string
195
- */
196
- string(column: keyof ModelSchema, defaultValue?: any): string;
197
- /**
198
- * Return the value of the given column as an integer
199
- */
200
- int(column: keyof ModelSchema, defaultValue?: any): number;
201
- /**
202
- * Return the value of the given column as a float
203
- */
204
- float(column: keyof ModelSchema, defaultValue?: any): number;
205
- /**
206
- * Return the value of the given column as a number
207
- */
208
- number(column: keyof ModelSchema, defaultValue?: any): number;
209
- /**
210
- * Return the value of the given column as a boolean
211
- */
212
- bool(column: keyof ModelSchema, defaultValue?: any): boolean;
213
- /**
214
- * Determine whether the given column exists in the document
215
- */
216
- has(column: keyof ModelSchema): boolean;
217
- /**
218
- * Get all columns except the given ones
219
- */
220
- except(columns: (keyof ModelSchema)[]): Document;
221
- /**
222
- * Get only the given columns
223
- */
224
- only(columns: (keyof ModelSchema)[]): Document;
225
- /**
226
- * Get only id
227
- */
228
- get onlyId(): Document;
229
- /**
230
- * Unset or remove the given columns from the data
231
- */
232
- unset(...columns: (keyof ModelSchema)[]): this;
233
- /**
234
- * Get the value of the given column and remove it from the data
235
- */
236
- pluck(column: keyof ModelSchema): any;
237
- /**
238
- * Replace the entire document data with the given new data
239
- */
240
- replaceWith(data: ModelSchema): this;
241
- /**
242
- * Merge the given documents to current document
243
- */
244
- merge(data: Document): this;
245
- /**
246
- * Push the given values to the given column
247
- * If the given column does not exists, it will be created
248
- * If the given value exists but not an array it will be ignored
249
- */
250
- push(column: keyof ModelSchema, ...values: any[]): this;
251
- /**
252
- * Push the given values to the given column only if not exists
253
- */
254
- pushOnce(column: keyof ModelSchema, ...values: any[]): this;
255
- /**
256
- * Add the given values to the beginning of the given column
257
- * If the given column does not exists, it will be created
258
- * If the given value exists but not an array it will be ignored
259
- */
260
- unshift(column: keyof ModelSchema, ...values: any[]): this;
261
- /**
262
- * Add the given values to the beginning of the given column only if not exists
263
- */
264
- unshiftOnce(column: keyof ModelSchema, ...values: any[]): this;
265
- protected prepareDataForCreating(cast?: boolean, triggerEvents?: boolean): Promise<void>;
266
- /**
267
- * Perform saving operation either by updating or creating a new record in database
268
- */
269
- save(mergedData?: Omit<ModelSchema, "id" | "_id">, { triggerEvents, cast, forceUpdate, }?: {
270
- triggerEvents?: boolean;
271
- cast?: boolean;
272
- forceUpdate?: boolean;
273
- }): Promise<this>;
274
- /**
275
- * Generate and return next id
276
- */
277
- generateNextId(): Promise<number>;
278
- /**
279
- * Trigger created events
280
- */
281
- triggerCreatedEvents(): void;
282
- /**
283
- * Trigger updated events
284
- */
285
- triggerUpdatedEvents(oldModel: Model): void;
286
- /**
287
- * Perform saving but without any events triggers
288
- */
289
- silentSaving(mergedData?: Omit<ModelSchema, "id" | "_id">, options?: {
290
- cast?: boolean;
291
- }): Promise<this>;
292
- /**
293
- * Determine whether the model should be updated or not
294
- */
295
- protected shouldUpdate(originalData: ModelSchema, data: ModelSchema): boolean;
296
- /**
297
- * Triggered before saving the model either by creating or updating
298
- */
299
- protected onSaving(): Promise<void>;
300
- /**
301
- * Triggered after saving the model either by creating or updating
302
- */
303
- protected onSaved(): Promise<void>;
304
- /**
305
- * Triggered before creating the model
306
- */
307
- protected onCreating(): Promise<void>;
308
- /**
309
- * Triggered after creating the model
310
- */
311
- protected onCreated(): Promise<void>;
312
- /**
313
- * Triggered before updating the model
314
- */
315
- protected onUpdating(): Promise<void>;
316
- /**
317
- * Triggered after updating the model
318
- */
319
- protected onUpdated(): Promise<void>;
320
- /**
321
- * Triggered before deleting the model
322
- */
323
- protected onDeleting(): Promise<void>;
324
- /**
325
- * Triggered after deleting the model
326
- */
327
- protected onDeleted(): Promise<void>;
328
- /**
329
- * Cast data before saving
330
- */
331
- protected castData(forceUpdate?: boolean): Promise<void>;
332
- /**
333
- * Return only the given columns to be used in output
334
- */
335
- outputOnly(columns: string[]): this;
336
- /**
337
- * Return all columns except the given columns to be used in output
338
- */
339
- outputExcept(columns: string[]): this;
340
- /**
341
- * Cast the given value based on the given cast type
342
- */
343
- protected castValue(value: any, castType: CastType): any;
344
- /**
345
- * Check for default values
346
- */
347
- protected checkDefaultValues(): void;
348
- /**
349
- * Destroy the model and delete it from database collection
350
- */
351
- destroy(): Promise<void>;
352
- /**
353
- * Determine if the given column is dirty column
354
- *
355
- * Dirty columns are columns that their values have been changed from the original data
356
- */
357
- isDirty(column?: string): boolean;
358
- /**
359
- * Check if current model is a new model
360
- */
361
- isNewModel(): boolean;
362
- /**
363
- * Get embedded data
364
- */
365
- get embeddedData(): any;
366
- /**
367
- * Clone the model
368
- */
369
- clone(data?: Document): this;
370
- /**
371
- * Get relationship with the given model class
372
- */
373
- hasMany<T extends Model = Model>(modelClass: typeof Model, column: string): RelationshipWithMany<T>;
374
- /**
375
- * Get new aggregate for current model
376
- */
377
- static aggregate<T extends Model = Model>(this: ChildModel<T>): ModelAggregate<T>;
378
- /**
379
- * @alias aggregate
380
- */
381
- static newQuery(): ModelAggregate<Model>;
382
- /**
383
- * Get query builder
384
- * @alias aggregate
385
- */
386
- static queryBuilder<T extends Model = Model>(this: ChildModel<T>): ModelAggregate<T>;
387
- /**
388
- * Sync with the given model
389
- */
390
- static sync(columns: string | string[], embedMethod?: string): ModelSync;
391
- /**
392
- * Sync data on saving
393
- */
394
- startSyncing(saveMode: "create" | "update", oldModel?: Model): void;
395
- /**
396
- * Sync destruction
397
- * Called when destroy method is called
398
- */
399
- syncDestruction(): void;
400
- /**
401
- * The syncing model (That calls startSyncing) is being embedded in multiple documents of current model
402
- * I.e Country.syncMany('cities') while current model is City
403
- */
404
- static syncMany(columns: string | string[], embedMethod?: string): ModelSync;
405
- /**
406
- * Reassociate a model/object/document with the current model
407
- * If the model is already associated, it will be updated
408
- * If not, it will be associated
409
- * the model/document must have an id
410
- *
411
- * If it is a model, you can set the embed method to use
412
- */
413
- reassociate(this: Model, column: string, model: Model | ModelDocument | any, embedWith?: string): Model;
414
- /**
415
- * Associate a model with the current model
416
- */
417
- associate(this: Model, column: string, model: Model | ModelDocument | any, embedWith?: string): Model;
418
- /**
419
- * Disassociate a model with the current model
420
- */
421
- disassociate(this: Model, column: string, model: Model | ModelDocument | any): Model;
422
- /**
423
- * Refresh the model with new data from database
424
- * This method will update the current data with the new data from database
425
- */
426
- refresh(): Promise<this>;
427
- /**
428
- * Fetch data from database and return it in a new model
429
- */
430
- reload(): Promise<this>;
431
- /**
432
- * Make a wrapper to list when models should be updated when only one of the given columns is updated
433
- */
434
- syncUpdateWhenChange(columns: string | string[], syncModels: ModelSync[]): ModelSync[];
435
- /**
436
- * Get a Joinable instance for current model
437
- */
438
- static joinable(
439
- /**
440
- * Local field to the current model
441
- */
442
- localField?: string,
443
- /**
444
- * Foreign field in the joinable model
445
- */
446
- foreignField?: string, single?: boolean, as?: string): import("./joinable").JoinableProxy;
447
- }
448
- export type ModelType = typeof Model;
449
- export {};
450
- //# sourceMappingURL=model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}