Skip to content

Instantly share code, notes, and snippets.

View simonplend's full-sized avatar

Simon Plenderleith simonplend

View GitHub Profile
@simonplend
simonplend / example-node-fetch-abortsignal.js
Last active September 2, 2021 08:30
Example of using AbortController and AbortSignal with node-fetch
import fetch from "node-fetch";
import { setTimeout } from "node:timers/promises";
const cancelTimeout = new AbortController();
const cancelRequest = new AbortController();
async function timeout(milliseconds) {
try {
await setTimeout(milliseconds, undefined, { signal: cancelTimeout.signal });
cancelRequest.abort();
@simonplend
simonplend / config.json
Last active February 9, 2022 23:16
Node.js v17.5.0 nightly build test - see instructions.sh
{
"url": "https://jsonplaceholder.typicode.com/todos/1"
}
@simonplend
simonplend / parseargs-example.mjs
Last active June 5, 2022 06:17
Example using new experimental Node.js parseArgs method (https://nodejs.org/api/util.html#utilparseargsconfig) - more new features covered at https://github.com/simonplend/whats-new-in-node-js-core
import { parseArgs } from "node:util";
const args = parseArgs({
options: {
name: {
type: "string",
},
verbose: {
type: "boolean",
short: "v",
@simonplend
simonplend / 01-run-script-example.sh
Created October 12, 2022 08:49
Examples for: Command-line argument parsing with Node.js core
node script.mjs --name "Budgie" --verbose
@simonplend
simonplend / console-dir-example.js
Created December 21, 2022 23:58
Example showing how to log a large, deep object with infinite depth in Node.js
/**
* This could be any object, perhaps the
* response from a request to an API.
*/
const deepObject = [
{imGoing:{deeperUnderground:{theresToo:{muchPanic:{inThis:{town:["I'm going deeper underground","There's too much panic in this town"]}}}}}},
{wellI:{gotToGo:{deeper:{gotToGo:{muchDeeper:true,theyGonna:{wreckItDown:true,theyGonna:["bring","it","down"]}}}}},rating:100}
];
// @see https://nodejs.org/api/console.html#consoledirobj-options