@modern-js/server-core
Version:
A Progressive React Framework for modern web development.
67 lines (66 loc) • 1.54 kB
JavaScript
function getHookRunners(context) {
const { hooks } = context;
return {
config: (params) => {
return hooks.modifyConfig.call(params);
},
prepare: () => {
return hooks.onPrepare.call();
},
reset: (params) => {
return hooks.onReset.call(params);
},
fallback: (input) => {
return hooks.fallback.call(input);
},
prepareWebServer: (input) => {
return hooks.prepareWebServer.call(input);
},
prepareApiServer: (input) => {
return hooks.prepareApiServer.call(input);
},
afterMatch: (ctx) => {
return hooks.afterMatch.call(ctx);
},
afterRender: (ctx) => {
return hooks.afterRender.call(ctx);
},
afterStreamingRender: (ctx) => {
return hooks.afterStreamingRender.call(ctx);
}
};
}
function transformHookRunner(hookRunnerName) {
switch (hookRunnerName) {
case "config":
return "modifyConfig";
case "prepare":
return "onPrepare";
case "reset":
return "onReset";
default:
return hookRunnerName;
}
}
function handleSetupResult(setupResult, api) {
if (!setupResult) {
return;
}
Object.keys(setupResult).forEach((key) => {
const fn = setupResult[key];
if (typeof fn === "function") {
const newAPI = transformHookRunner(key);
if (api[newAPI]) {
api[newAPI]((...params) => {
const res = fn(...params);
return res;
});
}
}
});
}
export {
getHookRunners,
handleSetupResult,
transformHookRunner
};