@hadss/hmrouter-plugin
Version:
HMRouter Compiler Plugin
65 lines (64 loc) • 2.41 kB
JavaScript
"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;