UNPKG

@chec/react-commercejs-hooks

Version:

ReactJS hooks for using Commerce.js with React projects

33 lines (32 loc) 1.35 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var react_1 = require("react"); var get_1 = __importDefault(require("lodash/get")); var useCommerce_1 = __importDefault(require("./useCommerce")); function useCommerceSwrFetcher() { var commerce = useCommerce_1.default(); // [method, ...args]: [string, any[]] return react_1.useCallback(function (argument) { if (!commerce || Object.keys(commerce).length === 0) { return function () { }; } var method = argument; var args = []; if (Array.isArray(argument)) { method = argument[0], args = argument.slice(1); } var feature = method.substring(0, method.lastIndexOf('.')); if (!feature) { throw new Error("The given method (" + method + ") is not part of a feature available in Commerce.js"); } var func = get_1.default(commerce, method).bind(get_1.default(commerce, feature)); if (!func) { throw new Error("The given method (" + method + ") is not supported by Commerce.js"); } return func.apply(void 0, args); }, [commerce]); } exports.default = useCommerceSwrFetcher;