From a89438cccd5007f20337fe897bc3bfe86db12969 Mon Sep 17 00:00:00 2001 From: Simon Fridlund Date: Sun, 11 Jun 2017 18:47:56 +0200 Subject: [PATCH] Add destroy to reactive-dict This will clear the dict and unregister the dict for migration. --- packages/reactive-dict/migration.js | 7 +++++-- packages/reactive-dict/reactive-dict.js | 7 +++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/reactive-dict/migration.js b/packages/reactive-dict/migration.js index eb2b27a057..2f7ccb3b9f 100644 --- a/packages/reactive-dict/migration.js +++ b/packages/reactive-dict/migration.js @@ -4,8 +4,11 @@ ReactiveDict._migratedDictData = {}; // name -> data ReactiveDict._dictsToMigrate = {}; // name -> ReactiveDict ReactiveDict._loadMigratedDict = function (dictName) { - if (_.has(ReactiveDict._migratedDictData, dictName)) - return ReactiveDict._migratedDictData[dictName]; + if (_.has(ReactiveDict._migratedDictData, dictName)) { + const data = ReactiveDict._migratedDictData[dictName]; + delete ReactiveDict._migratedDictData[dictName]; + return data; + } return null; }; diff --git a/packages/reactive-dict/reactive-dict.js b/packages/reactive-dict/reactive-dict.js index d1c60d5acb..96c306e43c 100644 --- a/packages/reactive-dict/reactive-dict.js +++ b/packages/reactive-dict/reactive-dict.js @@ -210,6 +210,13 @@ export class ReactiveDict { } return didRemove; } + + destroy() { + this.clear(); + if (this.name && _.has(ReactiveDict._dictsToMigrate, this.name)) { + delete ReactiveDict._dictsToMigrate[this.name]; + } + } _setObject(object) { _.each(object, (value, key) => {