Skip to content

Instantly share code, notes, and snippets.

View boneskull's full-sized avatar
💀

Christopher Hiller boneskull

💀
View GitHub Profile
@boneskull
boneskull / README.md
Created June 3, 2025 22:40
oh-my-zsh: open manpages in Dash.app (macOS Sequoia)

This is a snippet for zsh you can add to a .zshrc to automatically open manpages in Dash if and only if the "Manpages" DocSet is installed. It's been tested with macOS Sequoia (v15.5).

It uses the omz_urlencode function provided by oh-my-zsh.

If you don't have oh-my-zsh installed, you can paste this into your .zshrc as a reasonable substitution:

omz_urlencode() {
  local string="${@}"
 local strlen=${#string}
@boneskull
boneskull / uninstall-foreign-fonts.sh
Created May 7, 2025 19:22 — forked from jm3/uninstall-foreign-fonts.sh
uninstall the 162 non-English fonts that Apple installs that clog up Photoshop's font menu.
#!/bin/sh
# jm3.net
# uninstall the 162 non-English fonts that Apple installs that clog up Photoshop's font menu.
# ========================
## RUN AT YOUR OWN RISK ##
# ========================
# if this formats your hard drive or deletes your fonts or changes the sex
# of your dog, I'm super sorry, but there's nothing I can do.
@boneskull
boneskull / lodash.template+4.5.0.patch
Created November 19, 2024 21:45
patch for CVE-2021-23337 against [email protected]
diff --git a/node_modules/lodash.template/index.js b/node_modules/lodash.template/index.js
index f051141..c4cb7e1 100644
--- a/node_modules/lodash.template/index.js
+++ b/node_modules/lodash.template/index.js
@@ -1519,9 +1519,29 @@ function template(string, options, guard) {
// Like with sourceURL, we take care to not check the option's prototype,
// as this configuration is a code injection vector.
var variable = hasOwnProperty.call(options, 'variable') && options.variable;
+
+ var INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
diff --git a/node_modules/lodash.template/index.js b/node_modules/lodash.template/index.js
index f051141..c4cb7e1 100644
--- a/node_modules/lodash.template/index.js
+++ b/node_modules/lodash.template/index.js
@@ -1519,9 +1519,29 @@ function template(string, options, guard) {
// Like with sourceURL, we take care to not check the option's prototype,
// as this configuration is a code injection vector.
var variable = hasOwnProperty.call(options, 'variable') && options.variable;
+
+ var INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
diff --git a/node_modules/lodash.template/index.js b/node_modules/lodash.template/index.js
index f051141..c4cb7e1 100644
--- a/node_modules/lodash.template/index.js
+++ b/node_modules/lodash.template/index.js
@@ -1519,9 +1519,29 @@ function template(string, options, guard) {
// Like with sourceURL, we take care to not check the option's prototype,
// as this configuration is a code injection vector.
var variable = hasOwnProperty.call(options, 'variable') && options.variable;
+
+ var INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';
@boneskull
boneskull / README.md
Last active August 28, 2024 21:25
Test helpers for xstate & Node.js

This code contains some helper functions for testing xstate v5+ Actor and Machine behavior using Promises and "traditional" assertions (vs state-machine-based testing).

Maybe I'll put some examples here.


Update Aug 28 2024

Instead of this, see xstate-audition which I built upon this idea (with less OOP).

// @ts-check
'use strict';
/**
* @returns {import('wallabyjs').IWallabyConfig}
*/
module.exports = (wallaby) => {
return {
env: {
@boneskull
boneskull / index.ts
Created April 9, 2024 04:20
xstate type bug
import { ActorRef, ActorRefFrom, assign, setup } from 'xstate';
type EmittedEvents = {type: 'BAR'};
const machineB = setup({
types: {
input: {} as {
a: ActorRef<any, any, EmittedEvents>
},
},
@boneskull
boneskull / fs-to-volume.mjs
Created March 1, 2024 20:50
create memfs volume from filesystem
#!/usr/bin/env node
/* eslint-disable n/shebang */
// @ts-check
/**
* Prints a `memfs` volume JSON from the filesystem given glob patterns and/or
* directories
*
* Directories are handled recursively
*
@boneskull
boneskull / JS_OVERLOAD.md
Last active October 23, 2023 22:28
TypeScript Function Overloads in PURE JAVASCRIPT!!!!

UPDATE

As of TS v5.0.0, you can use @overload in JSDoc which means this document is obsolete.

How to Overload Functions using TypeScript Types in JavaScript

Summary

Yes, you can. No, it's not pretty.

The Situation