@xpresser/params-loader
Version:
Xpresser's url params to state Loader.
48 lines (47 loc) • 1.41 kB
JavaScript
;
const xpresser_1 = require("xpresser");
// Import Xpresser
const $ = (0, xpresser_1.getInstance)();
// Your Custom Request Engine
class CustomRequestEngine extends $.extendedRequestEngine() {
/**
* Check if param has been loaded.
* @param param - Param to check
*/
hasLoadedParam(param) {
return this.loadedParams().hasOwnProperty(param);
}
/**
* Add loaded param to state
* @param param - Param to add
* @param value - Value of param
* @protected
*/
addLoadedParam(param, value) {
// Add loaded params to the request
this.state.path("loadedParams", {}).set(param, value);
return this;
}
/**
* Get all or pick loaded params from state.
* @param pick - Optional list of params to pick
*/
loadedParams(pick) {
// if no pick, return all loaded params
if (!pick)
return (this.state.data["loadedParams"] || {});
// if pick is string convert to array
if (typeof pick === "string")
pick = [pick];
// return picked params
return this.state.path("loadedParams", {}).pick(pick);
}
/**
* Get single loaded param from state.
* @param param - Param to get
*/
loadedParam(param) {
return this.state.path("loadedParams", {}).get(param);
}
}
module.exports = CustomRequestEngine;