@freemework/hosting
Version:
Hosting library of the Freemework Project.
42 lines • 1.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.FConfigurationProperties = void 0;
const fs_1 = require("fs");
const util_1 = require("util");
const url_1 = require("url");
const readFileAsync = (0, util_1.promisify)(fs_1.readFile);
const common_1 = require("@freemework/common");
/**
* Very similar to Java property files
*/
class FConfigurationProperties extends common_1.FConfigurationDictionary {
static async fromFile(propertiesConfigFile) {
const propertiesConfigFileURL = (0, url_1.pathToFileURL)(propertiesConfigFile);
const sourceURI = new URL(`configuration+file+properties://${propertiesConfigFileURL.pathname}`);
const fileContent = await readFileAsync(propertiesConfigFile);
return new FConfigurationProperties(sourceURI, fileContent.toString("utf-8"));
}
static factory(propertiesDocument) {
const encodedPropertiesDocument = encodeURIComponent(propertiesDocument);
const sourceURI = new URL(`configuration:properties?data=${encodedPropertiesDocument}`);
return new FConfigurationProperties(sourceURI, propertiesDocument);
}
constructor(sourceURI, propertiesDocument) {
const dict = {};
const lines = propertiesDocument.toString().split(/(?:\r\n|\r|\n)/g);
lines.forEach((line) => {
if (line.startsWith("#")) {
return;
}
const indexOfEq = line.indexOf("=");
if (indexOfEq >= 0) {
const name = line.substring(0, indexOfEq).trim();
const value = line.substring(indexOfEq + 1).trim();
dict[name] = value;
}
});
super(sourceURI, dict);
}
}
exports.FConfigurationProperties = FConfigurationProperties;
//# sourceMappingURL=FConfigurationProperties.js.map