wechaty-puppet
Version:
Abstract Puppet for Wechaty
46 lines • 1.6 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.memoryMixin = void 0;
const memory_card_1 = require("memory-card");
const config_js_1 = require("../config.js");
const memoryMixin = (mixinBase) => {
class MemoryMixin extends mixinBase {
_memory;
get memory() {
return this._memory;
}
constructor(...args) {
super(...args);
config_js_1.log.verbose('PuppetMemoryMixin', 'constructor()');
/**
* Huan(202110): we init a un-named MemoryCard by default
* it can be replaced by `setMemory()` later.
*/
this._memory = new memory_card_1.MemoryCard();
}
async start() {
config_js_1.log.verbose('PuppetMemoryMixin', 'start()');
try {
await this.memory.load();
}
catch (_) {
config_js_1.log.silly('PuppetMemoryMixin', 'start() memory has already been loaded before');
}
await super.start();
}
async stop() {
config_js_1.log.verbose('PuppetMemoryMixin', 'stop()');
await super.stop();
}
setMemory(memory) {
config_js_1.log.verbose('PuppetMemoryMixin', 'setMemory(%s)', memory.name);
if (this._memory.name) {
throw new Error('Puppet memory can be only set once');
}
this._memory = memory;
}
}
return MemoryMixin;
};
exports.memoryMixin = memoryMixin;
//# sourceMappingURL=memory-mixin.js.map
;