Ensure non-async deactivate is run syncronously without await

This commit is contained in:
Damien Guard
2017-09-08 11:20:23 -07:00
parent 79fbef8e24
commit 524d483610
2 changed files with 29 additions and 12 deletions

View File

@@ -758,7 +758,12 @@ module.exports = class PackageManager {
if (!suppressSerialization && this.isPackageActive(pack.name)) {
this.serializePackage(pack)
}
await pack.deactivate()
const deactivationResult = pack.deactivate()
if (deactivationResult && typeof deactivationResult.then === 'function') {
await deactivationResult;
}
delete this.activePackages[pack.name]
delete this.activatingPackages[pack.name]
this.emitter.emit('did-deactivate-package', pack)