Skip to content

Instantly share code, notes, and snippets.

View Offirmo's full-sized avatar
⚔️
Coding a RPG… (as a hobby)

Offirmo Offirmo

⚔️
Coding a RPG… (as a hobby)
View GitHub Profile
@Offirmo
Offirmo / dom.js
Last active May 21, 2024 06:54
[DOM manipulation: READING] #JavaScript #dom #browser #frontend
// +++ https://blog.garstasio.com/you-dont-need-jquery/selectors/
// http://youmightnotneedjquery.com/
/// various access
self // https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope
self.origin
self.isSecureContext
window
window.document
@Offirmo
Offirmo / fetch.js
Last active May 2, 2019 11:54
[fetch usage] #JavaScript #browser
/////// GET
fetch('/user/search?activeFilter=pending&max-results=11')
.then(response => {
const {ok, status} = response;
if (!ok || status !== 200)
throw new Error();
return response.json();
})
.catch((e => {
console.log('parsing failed or whatever', e)
@Offirmo
Offirmo / snow.js
Created July 27, 2017 05:43
[Snow] #JavaScript
// https://github.com/Offirmo/blog/blob/gh-pages/tosort/javascript-daily/mod-floating.md
const floating = require('floating.js)
floating({
content: '<span style="color: snow">❄</span>',
number: 25,
direction: 'reverse',
size: [0.5, 2.5],
})
@Offirmo
Offirmo / dom_active.js
Last active May 9, 2024 06:49
[DOM manipulation: WRITING] #JavaScript #dom #browser #frontend
// http://youmightnotneedjquery.com/
// navigating
// This works in all browsers:
location.assign('...')
location.href = '...'
location = '...'
location.reload()
// If you wanted to change the page without it reflecting in the browser back history, you can do
location.replace('...')
@Offirmo
Offirmo / intercept.js
Last active June 21, 2018 00:23
[Function call interception (wrapping)] #JavaScript #growth
// new
return (...args) => {
try {
return handler.call(this, ...args);
} catch(e) {
return this.onError(e);
}
};
// old school
@Offirmo
Offirmo / intercept.js
Last active May 13, 2024 20:53
[Intercepting fetch and/or XHR in JavaScript] #JavaScript #browser #growth
/////// fetch ///////
const originalFetch = window.fetch;
window.fetch = async (...args) => {
const fetchee = await originalFetch(...args);
return new Proxy(fetchee, {});
};
new Proxy(target, {
@Offirmo
Offirmo / read_cookie.js
Last active December 2, 2018 07:53
[read cookie in JS] #JavaScript #browser #growth #frontend
@Offirmo
Offirmo / es6.js
Last active March 28, 2018 14:12
[rare ES6 stuff I forget all the time] #JavaScript
// imports
import { Random, Engine } from '@offirmo/random'
import {
State as MetaState,
factory as meta_state_factory,
} from '@oh-my-rpg/state-meta'
// http://www.benmvp.com/learning-es6-enhanced-object-literals/
return {
@Offirmo
Offirmo / singleton.js
Last active December 2, 2018 07:54
[global browser singleton] #JavaScript #browser #growth #frontend
var global_module_instance;
Object.defineProperty(window, 'global_ng_module', {
enumerable: true, // why not ?
set: function() {
throw new Error('You can’t assign window.global_module !');
},
get: function() {
if(global_module_instance) return global_module_instance; // already OK
global_module_instance = angular.module('global_ng_module', [
'ui.bootstrap'
@Offirmo
Offirmo / lib.js
Last active July 7, 2020 03:34
[useful browser snippets] #JavaScript #browser #growth #frontend
// debg
let DEBUG = false
try { // defensive!
DEBUG = DEBUG || !!window.localStorage.getItem(`${APP}.debug`)
} catch (e) { /* swallow */ }
if (DEBUG) console.info(`Hello from ${APP}`)
// prepare an url
// https://devdocs.io/javascript/global_objects/encodeuri