@@ -246,13 +246,15 @@ class Cloner {
246
246
return false ;
247
247
}
248
248
249
- // Make sure to not re-clone the same item it if has not been modified.
250
- // eslint-disable-next-line max-len
251
- const updatedCreated = ( updatedItem . created instanceof Date ) ? updatedItem . created . getTime ( ) : parseInt ( updatedItem . created , 10 ) ;
252
- // eslint-disable-next-line max-len
253
- const updatedModified = ( updatedItem . modified instanceof Date ) ? updatedItem . modified . getTime ( ) : parseInt ( updatedItem . modified , 10 ) ;
254
- if ( srcCreated === updatedCreated && srcModified === updatedModified ) {
255
- return false ;
249
+ if ( updatedItem . _id ) {
250
+ // Make sure to not re-clone the same item it if has not been modified.
251
+ // eslint-disable-next-line max-len
252
+ const updatedCreated = ( updatedItem . created instanceof Date ) ? updatedItem . created . getTime ( ) : parseInt ( updatedItem . created , 10 ) ;
253
+ // eslint-disable-next-line max-len
254
+ const updatedModified = ( updatedItem . modified instanceof Date ) ? updatedItem . modified . getTime ( ) : parseInt ( updatedItem . modified , 10 ) ;
255
+ if ( srcCreated === updatedCreated && srcModified === updatedModified ) {
256
+ return false ;
257
+ }
256
258
}
257
259
return true ;
258
260
}
@@ -425,9 +427,9 @@ class Cloner {
425
427
* @param {* } query - The default query to decorate.
426
428
* @returns - The decorated query.
427
429
*/
428
- query ( query ) {
430
+ query ( query , includeAll = false ) {
429
431
let newQuery = _ . cloneDeep ( query ) ;
430
- if ( ! this . options . all ) {
432
+ if ( ! this . options . all && ! includeAll ) {
431
433
newQuery . deleted = { $eq : null } ;
432
434
}
433
435
return newQuery ;
@@ -452,16 +454,18 @@ class Cloner {
452
454
* @param {* } query - The default query to decorate.
453
455
* @returns - The decorated query.
454
456
*/
455
- itemQuery ( query ) {
457
+ itemQuery ( query , includeAll = false ) {
456
458
let newQuery = _ . cloneDeep ( query ) ;
457
459
if ( this . options . deletedAfter ) {
458
- newQuery [ '$or' ] = [
459
- { deleted : { $eq : null } } ,
460
- { deleted : { $gt : new Date ( parseInt ( this . options . deletedAfter , 10 ) ) } }
461
- ] ;
460
+ if ( ! includeAll ) {
461
+ newQuery [ '$or' ] = [
462
+ { deleted : { $eq : null } } ,
463
+ { deleted : { $gt : new Date ( parseInt ( this . options . deletedAfter , 10 ) ) } }
464
+ ] ;
465
+ }
462
466
}
463
467
else {
464
- newQuery = this . query ( newQuery ) ;
468
+ newQuery = this . query ( newQuery , includeAll ) ;
465
469
}
466
470
// If it's OSS, then project would be undefined
467
471
// eslint-disable-next-line no-prototype-builtins
@@ -475,8 +479,8 @@ class Cloner {
475
479
* Adding a query for created and modified dates.
476
480
* @param {* } query - The default query to decorate.
477
481
*/
478
- afterQuery ( query , createdAfter , modifiedAfter ) {
479
- const newQuery = this . itemQuery ( query ) ;
482
+ afterQuery ( query , createdAfter , modifiedAfter , includeAll = false ) {
483
+ const newQuery = this . itemQuery ( query , includeAll ) ;
480
484
createdAfter = createdAfter || this . options . createdAfter ;
481
485
modifiedAfter = modifiedAfter || this . options . modifiedAfter ;
482
486
if ( createdAfter ) {
0 commit comments