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

fenextjs-hook

Package Overview
Dependencies
Maintainers
0
Versions
290
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fenextjs-hook - npm Package Compare versions

Comparing version

to
14.0.0

15

cjs/useUser/index.d.ts
import { UserProps } from "fenextjs-interface/cjs/User";
import { RequestResultTypeProps, RequestProps } from "fenextjs-interface/cjs/Request";
/**
* Properties to configure the useUser hook.
*/
export interface useUserProps<Q = UserProps, R = any, E = any, T = RequestResultTypeProps> {
export interface useUserProps<U = UserProps> {
/**
* Function to validate the user's token. By default, it will check that the user
* object has a "token" property and decode it using JSON web tokens.
* You can replace it with your own custom validation function.
*/
validateTokenUser?: RequestProps<Q, R, E, T>;
/**
* Name Var of save user in localStorage.
*/
varName?: string;
onValidateUser?: (user: Q | null | undefined) => boolean;
onValidateUser?: (user: U | null | undefined) => boolean;
urlRedirectInLogut?: string;

@@ -28,9 +21,9 @@ onLogOut?: () => void;

*/
export declare const useUser: <U = UserProps>({ validateTokenUser: validateTokenUserProps, varName, onValidateUser, urlRedirectInLogut, onLogOut: onLogOutProps, }: useUserProps<U>) => {
export declare const useUser: <U = UserProps>({ varName, onValidateUser, urlRedirectInLogut, onLogOut: onLogOutProps, }: useUserProps<U>) => {
load: boolean;
user: U | null | undefined;
setUser: (newValue: any) => void;
onLogin: (data: U) => Promise<unknown>;
onLogin: (data: U) => unknown;
onLogOut: () => void;
isValidUser: boolean;
};

@@ -5,5 +5,2 @@ "use strict";

const useLocalStorage_1 = require("../useLocalStorage");
const jwt_decode_1 = require("jwt-decode");
const Error_1 = require("fenextjs-interface/cjs/Error");
const Request_1 = require("fenextjs-interface/cjs/Request");
const react_1 = require("react");

@@ -17,45 +14,3 @@ /**

*/
const useUser = ({ validateTokenUser: validateTokenUserProps, varName = "fenextjs-user", onValidateUser, urlRedirectInLogut, onLogOut: onLogOutProps, }) => {
const validateTokenUserDefault = async (user) => {
const { token } = user;
if (!token) {
throw {
type: Request_1.RequestResultTypeProps.ERROR,
message: "User not Token",
error: {
code: Error_1.ErrorCode.USER_TOKEN_NOT_FOUND,
message: "User not Token",
},
};
}
try {
const user_token = (0, jwt_decode_1.jwtDecode)(token);
const { id } = user_token;
if (id) {
return {
type: Request_1.RequestResultTypeProps.OK,
message: "User Validate Ok",
};
}
throw {
type: Request_1.RequestResultTypeProps.ERROR,
message: "Token Invalid",
error: {
code: Error_1.ErrorCode.USER_TOKEN_INVALID,
message: "Token Invalid",
},
};
}
catch (error) {
throw {
type: Request_1.RequestResultTypeProps.ERROR,
message: "Token Invalid",
error: {
code: Error_1.ErrorCode.USER_TOKEN_INVALID,
message: "Token Invalid",
},
};
}
};
const validateTokenUser = (0, react_1.useCallback)(validateTokenUserProps ?? validateTokenUserDefault, [validateTokenUserProps, validateTokenUserDefault]);
const useUser = ({ varName = "fenextjs-user", onValidateUser, urlRedirectInLogut, onLogOut: onLogOutProps, }) => {
const { value: user, load, setLocalStorage: setUser, } = (0, useLocalStorage_1.useLocalStorage)({

@@ -83,9 +38,11 @@ name: varName,

*/
const onLogin = async (data) => {
const onLogin = (data) => {
try {
const result = await validateTokenUser(data);
if (result.type == Request_1.RequestResultTypeProps.OK) {
setUser(data);
if (onValidateUser) {
if (!onValidateUser(data)) {
throw new Error("Invalid User");
}
}
return result;
setUser(data);
return true;
}

@@ -92,0 +49,0 @@ catch (error) {

{
"name": "fenextjs-hook",
"version": "13.9.2",
"version": "14.0.0",
"description": "",

@@ -5,0 +5,0 @@ "main": "./cjs/index.js",

Sorry, the diff of this file is not supported yet