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