Skip to content

Instantly share code, notes, and snippets.

@ilearnio
ilearnio / js.code-snippets
Created June 8, 2019 10:50
VSCode JS Snippets
{
// Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
// Placeholders with the same ids are connected.
// Example:
"console.log": {
"scope": "javascript,typescript",
@ilearnio
ilearnio / keybindings.json
Created June 8, 2019 11:05
VSCode keybindings
// Place your key bindings in this file to override the defaults
[
{
"key": "cmd+l",
"command": "console.log.wrap.down.prefix",
"when": "editorTextFocus"
},
{
"key": "ctrl+alt+w ctrl+alt+down",
"command": "-console.log.wrap.down.prefix",
@ilearnio
ilearnio / findKeyDeep.js
Last active March 23, 2021 16:21
Find keys of objects in a deeply nested object or array and return references of that objects
function findKeyDeep(obj, key) {
const foundKeysReferences = [];
if (Array.isArray(obj)) {
obj.forEach(entry =>
foundKeysReferences.push(...findKeyDeep(entry, key)));
} else if (typeof obj === 'object' && obj !== null) {
if (obj[key]) {
foundKeysReferences.push(obj);
}
Object.values(obj).forEach(value =>
@ilearnio
ilearnio / debounce.js
Last active September 17, 2021 04:19
Debounce JS function with leading / fire-first option
function debounce(fn, delay, leading) {
var timeout
var firedAt
return function() {
var args = arguments
function fire () {
firedAt = Date.now()
fn.apply(null, args)
}
if (timeout) clearTimeout(timeout)