-
feat: A new feature
-
fix: A bug fix
-
BREAKING CHANGE: A breaking change
-
docs: Documentation only changes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const cp = require('child_process') | |
/** | |
* A function that spawns a new process using the given command, logging the stdout and stderr. | |
* | |
* @param {String} command | |
* @param {Array} args | |
* @return {Promise} | |
* @example | |
* |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class AbortError extends Error { | |
name = "AbortError"; | |
message = "Aborted"; | |
} | |
class AbortSignal extends EventTarget { | |
aborted = false; | |
} | |
class AbortController { |
(I'm enjoying doing these raw, barely edited writeups; I hope they're useful to you too)
This is my own writeup on feature flags; for a deep dive I'd recommend something like Martin Fowler's article (https://martinfowler.com/articles/feature-toggles.html).
So. Feature flags. The basic idea that you'll store configuration/values on a database/service somewhere, and by changing those values, you can change the user experience/features for a user on the fly.
Let's say that you're building a new feature, called 'new-button' which changes the color of buttons, which is currently red, to blue. Then you'd change code that looks like this -