Skip to content

Instantly share code, notes, and snippets.

View lydell's full-sized avatar

Simon Lydell lydell

View GitHub Profile
@lydell
lydell / zip.bash
Created March 18, 2022 21:52
GitHub source zipball reproduction attempt
#!/usr/bin/env bash
# Example:
#
# 1. git clone git@github.com:elm/core.git
# 2. cd core
# 3. ./zip.bash 1.0.5 out.zip elm/core
# 4. Compare outputs of:
# - `unzip -l out.zip` and `unzip -l github-zipball.zip`
# - `wc -c out.zip` and `wc -c github-zipball.zip`
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"module": "CommonJS",
"moduleResolution": "node",
"noEmit": true,
"noFallthroughCasesInSwitch": true,
import * as Decode from "tiny-decoders";
import { ErrorTemplate, fancyError } from "./Errors";
import { join, RESET_COLOR } from "./Helpers";
import { NonEmptyArray } from "./NonEmptyArray";
import { AbsolutePath, ElmJsonPath, OutputPath } from "./Types";
// https://github.com/elm/compiler/blob/94715a520f499591ac6901c8c822bc87cd1af24f/compiler/src/Reporting/Doc.hs#L412-L431
// Lowercase means “dull” and uppercase means “vivid”:
// https://github.com/elm/compiler/blob/94715a520f499591ac6901c8c822bc87cd1af24f/compiler/src/Reporting/Doc.hs#L369-L391
@lydell
lydell / pnr_check_digit.js
Created September 17, 2021 19:00
Calculate the last digit of a Swedish personnummer – Note: don’t include `19` or `20` at the start!
check = s => { let v = s.split("").map((c, i) => { let d = Number(c); let m = i % 2 === 0 ? d * 2 : d; return m > 9 ? m - 9 : m }).reduce((a, b) => a + b, 0); return (10 - (v % 10)) % 10}
@lydell
lydell / .gitignore
Last active August 18, 2022 13:39
Trying to use ESLint’s RuleTester with Jest
node_modules
@lydell
lydell / .gitignore
Last active December 28, 2022 04:33
Minify Elm code
node_modules
@lydell
lydell / stable-sort.js
Last active April 25, 2020 09:18
A stableSort function that uses plain .sort if stable
// 11 and 513 come from here: https://mathiasbynens.be/demo/sort-stability
function checkStable(length) {
return Array.apply(null, { length: length })
.map(function (_, i) {
return i;
})
.sort(function () {
return 0;
})
@lydell
lydell / .gitignore
Last active May 19, 2019 13:23
Experiments with import/export, React and Rollup
bundle.js
node_modules
@lydell
lydell / draw-rect.js
Last active October 8, 2020 17:38
Visualize .getBoundingClientRect()
function draw(rect) {
const div = document.createElement("div");
// Might be needed on crazy pages, but makes the console output for the div crazy large.
// div.style.all = "unset";
div.style.position = "absolute";
div.style.zIndex = "2147483647";
// At least _try_ to scroll along. Won’t work for inner scroll.
div.style.left = `${window.scrollX + rect.left}px`;
div.style.top = `${window.scrollY + rect.top}px`;
div.style.width = `${rect.width}px`;

Keybase proof

I hereby claim:

  • I am lydell on github.
  • I am lydell (https://keybase.io/lydell) on keybase.
  • I have a public key whose fingerprint is C9F5 C6D9 0520 8814 3C8F 19AD DDEF 57C7 3914 C7EF

To claim this, I am signing this object: