UNPKG

@freemework/hosting

Version:

Hosting library of the Freemework Project.

42 lines 1.85 kB
"use strict"; 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