(async () => {
await new Promise(resolve => setTimeout(resolve, 500));
...
})();
Found on SO.
<アンダブロッブ />
(async () => {
await new Promise(resolve => setTimeout(resolve, 500));
...
})();
Found on SO.
There must be a reason this is a bad idea or it would be included in the API, right? 😅
URLSearchParams.prototype.toObject = function() {
return […this.keys()]
.reduce((o,k) => ({ …o, [k]: this.get(k) }), {});
}
Related to the Alias for Git sanity post from a few years back, recently added another to ~/.gitconfig
[alias]
revert-merge = !git revert -m 1 $1
rollback-merge = revert-merge
Where $1
is the commit hash. This only works for rollback of a merge commit on the main branch.
Found myself in a situation where I wanted to execute a process and then check back on it later to be sure it had completed.
class MyClass {
constructor() {
this.readyPromise = new Promise(
resolve => (this.readyResolve = resolve)
);
}
async executeProcesses() {
await // ...executing processes...
this.readyResolve();
}
ready() { return this.readyPromise }
}
To write a Chrome extension that allows ES6 imports
, imitate <script type="module">
with a dynamic import:
Chrome extensions exist in an “isolated world” to prevent global var collisions between the website and the extension that runs on a given website. This mostly applies to content_scripts
in an extension.
E.g. window.foo
: my extension declares foo
in the global scope and the website the extension runs on also declares foo
in the global scope. With “isolated world” scoping for the extension, this is not a worry since it doesn’t share scope with the web page it runs on.
Collecting performance metrics, I needed a way to compare optimization before/after numbers into some meaningful value that would impress the brass.
Continue reading “Comparison Formulae”Having some trouble with this operation, found that you can use string replacement syntax to also split a string to array:
NPM_VER=$(npm -v) # 6.12.1
NPM_VER=(${NPM_VER//./ }) # Split on '.' as delimiter
echo "${NPM_VER[0]}" # 6
echo "${NPM_VER[1]}" # 12
echo "${NPM_VER[2]}" # 1
TL;DR: Make flexible and consistent folder-based modular templates to harden your project’s pattern with Maki Module :)
In programming there is boilerplate:
sections of code that have to be included in many places with little or no alteration.
Wikipedia
Since most things being made follow a pattern of things made before them, boilerplate gives a project consistency and sets the expectations of what you may find in other files, functions, classes, etc.
Continue reading “Boilerplate with Maki Module”Running CLI Node scripts, capture the return value of a shell command:
const execSync = require('child_process').execSync;
const nodeVer = execSync('node -v', { encoding: 'utf8' });
Shell command reports in the CLI:
const execSync = require('child_process').execSync;
execSync('npm -g ls', { stdio: 'inherit' });