hn-api-sdk
Version:
HackerNews API with TypeScript, generated by tsdk
46 lines (44 loc) • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.setHandler = setHandler;
exports.getHandler = getHandler;
exports.default = genAPICall;
var error_1 = require("./error");
var handler = function (apiConfig, requestData, requestConfig) {
return Promise.reject(new error_1.NoHandlerError("Call `setHandler` first"));
};
/**
* @example
* ```ts
* setAxiosInstance(axios.create())
setSocketIOInstance(io());
setHandler(axiosHandler);
setHandler(socketIOHandler);
* ```
* @param _handler
*/
function setHandler(_handler) {
handler = _handler;
}
function getHandler() {
return handler;
}
/**
* Generate API
*
* @param apiConfig - {@link APIConfig}
*
* @example
* ```ts
* const apiDemo = genApi<ApiDemoReqPayload, ApiDemoResData>(ApiDemoConfig);
* ```
*/
function genAPICall(apiConfig) {
function APICall(data, requestConfig, customHandler) {
return (customHandler ? customHandler : getHandler())(apiConfig, data, requestConfig);
}
// now you can access the config with api
// without another import
APICall.config = apiConfig;
return APICall;
}