UNPKG

@hadss/hmrouter-plugin

Version:

HMRouter Compiler Plugin

65 lines (64 loc) 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ExtensionContextImpl = void 0; const TemplateMetadataImpl_1 = require("./TemplateMetadataImpl"); const utils_1 = require("../../utils"); class ExtensionContextImpl { constructor(node, moduleContext) { this.scanFiles = []; this.analyzeResults = new Set(); this._currentView = []; this.node = node; this.moduleContext = moduleContext; this.templateMetadata = new TemplateMetadataImpl_1.TemplateMetadataImpl(); } get currentView() { return this._currentView; } addAnalyzeResults(results) { if (Array.isArray(results)) { results.forEach((result) => { if (!this.validateAnalyzeResult(result)) { utils_1.Logger.warn(this.node.getNodeName(), `Invalid analyze result: ${JSON.stringify(result)}`); return; } this.analyzeResults.add(result); }); } else { if (!this.validateAnalyzeResult(results)) { utils_1.Logger.warn(this.node.getNodeName(), `Invalid analyze result: ${JSON.stringify(results)}`); return; } this.analyzeResults.add(results); } this.syncToCurrentView(results); } getAnalyzeResults() { return this.analyzeResults; } getTemplateData(componentName) { return this.templateMetadata.getTemplateData(componentName); } getTemplateDataMap() { return this.templateMetadata.templateDataMap; } addTemplateData(componentName, data) { this.templateMetadata.addTemplateData(componentName, data); } validateAnalyzeResult(result) { return result.name !== undefined && result.sourceFilePath !== undefined && result.annotation !== undefined; } syncToCurrentView(results) { if (!this._currentFilePath) return; const resultsArray = Array.isArray(results) ? results : [results]; const currentFileResults = resultsArray.filter(result => result.sourceFilePath === this._currentFilePath); this._currentView.push(...currentFileResults); } setCurrentFilePath(filePath) { this._currentFilePath = filePath; this._currentView = []; } } exports.ExtensionContextImpl = ExtensionContextImpl;