UNPKG

ui5plugin-parser

Version:
51 lines (50 loc) 2.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ResourceModelData = void 0; const properties_file_1 = require("properties-file"); const LineColumn = require("line-column"); class ResourceModelData { constructor(parser) { this.resourceModels = {}; this.parser = parser; } async readTexts() { const resourceModelFiles = this.parser.fileReader.getResourceModelFiles(); resourceModelFiles.forEach(resourceModelFile => { this._updateResourceModelData(resourceModelFile); }); } _updateResourceModelData(resourceModelFile) { this.resourceModels[resourceModelFile.componentName] = ResourceModelData.parseFile(resourceModelFile); } static parseFile(resourceModelFile) { const lineColumn = LineColumn(resourceModelFile.content); const propertyFile = new properties_file_1.Properties(resourceModelFile.content); const lines = propertyFile?.lines ?? []; return propertyFile.collection.map(translation => { return { text: `{i18n>${translation.key}}`, description: translation.value, id: translation.key, ui5ignored: ["#@ui5ignore", "# @ui5ignore"].includes(lines[translation.startingLineNumber - 2]), hasKeyCollisions: translation.hasKeyCollisions, positionBegin: lineColumn.toIndex(translation.startingLineNumber, 1), positionEnd: lineColumn.toIndex(translation.endingLineNumber, 1) + lines[translation.endingLineNumber - 1].length }; }); } updateCache(document) { const className = this.parser.fileReader.getClassNameFromPath(document.fileName); if (className) { const manifest = this.parser.fileReader.getManifestForClass(className); if (manifest) { this._updateResourceModelData({ componentName: manifest.componentName, content: document.getText() }); } } } } exports.ResourceModelData = ResourceModelData;