Skip to content

Instantly share code, notes, and snippets.

@behnamazimi
Last active June 6, 2020 17:56
Show Gist options
  • Save behnamazimi/945d6b7b98bfdd104760c00d74346b55 to your computer and use it in GitHub Desktop.
Save behnamazimi/945d6b7b98bfdd104760c00d74346b55 to your computer and use it in GitHub Desktop.
Full exmaple of js service wrapper
const {ServiceWrapper, ClientWrapper, HOOKS} = require("js-service-wrapper");
ServiceWrapper
.init({
client: axios,
queue: true,
queueLogs: true,
})
.setResolveValidation(res => res.status === 200)
.setHook(HOOKS.BEFORE_RESOLVE, res => res.data)
.setHook(HOOKS.AFTER_SUCCESS, res => {
// update auth token
})
.setHook(HOOKS.AFTER_FAIL, err => {
// handle status
if (err.response.status === 401) {
console.log('redirect to /401')
} else if (err.response.status === 404) {
console.log('redirect to /404')
} else if (err.response.status === 500) {
console.log('redirect to /500')
}
})
new ClientHandler({url: "https://reqres.in/api/users"})
.fire({parallel: false})
.then((res) => {
console.log("users fetched");
})
.catch(err => {
console.log(err);
})
new ClientHandler({url: "https://reqres.in/api/users/2"})
.fire({parallel: false})
.then(res => {
console.log("user 2 fetched");
})
.catch(err => {
console.log(err);
})
new ClientHandler("https://reqres.in/api/users/3")
.setClient(fetch.bind(window))
.setHook(HOOKS.BEFORE_RESOLVE, res => res.json()) // get result and return the data property
.fire({parallel: true})
.then(res => {
console.log("user 3 fetched ==> this service was parallel");
})
.catch(err => {
console.log(err);
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment