The simple package for authorization with token and data cache
npm i larapi
you can create instance or use static methods for first configuration and for further use
const api = new API({
host: 'https://my-host'
});
...
API.setHost('https://my-host');
To use typing - use new instanse
The first argument of the class takes the type of requests, and the second the type of the user
type TTodo = {
id: number;
userId: number;
title: string;
completed: boolean;
};
type TApiTodos = {
success: {
'todos': () => TTodo[],
[path: `todos/${number}`]: (request: Omit<TTodo, 'id'>) => TTodo;
},
error: {
message: string;
}
};
const api = new API<TApiTodos>({
host: 'https://jsonplaceholder.typicode.com/',
});
...
api.get({
path: 'todos/1',
success: (e) => {
console.log(e.id);
},
error: (e) => {
console.log(e);
}
});
token useds in the header Authorization: Bearer
api.setToken('token');
api.setUser({...object-user});
you can use method getUser or property user for get user object
api.getUser();
...
api.user;
api.get({
path: '/test',
success: (e) => {
console.log(e)
}
});
api.post({
path: '/test',
data: {
message: 'hello world'
}
success: (e) => {
console.log(e)
}
});
for create simple cache use boolean true in the "cache" property
const request = api.get({
path: '/test',
cache: true,
...
});
if you need clear current cache - use method "clearCache"
or you can use method "updateCache" for update current cache data in the current request
first argument in the method is object updated data, and last argument is key field for search in the current cache, if you need update all data use null
request.updateCache({
message: 'update this string'
}, null);