UNPKG

@hadss/hmrouter-plugin

Version:

HMRouter Compiler Plugin

63 lines (62 loc) 2.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PluginExecutionController = void 0; const TaskManager_1 = require("./TaskManager"); const TaskStage_1 = require("./TaskStage"); const constants_1 = require("../constants"); const extension_1 = require("../extension"); class PluginExecutionController { constructor(node, moduleContext, moduleExtensions) { this.extensionContextCache = new Map(); this.node = node; this.moduleContext = moduleContext; this.baseContext = this.initializeContext(); this.taskManager = new TaskManager_1.TaskManager(this.baseContext, moduleExtensions); } start() { this.taskManager.executeStage(TaskStage_1.TaskStage.AFTER_INITIALIZE); this.registerHvigorTasks(); } complete() { this.taskManager.executeStage(TaskStage_1.TaskStage.AFTER_COMPLETION); } initializeContext() { const context = new extension_1.ExtensionContextImpl(this.node, this.moduleContext); context.scanFiles = []; return context; } registerHvigorTasks() { this.moduleContext.targets((target) => { const targetName = target.getTargetName(); this.node.registerTask({ name: targetName + constants_1.TaskConstants.PLUGIN_TASK, run: () => { this.taskManager.executeStage(TaskStage_1.TaskStage.AFTER_ANNOTATION_ANALYSIS); this.taskManager.executeStage(TaskStage_1.TaskStage.AFTER_CODE_GENERATION); this.taskManager.executeStage(TaskStage_1.TaskStage.AFTER_ROUTER_MAP_BUILDING); this.taskManager.executeStage(TaskStage_1.TaskStage.AFTER_CONFIG_UPDATE); }, dependencies: [], postDependencies: [targetName + constants_1.TaskConstants.PRE_BUILD], }); this.node.registerTask({ name: targetName + constants_1.TaskConstants.GENERATE_OBFUSCATION_TASK, run: () => { this.taskManager.executeStage(TaskStage_1.TaskStage.AFTER_OBFUSCATION_PROCESS); }, dependencies: [targetName + constants_1.TaskConstants.PLUGIN_TASK], postDependencies: [targetName + constants_1.TaskConstants.PRE_BUILD], }); this.node.registerTask({ name: targetName + constants_1.TaskConstants.COPY_ROUTER_MAP_TASK, run: () => { this.taskManager.context.currentTarget = target; this.taskManager.executeStage(TaskStage_1.TaskStage.AFTER_RESOURCE_PROCESS); }, dependencies: [targetName + constants_1.TaskConstants.PROCESS_ROUTER_MAP], postDependencies: [targetName + constants_1.TaskConstants.PROCESS_RESOURCE], }); }); } } exports.PluginExecutionController = PluginExecutionController;