Skip to content

Commit 5061e41

Browse files
committed
Fixing the cloner to not skip if the destination item does not exist.
1 parent 809b6ad commit 5061e41

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@formio/cli",
3-
"version": "2.3.1",
3+
"version": "2.3.2",
44
"description": "The Form.io Command Line Interface application.",
55
"main": "index.js",
66
"scripts": {

src/Cloner.js

+21-17
Original file line numberDiff line numberDiff line change
@@ -246,13 +246,15 @@ class Cloner {
246246
return false;
247247
}
248248

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+
}
256258
}
257259
return true;
258260
}
@@ -425,9 +427,9 @@ class Cloner {
425427
* @param {*} query - The default query to decorate.
426428
* @returns - The decorated query.
427429
*/
428-
query(query) {
430+
query(query, includeAll = false) {
429431
let newQuery = _.cloneDeep(query);
430-
if (!this.options.all) {
432+
if (!this.options.all && !includeAll) {
431433
newQuery.deleted = {$eq: null};
432434
}
433435
return newQuery;
@@ -452,16 +454,18 @@ class Cloner {
452454
* @param {*} query - The default query to decorate.
453455
* @returns - The decorated query.
454456
*/
455-
itemQuery(query) {
457+
itemQuery(query, includeAll = false) {
456458
let newQuery = _.cloneDeep(query);
457459
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+
}
462466
}
463467
else {
464-
newQuery = this.query(newQuery);
468+
newQuery = this.query(newQuery, includeAll);
465469
}
466470
// If it's OSS, then project would be undefined
467471
// eslint-disable-next-line no-prototype-builtins
@@ -475,8 +479,8 @@ class Cloner {
475479
* Adding a query for created and modified dates.
476480
* @param {*} query - The default query to decorate.
477481
*/
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);
480484
createdAfter = createdAfter || this.options.createdAfter;
481485
modifiedAfter = modifiedAfter || this.options.modifiedAfter;
482486
if (createdAfter) {

0 commit comments

Comments
 (0)