@salesforce/core 7.3.11 → 7.3.12
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.
package/lib/lifecycleEvents.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { AnyJson } from '@salesforce/ts-types';
|
|
2
|
-
type callback = (data: any) => Promise<void>;
|
|
2
|
+
export type callback = (data: any) => Promise<void>;
|
|
3
|
+
type ListenerMap = Map<string, callback>;
|
|
4
|
+
export type UniqueListenerMap = Map<string, ListenerMap>;
|
|
3
5
|
/**
|
|
4
6
|
* An asynchronous event listener and emitter that follows the singleton pattern. The singleton pattern allows lifecycle
|
|
5
7
|
* events to be emitted from deep within a library and still be consumed by any other library or tool. It allows other
|
|
@@ -92,4 +94,5 @@ export declare class Lifecycle {
|
|
|
92
94
|
*/
|
|
93
95
|
emit<T = AnyJson>(eventName: string, data: T): Promise<void>;
|
|
94
96
|
}
|
|
97
|
+
export declare const cloneUniqueListeners: (uniqueListeners: UniqueListenerMap) => UniqueListenerMap;
|
|
95
98
|
export {};
|
package/lib/lifecycleEvents.js
CHANGED
|
@@ -29,7 +29,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
29
29
|
return result;
|
|
30
30
|
};
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.Lifecycle = void 0;
|
|
32
|
+
exports.cloneUniqueListeners = exports.Lifecycle = void 0;
|
|
33
33
|
const semver_1 = require("semver");
|
|
34
34
|
// needed for TS to not put everything inside /lib/src
|
|
35
35
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
@@ -102,8 +102,8 @@ class Lifecycle {
|
|
|
102
102
|
(0, semver_1.compare)(global.salesforceCoreLifecycle.version(), Lifecycle.staticVersion()) === -1) {
|
|
103
103
|
const oldInstance = global.salesforceCoreLifecycle;
|
|
104
104
|
// use the newer version and transfer any listeners from the old version
|
|
105
|
-
// object spread
|
|
106
|
-
global.salesforceCoreLifecycle = new Lifecycle({ ...oldInstance.listeners }, oldInstance.uniqueListeners);
|
|
105
|
+
// object spread and the clone fn keep them from being references
|
|
106
|
+
global.salesforceCoreLifecycle = new Lifecycle({ ...oldInstance.listeners }, (0, exports.cloneUniqueListeners)(oldInstance.uniqueListeners));
|
|
107
107
|
// clean up any listeners on the old version
|
|
108
108
|
Object.keys(oldInstance.listeners).map((eventName) => {
|
|
109
109
|
oldInstance.removeAllListeners(eventName);
|
|
@@ -232,4 +232,7 @@ class Lifecycle {
|
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
234
|
exports.Lifecycle = Lifecycle;
|
|
235
|
+
const cloneListeners = (listeners) => new Map(Array.from(listeners.entries()));
|
|
236
|
+
const cloneUniqueListeners = (uniqueListeners) => new Map(Array.from(uniqueListeners.entries()).map(([key, value]) => [key, cloneListeners(value)]));
|
|
237
|
+
exports.cloneUniqueListeners = cloneUniqueListeners;
|
|
235
238
|
//# sourceMappingURL=lifecycleEvents.js.map
|