Skip to content

Instantly share code, notes, and snippets.

View Godofbrowser's full-sized avatar
🔥
Setting browsers on fire!!!

Emeke Ajeh Godofbrowser

🔥
Setting browsers on fire!!!
View GitHub Profile
@Godofbrowser
Godofbrowser / axios.refresh_token.1.js
Last active March 14, 2024 10:06 — forked from culttm/axios.refresh_token.js
Axios interceptor for refresh token when you have multiple parallel requests. Demo implementation: https://github.com/Godofbrowser/axios-refresh-multiple-request
// for multiple requests
let isRefreshing = false;
let failedQueue = [];
const processQueue = (error, token = null) => {
failedQueue.forEach(prom => {
if (error) {
prom.reject(error);
} else {
prom.resolve(token);
@Godofbrowser
Godofbrowser / heroku-auto-set-env.md
Last active September 20, 2023 10:46
Heroku auto set env (for laravel and apps using .env files)

$ cd <application name>

Where is the dir where you have the .env file.

heroku config:set $(cat .env | sed '/^$/d; /#[[:print:]]*$/d')

@Godofbrowser
Godofbrowser / Google cloud storage credentials for Now.sh
Created June 29, 2019 22:42
This gist shows how to use the env var GCLOUD_CREDENTIALS provided by now.sh after google cloud storage integration
const {Storage} = require('@google-cloud/storage');
const fromB64 = (string) => Buffer.from(string, 'base64').toString();
const credentials = JSON.parse(fromB64(process.env.GCLOUD_CREDENTIALS))
const storage = new Storage(credentials ? {credentials} : undefined)
@Godofbrowser
Godofbrowser / cgpa.html
Created July 7, 2016 11:20
Javascript cgpa calculator
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo CGPA calculator</title>
<meta name="generator" content="Bluefish 2.2.7" >
<meta name="author " content="Ajeh Emeke" >
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8">
@Godofbrowser
Godofbrowser / command.md
Last active December 7, 2020 09:16
Launch android emulator from terminal without opening android studio (useful for developments with react native, ionic native, etc)

Change dir to sdk tools bin cd %ANDROID_SDK_ROOT%/tools

List and get device name

emulator -list-avds

Now you have list of available avds, copy one of the avd name and do next step

Launch the emulator

@Godofbrowser
Godofbrowser / cgpa.html
Created July 7, 2016 11:20
Javascript cgpa calculator
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Demo CGPA calculator</title>
<meta name="generator" content="Bluefish 2.2.7" >
<meta name="author " content="Ajeh Emeke" >
<meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8">
@Godofbrowser
Godofbrowser / a-short-ajax-error-story-4-of-4.ts
Last active November 11, 2019 22:04
This gist is part of an article and may not covey the actual message on it's own. Link to article: https://medium.com/@ejjay/a-short-ajax-story-on-error-handlers-8baeeccbc062
import axios, {AxiosError} from 'axios';
import {notifier} from './util';
interface ComposedError {
readonly message: string;
readonly error: AxiosError;
handleGlobally(): void;
getError(): AxiosError;
}
@Godofbrowser
Godofbrowser / a-short-ajax-error-story-3-of-4.js
Last active November 11, 2019 22:04
This gist is part of an article and may not covey the actual message on it's own. Link to article: https://medium.com/@ejjay/a-short-ajax-story-on-error-handlers-8baeeccbc062
import axios from 'axios';
import {notifier} from './util';
// errorComposer will compose a handleGlobally function
const errorComposer = (error) => {
return () => {
const statusCode = error.response ? error.response.status : null;
if (statusCode === 404) {
notifier.error('The requested resource does not exist or has been deleted')
}
@Godofbrowser
Godofbrowser / a-short-ajax-error-story-2-of-4.js
Last active November 11, 2019 22:04
This gist is part of an article and may not covey the actual message on it's own. Link to article: https://medium.com/@ejjay/a-short-ajax-story-on-error-handlers-8baeeccbc062
import axios from 'axios';
import {notifier} from './util';
axios.interceptors.response.use(undefined, function (error) {
const statusCode = error.response ? error.response.status : null;
if (statusCode === 404) {
notifier.error('The requested resource does not exist or has been deleted')
}
@Godofbrowser
Godofbrowser / a-short-ajax-error-story-1-of-4.js
Last active November 11, 2019 22:04
This gist is part of an article and may not covey the actual message on it's own. Link to article: https://medium.com/@ejjay/a-short-ajax-story-on-error-handlers-8baeeccbc062
import axios from 'axios';
import {notifier} from './util';
// Fetch some missing information
axios.get('/api/articles/not-found').then(resp => {
// So something with article information
}).catch(error => {
const statusCode = error.response ? error.response.status : null;