New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

aidbox-react

Package Overview
Dependencies
Maintainers
1
Versions
19
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aidbox-react - npm Package Compare versions

Comparing version

to
1.3.4

7

lib/hooks/service.d.ts
import { RemoteData, RemoteDataResult } from '../libs/remoteData';
export interface ServiceManager<S> {
reload: () => void;
export interface ServiceManager<S, F> {
reload: () => Promise<RemoteDataResult<S, F>>;
softReload: () => Promise<RemoteDataResult<S, F>>;
set: (dataOrFn: S | ((data: S) => S)) => void;
}
export declare function useService<S = any, F = any>(asyncFunction: () => Promise<RemoteDataResult<S, F>>, deps?: ReadonlyArray<any>): [RemoteData<S, F>, ServiceManager<S>];
export declare function useService<S = any, F = any>(asyncFunction: () => Promise<RemoteDataResult<S, F>>, deps?: ReadonlyArray<any>): [RemoteData<S, F>, ServiceManager<S, F>];

@@ -11,33 +11,65 @@ "use strict";

var _a = react_1.useState(remoteData_1.notAsked), remoteData = _a[0], setRemoteData = _a[1];
// Use another state variable to trigger effect on demand
var _b = react_1.useState(0), reloadsCount = _b[0], setReloadsCount = _b[1];
var load = react_1.useCallback(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var err_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
_a.trys.push([0, 2, , 3]);
return [4 /*yield*/, asyncFunction()];
case 1: return [2 /*return*/, _a.sent()];
case 2:
err_1 = _a.sent();
return [2 /*return*/, remoteData_1.failure(err_1.response ? err_1.response.data : err_1.message)];
case 3: return [2 /*return*/];
}
});
}); }, deps);
var softReload = react_1.useCallback(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var response;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, load()];
case 1:
response = _a.sent();
setRemoteData(response);
return [2 /*return*/, response];
}
});
}); }, tslib_1.__spreadArrays(deps, [load]));
var reload = react_1.useCallback(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var response;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
case 0:
setRemoteData(remoteData_1.loading);
return [4 /*yield*/, load()];
case 1:
response = _a.sent();
setRemoteData(response);
return [2 /*return*/, response];
}
});
}); }, tslib_1.__spreadArrays(deps, [load]));
react_1.useEffect(function () {
(function () { return tslib_1.__awaiter(_this, void 0, void 0, function () {
var response, err_1;
return tslib_1.__generator(this, function (_a) {
switch (_a.label) {
var _a;
return tslib_1.__generator(this, function (_b) {
switch (_b.label) {
case 0:
setRemoteData(remoteData_1.loading);
_a.label = 1;
_a = setRemoteData;
return [4 /*yield*/, load()];
case 1:
_a.trys.push([1, 3, , 4]);
return [4 /*yield*/, asyncFunction()];
case 2:
response = _a.sent();
setRemoteData(response);
return [3 /*break*/, 4];
case 3:
err_1 = _a.sent();
setRemoteData(remoteData_1.failure(err_1.response ? err_1.response.data : err_1.message));
return [3 /*break*/, 4];
case 4: return [2 /*return*/];
_a.apply(void 0, [_b.sent()]);
return [2 /*return*/];
}
});
}); })();
// eslint-disable-next-line
}, deps.concat(reloadsCount));
// eslint-disable-next-line react-hooks/exhaustive-deps
}, tslib_1.__spreadArrays(deps, [load]));
return [
remoteData,
{
reload: function () { return setReloadsCount(function (count) { return count + 1; }); },
reload: reload,
softReload: softReload,
set: function (dataOrFn) {

@@ -44,0 +76,0 @@ if (typeof dataOrFn === 'function') {

{
"name": "aidbox-react",
"version": "1.3.3",
"version": "1.3.4",
"scripts": {

@@ -12,3 +12,3 @@ "build": "tsc",

"dependencies": {
"axios": "^0.21.1",
"axios": "^0.21.2",
"moment": "^2.29.1"

@@ -15,0 +15,0 @@ },

@@ -1,7 +0,8 @@

import { useEffect, useState } from 'react';
import { useEffect, useState, useCallback } from 'react';
import { loading, notAsked, RemoteData, RemoteDataResult, success, failure, isSuccess } from '../libs/remoteData';
export interface ServiceManager<S> {
reload: () => void;
export interface ServiceManager<S, F> {
reload: () => Promise<RemoteDataResult<S, F>>;
softReload: () => Promise<RemoteDataResult<S, F>>;
set: (dataOrFn: S | ((data: S) => S)) => void;

@@ -13,20 +14,38 @@ }

deps: ReadonlyArray<any> = []
): [RemoteData<S, F>, ServiceManager<S>] {
): [RemoteData<S, F>, ServiceManager<S, F>] {
const [remoteData, setRemoteData] = useState<RemoteData<S, F>>(notAsked);
// Use another state variable to trigger effect on demand
const [reloadsCount, setReloadsCount] = useState(0);
const load = useCallback(async () => {
try {
return await asyncFunction();
} catch (err) {
return failure(err.response ? err.response.data : err.message);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, deps);
const softReload = useCallback(async () => {
const response = await load();
setRemoteData(response);
return response;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [...deps, load]);
const reload = useCallback(async () => {
setRemoteData(loading);
const response = await load();
setRemoteData(response);
return response;
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [...deps, load]);
useEffect(() => {
(async () => {
setRemoteData(loading);
try {
const response: RemoteDataResult<S, F> = await asyncFunction();
setRemoteData(response);
} catch (err: any) {
setRemoteData(failure(err.response ? err.response.data : err.message));
}
setRemoteData(await load());
})();
// eslint-disable-next-line
}, deps.concat(reloadsCount));
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [...deps, load]);

@@ -36,3 +55,4 @@ return [

{
reload: () => setReloadsCount((count) => count + 1),
reload,
softReload,
set: (dataOrFn: S | ((data: S) => S)) => {

@@ -39,0 +59,0 @@ if (typeof dataOrFn === 'function') {

Sorry, the diff of this file is not supported yet