Initial commit
This commit is contained in:
99
Backend/dist/Decks/DeckManager.js
vendored
Normal file
99
Backend/dist/Decks/DeckManager.js
vendored
Normal file
@@ -0,0 +1,99 @@
|
||||
exports.__esModule = true;
|
||||
exports.DeckManager = void 0;
|
||||
var path = require("path");
|
||||
var Logger_1 = require("../Logger");
|
||||
var StreamDeck = require("@elgato-stream-deck/node");
|
||||
var Deck_1 = require("./Deck");
|
||||
var fs = require("fs-extra");
|
||||
var writeFile = fs.writeFile, pathExists = fs.pathExists, readJson = fs.readJson;
|
||||
var DeckManager = /** @class */ (function () {
|
||||
function DeckManager() {
|
||||
}
|
||||
DeckManager.prototype.load = function (callback) {
|
||||
var _this = this;
|
||||
this.managerConfigPath = path.join(Undecked.dataPath, 'decks.json');
|
||||
this.decks = {};
|
||||
this.loadConfig(function () {
|
||||
for (var i = 0; i < _this.managerConfig.decks.length; i++) {
|
||||
var deckConfig = _this.managerConfig.decks[i];
|
||||
_this.decks[deckConfig.serialNumber] = new Deck_1.Deck(deckConfig, null);
|
||||
}
|
||||
_this.ensureDecks(function (newDecks) {
|
||||
Logger_1.Log('info', "Loaded " + (Object.keys(_this.decks).length - newDecks) + " existing deck(s) and " + newDecks + " new deck(s)");
|
||||
callback();
|
||||
});
|
||||
});
|
||||
};
|
||||
DeckManager.prototype.loadConfig = function (callback) {
|
||||
var _this = this;
|
||||
pathExists(this.managerConfigPath, function (err, exists) {
|
||||
if (err)
|
||||
throw err;
|
||||
if (exists) {
|
||||
readJson(_this.managerConfigPath, function (err, json) {
|
||||
if (err)
|
||||
throw err;
|
||||
_this.managerConfig = json;
|
||||
callback();
|
||||
});
|
||||
}
|
||||
else {
|
||||
_this.managerConfig = defaultDeckConfig;
|
||||
_this.saveConfig(callback);
|
||||
}
|
||||
});
|
||||
};
|
||||
DeckManager.prototype.saveConfig = function (callback) {
|
||||
var toSave = {
|
||||
decks: []
|
||||
};
|
||||
for (var serialNumber in this.decks)
|
||||
toSave.decks.push(this.decks[serialNumber]["export"]());
|
||||
writeFile(this.managerConfigPath, JSON.stringify(toSave, null, 4), function (err) {
|
||||
if (err)
|
||||
Logger_1.Log('error', 'Error whilst saving manager config', err.message);
|
||||
if (callback)
|
||||
callback();
|
||||
});
|
||||
};
|
||||
DeckManager.prototype.hasDeck = function (serialNumber) {
|
||||
return this.decks[serialNumber] != undefined;
|
||||
};
|
||||
DeckManager.prototype.getDeck = function (serialNumber) {
|
||||
if (this.decks[serialNumber])
|
||||
return this.decks[serialNumber];
|
||||
return null;
|
||||
};
|
||||
DeckManager.prototype.ensureDecks = function (callback) {
|
||||
var _this = this;
|
||||
var currentDecks = Object.keys(this.decks).length;
|
||||
var decks = StreamDeck.listStreamDecks();
|
||||
for (var i = 0; i < decks.length; i++) {
|
||||
if (!this.hasDeck(decks[i].serialNumber))
|
||||
this.decks[decks[i].serialNumber] = new Deck_1.Deck({
|
||||
serialNumber: decks[i].serialNumber,
|
||||
model: decks[i].model,
|
||||
name: "Unnamed " + decks[i].model
|
||||
}, decks[i].path);
|
||||
else
|
||||
this.decks[decks[i].serialNumber].setDevicePath(decks[i].path);
|
||||
}
|
||||
if (Object.keys(this.decks).length > currentDecks)
|
||||
this.saveConfig(function () { return callback(Object.keys(_this.decks).length - currentDecks); });
|
||||
else
|
||||
callback(0);
|
||||
};
|
||||
DeckManager.prototype.getList = function () {
|
||||
var list = [];
|
||||
for (var serialNumber in this.decks) {
|
||||
list.push({ serialNumber: serialNumber, name: this.decks[serialNumber].getName() });
|
||||
}
|
||||
return list;
|
||||
};
|
||||
return DeckManager;
|
||||
}());
|
||||
exports.DeckManager = DeckManager;
|
||||
var defaultDeckConfig = {
|
||||
decks: []
|
||||
};
|
||||
//# sourceMappingURL=DeckManager.js.map
|
||||
Reference in New Issue
Block a user