diff --git a/dist/index.js b/dist/index.js index a781d89..a530720 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1,14 +1,30 @@ "use strict"; -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __exportStar = (this && this.__exportStar) || function(m, exports) { - for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); -}; +var __createBinding = + (this && this.__createBinding) || + (Object.create + ? function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { + enumerable: true, + get: function () { + return m[k]; + }, + }; + } + Object.defineProperty(o, k2, desc); + } + : function (o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; + }); +var __exportStar = + (this && this.__exportStar) || + function (m, exports) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); + }; Object.defineProperty(exports, "__esModule", { value: true }); __exportStar(require("./nui-events/hooks/useNuiEvent"), exports); __exportStar(require("./nui-events/hooks/useNuiCallback"), exports); diff --git a/dist/nui-events/context/NuiContext.js b/dist/nui-events/context/NuiContext.js index 477906b..ecddfc0 100644 --- a/dist/nui-events/context/NuiContext.js +++ b/dist/nui-events/context/NuiContext.js @@ -2,4 +2,4 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.NuiContext = void 0; var react_1 = require("react"); -exports.NuiContext = react_1.createContext(null); +exports.NuiContext = (0, react_1.createContext)(null); diff --git a/dist/nui-events/hooks/useNuiCallback.d.ts b/dist/nui-events/hooks/useNuiCallback.d.ts index 1cd1b1d..452cbf2 100644 --- a/dist/nui-events/hooks/useNuiCallback.d.ts +++ b/dist/nui-events/hooks/useNuiCallback.d.ts @@ -1,12 +1,15 @@ -declare type UseNuiCallbackFetchOptions = { - timeout: number | false; +type UseNuiCallbackFetchOptions = { + timeout: number | false; }; -declare type UseNuiCallbackFetch = (input?: I, options?: UseNuiCallbackFetchOptions) => void; -declare type UseNuiCallbackResponse = [UseNuiCallbackFetch, { +type UseNuiCallbackFetch = (input?: I, options?: UseNuiCallbackFetchOptions) => void; +type UseNuiCallbackResponse = [ + UseNuiCallbackFetch, + { loading: boolean; error: unknown; response: R; -}]; + }, +]; /** * @callback nuiEventHandler * @param {any} responseData @@ -33,5 +36,10 @@ declare type UseNuiCallbackResponse = [UseNuiCallbackFetch, { * fetchUser(11); * }, [fetchUser]); */ -export declare const useNuiCallback: (app: string, method: string, handler?: (res: R) => void, errHandler?: (err: unknown) => void) => UseNuiCallbackResponse; +export declare const useNuiCallback: ( + app: string, + method: string, + handler?: (res: R) => void, + errHandler?: (err: unknown) => void, +) => UseNuiCallbackResponse; export {}; diff --git a/dist/nui-events/hooks/useNuiCallback.js b/dist/nui-events/hooks/useNuiCallback.js index e286f51..67fbe87 100644 --- a/dist/nui-events/hooks/useNuiCallback.js +++ b/dist/nui-events/hooks/useNuiCallback.js @@ -32,88 +32,114 @@ var useNuiEvent_1 = require("./useNuiEvent"); * }, [fetchUser]); */ var useNuiCallback = function (app, method, handler, errHandler) { - var _a = react_1.useContext(NuiContext_1.NuiContext), sendAbortable = _a.sendAbortable, callbackTimeout = _a.callbackTimeout; - var fetchRef = react_1.useRef(); - var timeoutRef = react_1.useRef(); - // These are Refs to avoid re renders. - // We dont care if "app" and "method" arguments change. - var eventNameRef = react_1.useRef(eventNameFactory_1.eventNameFactory(app, method)); - var methodNameRef = react_1.useRef(method); - var appNameRef = react_1.useRef(app); - // has timed out - var _b = react_1.useState(false), timedOut = _b[0], setTimedOut = _b[1]; - // has failed at network or browser level - var _c = react_1.useState(false), failed = _c[0], setFailed = _c[1]; - // is waiting for server callback response event - var _d = react_1.useState(false), loading = _d[0], setLoading = _d[1]; - // returned error from server callback event or network failure - var _e = react_1.useState(null), error = _e[0], setError = _e[1]; - // response from server callback event - var _f = react_1.useState(null), response = _f[0], setResponse = _f[1]; - var onSuccess = react_1.useCallback(function (data) { - if (!loading) { - return; - } - // If we receive success event, clear timeout - timeoutRef.current && clearTimeout(timeoutRef.current); - // If already timed out, don't do shit :) - if (timedOut) { - return; - } - // Set new state after success event received - setResponse(data); - setError(null); - setLoading(false); - handler === null || handler === void 0 ? void 0 : handler(data); - }, [handler, timedOut, loading]); - var onError = react_1.useCallback(function (err) { - // If we receive error event, clear timeout - timeoutRef.current && clearTimeout(timeoutRef.current); - // Set new state after error event received - setError(err); - setResponse(null); - setLoading(false); - errHandler === null || errHandler === void 0 ? void 0 : errHandler(err); - }, [errHandler]); - // Handle the success and error events for this method - useNuiEvent_1.useNuiEvent(appNameRef.current, methodNameRef.current + "Success", onSuccess); - useNuiEvent_1.useNuiEvent(appNameRef.current, methodNameRef.current + "Error", onError); - // Only fetch if we are not loading/waiting the events. - var fetch = react_1.useCallback(function (data, options) { - setLoading(function (curr) { - if (!curr) { - setTimedOut(false); - setFailed(false); - setError(null); - setResponse(null); - fetchRef.current = sendAbortable(methodNameRef.current, data); - fetchRef.current.promise.catch(function (e) { - if (!timedOut) { - onError(e); - setFailed(true); - timeoutRef.current = undefined; - fetchRef.current = undefined; - } - }); - var _options = options || { timeout: callbackTimeout }; - var timeoutTime_1 = _options.timeout === false ? false : _options.timeout || callbackTimeout; - if (timeoutTime_1 && !failed) { - clearTimeout(timeoutRef.current); - timeoutRef.current = setTimeout(function () { - setTimedOut(true); - onError(new Error("fivem-nui-react-lib: \"" + eventNameRef.current + "\" event callback timed out after " + timeoutTime_1 + " milliseconds")); - fetchRef.current && fetchRef.current.abort(); - timeoutRef.current = undefined; - fetchRef.current = undefined; - }, timeoutTime_1); - } - return true; + var _a = (0, react_1.useContext)(NuiContext_1.NuiContext), + sendAbortable = _a.sendAbortable, + callbackTimeout = _a.callbackTimeout; + var fetchRef = (0, react_1.useRef)(); + var timeoutRef = (0, react_1.useRef)(); + // These are Refs to avoid re renders. + // We dont care if "app" and "method" arguments change. + var eventNameRef = (0, react_1.useRef)((0, eventNameFactory_1.eventNameFactory)(app, method)); + var methodNameRef = (0, react_1.useRef)(method); + var appNameRef = (0, react_1.useRef)(app); + // has timed out + var _b = (0, react_1.useState)(false), + timedOut = _b[0], + setTimedOut = _b[1]; + // has failed at network or browser level + var _c = (0, react_1.useState)(false), + failed = _c[0], + setFailed = _c[1]; + // is waiting for server callback response event + var _d = (0, react_1.useState)(false), + loading = _d[0], + setLoading = _d[1]; + // returned error from server callback event or network failure + var _e = (0, react_1.useState)(null), + error = _e[0], + setError = _e[1]; + // response from server callback event + var _f = (0, react_1.useState)(null), + response = _f[0], + setResponse = _f[1]; + var onSuccess = (0, react_1.useCallback)( + function (data) { + if (!loading) { + return; + } + // If we receive success event, clear timeout + timeoutRef.current && clearTimeout(timeoutRef.current); + // If already timed out, don't do shit :) + if (timedOut) { + return; + } + // Set new state after success event received + setResponse(data); + setError(null); + setLoading(false); + handler === null || handler === void 0 ? void 0 : handler(data); + }, + [handler, timedOut, loading], + ); + var onError = (0, react_1.useCallback)( + function (err) { + // If we receive error event, clear timeout + timeoutRef.current && clearTimeout(timeoutRef.current); + // Set new state after error event received + setError(err); + setResponse(null); + setLoading(false); + errHandler === null || errHandler === void 0 ? void 0 : errHandler(err); + }, + [errHandler], + ); + // Handle the success and error events for this method + (0, useNuiEvent_1.useNuiEvent)(appNameRef.current, "".concat(methodNameRef.current, "Success"), onSuccess); + (0, useNuiEvent_1.useNuiEvent)(appNameRef.current, "".concat(methodNameRef.current, "Error"), onError); + // Only fetch if we are not loading/waiting the events. + var fetch = (0, react_1.useCallback)( + function (data, options) { + setLoading(function (curr) { + if (!curr) { + setTimedOut(false); + setFailed(false); + setError(null); + setResponse(null); + fetchRef.current = sendAbortable(methodNameRef.current, data); + fetchRef.current.promise.catch(function (e) { + if (!timedOut) { + onError(e); + setFailed(true); + timeoutRef.current = undefined; + fetchRef.current = undefined; } - return curr; - }); - }, + }); + var _options = options || { timeout: callbackTimeout }; + var timeoutTime_1 = _options.timeout === false ? false : _options.timeout || callbackTimeout; + if (timeoutTime_1 && !failed) { + clearTimeout(timeoutRef.current); + timeoutRef.current = setTimeout(function () { + setTimedOut(true); + onError( + new Error( + 'fivem-nui-react-lib: "' + .concat(eventNameRef.current, '" event callback timed out after ') + .concat(timeoutTime_1, " milliseconds"), + ), + ); + fetchRef.current && fetchRef.current.abort(); + timeoutRef.current = undefined; + fetchRef.current = undefined; + }, timeoutTime_1); + } + return true; + } + return curr; + }); + }, // eslint-disable-next-line react-hooks/exhaustive-deps - []); - return [fetch, { loading: loading, response: response, error: error }]; + [], + ); + return [fetch, { loading: loading, response: response, error: error }]; }; exports.useNuiCallback = useNuiCallback; diff --git a/dist/nui-events/hooks/useNuiEvent.js b/dist/nui-events/hooks/useNuiEvent.js index 224079a..71451c4 100644 --- a/dist/nui-events/hooks/useNuiEvent.js +++ b/dist/nui-events/hooks/useNuiEvent.js @@ -4,7 +4,7 @@ exports.useNuiEvent = void 0; var react_1 = require("react"); var eventNameFactory_1 = require("../utils/eventNameFactory"); function addEventListener(element, type, handler) { - element.addEventListener(type, handler); + element.addEventListener(type, handler); } /** * @callback nuiEventHandler @@ -28,23 +28,31 @@ function addEventListener(element, type, handler) { * useNuiEvent("appname", "methodname", setDataState); **/ var useNuiEvent = function (app, method, handler) { - var savedHandler = react_1.useRef(); - // When handler value changes set mutable ref to handler val - react_1.useEffect(function () { - savedHandler.current = handler; - }, [handler]); - react_1.useEffect(function () { - var eventName = eventNameFactory_1.eventNameFactory(app, method); - var eventListener = function (event) { - if (savedHandler.current && savedHandler.current.call) { - var data = event.data; - var newData = data; - savedHandler.current(newData); - } - }; - addEventListener(window, eventName, eventListener); - // Remove Event Listener on component cleanup - return function () { return window.removeEventListener(eventName, eventListener); }; - }, [app, method]); + var savedHandler = (0, react_1.useRef)(); + // When handler value changes set mutable ref to handler val + (0, react_1.useEffect)( + function () { + savedHandler.current = handler; + }, + [handler], + ); + (0, react_1.useEffect)( + function () { + var eventName = (0, eventNameFactory_1.eventNameFactory)(app, method); + var eventListener = function (event) { + if (savedHandler.current && savedHandler.current.call) { + var data = event.data; + var newData = data; + savedHandler.current(newData); + } + }; + addEventListener(window, eventName, eventListener); + // Remove Event Listener on component cleanup + return function () { + return window.removeEventListener(eventName, eventListener); + }; + }, + [app, method], + ); }; exports.useNuiEvent = useNuiEvent; diff --git a/dist/nui-events/hooks/useNuiRequest.d.ts b/dist/nui-events/hooks/useNuiRequest.d.ts index 9e3a530..c0ed985 100644 --- a/dist/nui-events/hooks/useNuiRequest.d.ts +++ b/dist/nui-events/hooks/useNuiRequest.d.ts @@ -1,6 +1,6 @@ import { NuiContext } from "../context/NuiContext"; -declare type UseNuiRequestOptions = { - resource?: string; +type UseNuiRequestOptions = { + resource?: string; }; /** * @typedef {Object} useNuiRequestResponse diff --git a/dist/nui-events/hooks/useNuiRequest.js b/dist/nui-events/hooks/useNuiRequest.js index f5b0d99..d94dd0f 100644 --- a/dist/nui-events/hooks/useNuiRequest.js +++ b/dist/nui-events/hooks/useNuiRequest.js @@ -32,21 +32,32 @@ var NuiContext_1 = require("../context/NuiContext"); * */ var useNuiRequest = function (_a) { - var _b = _a === void 0 ? {} : _a, resource = _b.resource; - var context = react_1.useContext(NuiContext_1.NuiContext); - if (!context) { - throw new Error("fivem-nui-react-lib: useNuiRequest must be used inside NuiProvider passing the `resource` prop"); - } - var send = context.send, sendAbortable = context.sendAbortable; - return react_1.useMemo(function () { return ({ + var _b = _a === void 0 ? {} : _a, + resource = _b.resource; + var context = (0, react_1.useContext)(NuiContext_1.NuiContext); + if (!context) { + throw new Error("fivem-nui-react-lib: useNuiRequest must be used inside NuiProvider passing the `resource` prop"); + } + var send = context.send, + sendAbortable = context.sendAbortable; + return (0, react_1.useMemo)( + function () { + return { send: function (event, data) { - if (data === void 0) { data = {}; } - return send(event, data, resource); + if (data === void 0) { + data = {}; + } + return send(event, data, resource); }, sendAbortable: function (event, data) { - if (data === void 0) { data = {}; } - return sendAbortable(event, data, resource); + if (data === void 0) { + data = {}; + } + return sendAbortable(event, data, resource); }, - }); }, [send, sendAbortable, resource]); + }; + }, + [send, sendAbortable, resource], + ); }; exports.useNuiRequest = useNuiRequest; diff --git a/dist/nui-events/providers/NuiProvider.js b/dist/nui-events/providers/NuiProvider.js index 27700bd..d8cd78e 100644 --- a/dist/nui-events/providers/NuiProvider.js +++ b/dist/nui-events/providers/NuiProvider.js @@ -1,51 +1,141 @@ "use strict"; -var __assign = (this && this.__assign) || function () { - __assign = Object.assign || function(t) { +var __assign = + (this && this.__assign) || + function () { + __assign = + Object.assign || + function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { - s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) - t[p] = s[p]; + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; - }; + }; return __assign.apply(this, arguments); -}; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + }; +var __awaiter = + (this && this.__awaiter) || + function (thisArg, _arguments, P, generator) { + function adopt(value) { + return value instanceof P + ? value + : new P(function (resolve) { + resolve(value); + }); + } return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); + function fulfilled(value) { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + } + function rejected(value) { + try { + step(generator["throw"](value)); + } catch (e) { + reject(e); + } + } + function step(result) { + result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); + } + step((generator = generator.apply(thisArg, _arguments || [])).next()); }); -}; -var __generator = (this && this.__generator) || function (thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } + }; +var __generator = + (this && this.__generator) || + function (thisArg, body) { + var _ = { + label: 0, + sent: function () { + if (t[0] & 1) throw t[1]; + return t[1]; + }, + trys: [], + ops: [], + }, + f, + y, + t, + g; + return ( + (g = { next: verb(0), throw: verb(1), return: verb(2) }), + typeof Symbol === "function" && + (g[Symbol.iterator] = function () { + return this; + }), + g + ); + function verb(n) { + return function (v) { + return step([n, v]); + }; + } function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + if (f) throw new TypeError("Generator is already executing."); + while ((g && ((g = 0), op[0] && (_ = 0)), _)) + try { + if ( + ((f = 1), + y && + (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && + !(t = t.call(y, op[1])).done) + ) + return t; + if (((y = 0), t)) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!((t = _.trys), (t = t.length > 0 && t[t.length - 1])) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } catch (e) { + op = [6, e]; + y = 0; + } finally { + f = t = 0; + } + if (op[0] & 5) throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; } -}; + }; Object.defineProperty(exports, "__esModule", { value: true }); exports.NuiProvider = void 0; var jsx_runtime_1 = require("react/jsx-runtime"); @@ -53,59 +143,77 @@ var react_1 = require("react"); var NuiContext_1 = require("../context/NuiContext"); var eventNameFactory_1 = require("../utils/eventNameFactory"); function abortableFetch(request, opts) { - var controller = new AbortController(); - var signal = controller.signal; - return { - abort: function () { return controller.abort(); }, - promise: fetch(request, __assign(__assign({}, opts), { signal: signal })), - }; + var controller = new AbortController(); + var signal = controller.signal; + return { + abort: function () { + return controller.abort(); + }, + promise: fetch(request, __assign(__assign({}, opts), { signal: signal })), + }; } function getParams(resource, event, data) { - return [ - "https://" + resource + "/" + event, - { - method: "post", - headers: { - "Content-Type": "application/json; charset=UTF-8", - }, - body: JSON.stringify(data), - }, - ]; + return [ + "https://".concat(resource, "/").concat(event), + { + method: "post", + headers: { + "Content-Type": "application/json; charset=UTF-8", + }, + body: JSON.stringify(data), + }, + ]; } var DEFAULT_TIMEOUT = 10000; var NuiProvider = function (_a) { - var resource = _a.resource, children = _a.children, timeout = _a.timeout; - var resourceRef = react_1.useRef(resource || ""); - var timeoutRef = react_1.useRef(timeout || DEFAULT_TIMEOUT); - var eventListener = function (event) { - var _a = event.data, app = _a.app, method = _a.method, data = _a.data; - if (app && method) { - window.dispatchEvent(new MessageEvent(eventNameFactory_1.eventNameFactory(app, method), { - data: data, - })); - } + var resource = _a.resource, + children = _a.children, + timeout = _a.timeout; + var resourceRef = (0, react_1.useRef)(resource || ""); + var timeoutRef = (0, react_1.useRef)(timeout || DEFAULT_TIMEOUT); + var eventListener = function (event) { + var _a = event.data, + app = _a.app, + method = _a.method, + data = _a.data; + if (app && method) { + window.dispatchEvent( + new MessageEvent((0, eventNameFactory_1.eventNameFactory)(app, method), { + data: data, + }), + ); + } + }; + (0, react_1.useEffect)(function () { + window.addEventListener("message", eventListener); + return function () { + return window.removeEventListener("message", eventListener); }; - react_1.useEffect(function () { - window.addEventListener("message", eventListener); - return function () { return window.removeEventListener("message", eventListener); }; - }, []); - var send = react_1.useCallback(function (event, data, res) { - if (data === void 0) { data = {}; } - return __awaiter(void 0, void 0, void 0, function () { - return __generator(this, function (_a) { - return [2 /*return*/, fetch.apply(void 0, getParams(res || resourceRef.current, event, data))]; - }); - }); - }, []); - var sendAbortable = react_1.useCallback(function (event, data, res) { - if (data === void 0) { data = {}; } - return abortableFetch.apply(void 0, getParams(res || resourceRef.current, event, data)); - }, []); - return (jsx_runtime_1.jsx(NuiContext_1.NuiContext.Provider, __assign({ value: { - send: send, - sendAbortable: sendAbortable, - resource: resourceRef.current, - callbackTimeout: timeoutRef.current, - } }, { children: children }), void 0)); + }, []); + var send = (0, react_1.useCallback)(function (event, data, res) { + if (data === void 0) { + data = {}; + } + return __awaiter(void 0, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, fetch.apply(void 0, getParams(res || resourceRef.current, event, data))]; + }); + }); + }, []); + var sendAbortable = (0, react_1.useCallback)(function (event, data, res) { + if (data === void 0) { + data = {}; + } + return abortableFetch.apply(void 0, getParams(res || resourceRef.current, event, data)); + }, []); + return (0, jsx_runtime_1.jsx)(NuiContext_1.NuiContext.Provider, { + value: { + send: send, + sendAbortable: sendAbortable, + resource: resourceRef.current, + callbackTimeout: timeoutRef.current, + }, + children: children, + }); }; exports.NuiProvider = NuiProvider; diff --git a/dist/nui-events/utils/eventNameFactory.js b/dist/nui-events/utils/eventNameFactory.js index 5ba8d9e..b14916d 100644 --- a/dist/nui-events/utils/eventNameFactory.js +++ b/dist/nui-events/utils/eventNameFactory.js @@ -1,5 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.eventNameFactory = void 0; -var eventNameFactory = function (app, method) { return app + ":" + method; }; +var eventNameFactory = function (app, method) { + return "".concat(app, ":").concat(method); +}; exports.eventNameFactory = eventNameFactory; diff --git a/package.json b/package.json index 5bc94d5..64dc44f 100644 --- a/package.json +++ b/package.json @@ -19,26 +19,26 @@ "dist" ], "peerDependencies": { - "react": "^17.0.2", - "react-dom": "^17.0.2" + "react": "^18.2.0", + "react-dom": "^18.2.0" }, "devDependencies": { - "@types/node": "^12.0.0", - "@types/react": "^17.0.3", - "@typescript-eslint/eslint-plugin": "^5.49.0", - "@typescript-eslint/parser": "^5.49.0", - "eslint": "^8.40.0", - "eslint-config-prettier": "^8.6.0", - "eslint-plugin-prettier": "^4.2.1", - "eslint-plugin-react": "^7.32.1", + "@types/node": "^20.5.7", + "@types/react": "^18.2.21", + "@typescript-eslint/eslint-plugin": "^6.5.0", + "@typescript-eslint/parser": "^6.5.0", + "eslint": "^8.48.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.0", + "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", - "husky": "^6.0.0", - "lint-staged": "^10.5.4", - "prettier": "^2.2.1", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "rimraf": "^3.0.2", - "typescript": "^4.1.2" + "husky": "^8.0.3", + "lint-staged": "^14.0.1", + "prettier": "^3.0.3", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "rimraf": "^5.0.1", + "typescript": "^5.2.2" }, "lint-staged": { "*.js,*.ts": "yarn lint",