@constructorfleet/ultimate-govee
Version:
Library for interacting with Govee devices written in Typescript.
69 lines • 3.19 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var PersistModule_1;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PersistModule = void 0;
const common_1 = require("@nestjs/common");
const persist_service_1 = require("./persist.service");
const fs_1 = require("fs");
const promises_1 = require("fs/promises");
const moment_1 = __importDefault(require("moment"));
const path_1 = require("path");
const persist_providers_1 = require("./persist.providers");
let PersistModule = PersistModule_1 = class PersistModule extends persist_providers_1.ConfigurableModuleClass {
static get persistRootDirectory() {
return this.rootDirectory;
}
constructor(rootDirectory) {
super();
PersistModule_1.rootDirectory = rootDirectory ?? '.';
}
};
exports.PersistModule = PersistModule;
PersistModule.rootDirectory = '.';
PersistModule.getPersistedFile = async (options) => {
const fullFilePath = (0, path_1.join)(PersistModule_1.rootDirectory ?? '.', options.filename);
try {
if (!(0, fs_1.existsSync)(fullFilePath)) {
return {};
}
const stats = await (0, promises_1.stat)(fullFilePath);
const data = await (0, promises_1.readFile)(fullFilePath, { encoding: 'utf-8' });
if (!options.transform) {
return {
lastUpdate: (0, moment_1.default)(stats.birthtime),
data: JSON.parse(data),
};
}
return {
lastUpdate: (0, moment_1.default)(stats.birthtime),
data: options.transform(JSON.parse(data)),
};
}
catch (err) {
return {};
}
};
exports.PersistModule = PersistModule = PersistModule_1 = __decorate([
(0, common_1.Module)({
providers: [persist_service_1.PersistService, persist_providers_1.FileReader, persist_providers_1.FileWriter, persist_providers_1.RootDirectoryProvider],
exports: [persist_service_1.PersistService, persist_providers_1.MODULE_OPTIONS_TOKEN],
}),
__param(0, persist_providers_1.InjectRootDirectory),
__metadata("design:paramtypes", [String])
], PersistModule);
//# sourceMappingURL=persist.module.js.map