profile
viewpoint
Keith Cirkel keithamus London, England https://www.keithcirkel.co.uk Works on JavaScript at @github. Maintainer of @chaijs.

jashkenas/docco 3430

Literate Programming can be Quick and Dirty.

domenic/chai-as-promised 1372

Extends Chai with assertions about promises.

dgraham/delegated-events 948

A small, fast delegated event library for JavaScript.

darkguy2008/parallelshell 493

Run multiple shell commands in parallel

github/babel-preset-github 105

GitHub.com's Babel configuration

github/mini-throttle 58

A small JavaScript Throttle/Debounce implementation

github/eventlistener-polyfill 44

Polyfills EventListener behaviours from IE11 onward

conradz/npm-assets 17

Use static files from NPM packages

chaijs/chai-change 12

Assert that a change you expected to happen, happened, with this chai plugin

Apress/javascript-recipes 10

Source code for 'JavaScript Recipes' by Russ Ferguson and Keith Cirkel

push eventkeithamus/dotfiles

Keith Cirkel

commit sha 21803be12c60e07de977d010098c224fbe3b8df0

fix(alacritty): use cask for mac

view details

push time in a day

push eventkeithamus/dotfiles

Keith Cirkel

commit sha 17f62f9432ce4573283310888a239705864f8b2e

feat(alacritty): add pane zoom keybinding

view details

push time in a day

push eventkeithamus/dotfiles

Keith Cirkel

commit sha aa09ed397cff9a69a1132148d6a8ce946127a39e

fix(tmux): put status bar on the top

view details

Keith Cirkel

commit sha 6cbef07e89338d6859a626e3d983939e9d439f30

feat(alacritty): add alacritty!

view details

push time in a day

issue commenttc39/proposal-array-last

item() proposal does not substitute this proposal

I'm not sure assignment has a convincing enough use case to warrant being specced. See https://github.com/tc39/proposal-array-last/issues/16

drpicox

comment created time in 2 days

Pull request review commentgithub/mini-throttle

Make sure `currentTarget` is set on events

 export function throttle<T extends unknown[]>(   let cancelled = false   function fn(this: unknown, ...args: T) {     if (cancelled) return++    // Cache the `currentTarget` if we are throttling a event handler.+    if (args[0] instanceof Event) {

One way to handle this might be to have a synchronous throttling which does not use setTimeout but instead just checks time stamps and returns without calling until the last call time stamp expires.

koddsson

comment created time in 2 days

Pull request review commentgithub/mini-throttle

Add test to show that `currentTarget` is unset

 export function throttle<T extends unknown[]>(   let cancelled = false   function fn(this: unknown, ...args: T) {     if (cancelled) return++    // Cache the `currentTarget` if we are throttling a event handler.+    if (args[0] instanceof Event) {

Personally I'm very much not a fan of having code supporting edge-cases outside of this remit. Throttle isn't coupled to event code, but this certainly adds some intrinsic coupling.

It might be the slippery slope fallacy, but if we add this what is stopping us adding similar edge cases for ancillary side effects? We're turning something sync into async, there are plenty of caveats to be had with that behaviour, do we fix them all?

koddsson

comment created time in 2 days

delete branch github/user-select-contain-polyfill

delete branch : master

delete time in 3 days

create barnchgithub/user-select-contain-polyfill

branch : main

created branch time in 3 days

delete branch github/form-data-entries

delete branch : master

delete time in 3 days

create barnchgithub/form-data-entries

branch : main

created branch time in 3 days

delete branch github/eventlistener-polyfill

delete branch : master

delete time in 3 days

create barnchgithub/eventlistener-polyfill

branch : main

created branch time in 3 days

delete branch github/textarea-autosize

delete branch : master

delete time in 3 days

create barnchgithub/textarea-autosize

branch : main

created branch time in 3 days

delete branch github/session-resume

delete branch : master

delete time in 3 days

create barnchgithub/session-resume

branch : main

created branch time in 3 days

delete branch github/remote-form

delete branch : master

delete time in 3 days

create barnchgithub/remote-form

branch : main

created branch time in 3 days

delete branch github/quote-selection

delete branch : master

delete time in 3 days

create barnchgithub/quote-selection

branch : main

created branch time in 3 days

delete branch github/paste-markdown

delete branch : test

delete time in 3 days

delete branch github/paste-markdown

delete branch : master

delete time in 3 days

create barnchgithub/paste-markdown

branch : main

created branch time in 3 days

delete branch github/mini-throttle

delete branch : master

delete time in 3 days

create barnchgithub/mini-throttle

branch : main

created branch time in 3 days

create barnchgithub/google-analytics

branch : main

created branch time in 3 days

delete branch github/combobox-nav

delete branch : master

delete time in 3 days

delete branch github/combobox-nav

delete branch : add-typescript-definition-file

delete time in 3 days

create barnchgithub/combobox-nav

branch : main

created branch time in 3 days

delete branch github/check-all

delete branch : master

delete time in 3 days

create barnchgithub/check-all

branch : main

created branch time in 3 days

delete branch github/accessibilityjs

delete branch : master

delete time in 3 days

create barnchgithub/accessibilityjs

branch : main

created branch time in 3 days

delete branch github/codemirror-contrib

delete branch : master

delete time in 3 days

create barnchgithub/codemirror-contrib

branch : main

created branch time in 3 days

delete branch github/webpack-config-github

delete branch : master

delete time in 3 days

delete branch github/webpack-config-github

delete branch : argh

delete time in 3 days

delete branch github/webpack-config-github

delete branch : update-relay-compiler

delete time in 3 days

create barnchgithub/webpack-config-github

branch : main

created branch time in 3 days

delete branch github/babel-plugin-transform-invariant-location

delete branch : master

delete time in 3 days

create barnchgithub/babel-plugin-transform-invariant-location

branch : main

created branch time in 3 days

delete branch github/eslint-plugin-github

delete branch : find-unused-modules

delete time in 3 days

delete branch github/eslint-plugin-github

delete branch : master

delete time in 3 days

create barnchgithub/eslint-plugin-github

branch : main

created branch time in 3 days

delete branch github/time-elements

delete branch : master

delete time in 3 days

create barnchgithub/time-elements

branch : main

created branch time in 3 days

delete branch github/filter-input-element

delete branch : master

delete time in 3 days

create barnchgithub/filter-input-element

branch : main

created branch time in 3 days

delete branch github/file-attachment-element

delete branch : master

delete time in 3 days

create barnchgithub/file-attachment-element

branch : main

created branch time in 3 days

delete branch github/query-selector

delete branch : master

delete time in 3 days

create barnchgithub/query-selector

branch : main

created branch time in 3 days

delete branch github/text-expander-element

delete branch : master

delete time in 3 days

create barnchgithub/text-expander-element

branch : main

created branch time in 3 days

delete branch github/github-elements

delete branch : master

delete time in 3 days

create barnchgithub/github-elements

branch : main

created branch time in 3 days

delete branch github/babel-plugin-transform-custom-element-classes

delete branch : master

delete time in 3 days

create barnchgithub/babel-plugin-transform-custom-element-classes

branch : main

created branch time in 3 days

delete branch github/remote-input-element

delete branch : master

delete time in 3 days

create barnchgithub/remote-input-element

branch : main

created branch time in 3 days

delete branch github/g-emoji-element

delete branch : master

delete time in 3 days

create barnchgithub/g-emoji-element

branch : main

created branch time in 3 days

delete branch github/task-lists-element

delete branch : master

delete time in 3 days

create barnchgithub/task-lists-element

branch : main

created branch time in 3 days

delete branch github/custom-element-boilerplate

delete branch : master

delete time in 3 days

create barnchgithub/custom-element-boilerplate

branch : main

created branch time in 3 days

delete branch github/image-crop-element

delete branch : master

delete time in 3 days

delete branch github/image-crop-element

delete branch : keyboard-support

delete time in 3 days

delete branch github/image-crop-element

delete branch : add-flow-declaration-file

delete time in 3 days

delete branch github/image-crop-element

delete branch : form-with-kb

delete time in 3 days

delete branch github/image-crop-element

delete branch : formdata

delete time in 3 days

create barnchgithub/image-crop-element

branch : main

created branch time in 3 days

delete branch github/tab-container-element

delete branch : typescript

delete time in 3 days

delete branch github/tab-container-element

delete branch : master

delete time in 3 days

create barnchgithub/tab-container-element

branch : main

created branch time in 3 days

delete branch github/auto-check-element

delete branch : auto-check-send-cancellable

delete time in 3 days

delete branch github/auto-check-element

delete branch : fixdemo

delete time in 3 days

delete branch github/auto-check-element

delete branch : master

delete time in 3 days

delete branch github/auto-check-element

delete branch : sliding-promise-fetch

delete time in 3 days

create barnchgithub/auto-check-element

branch : main

created branch time in 3 days

delete branch github/markdown-toolbar-element

delete branch : feat-add-focus-management-for-toolbar

delete time in 3 days

delete branch github/markdown-toolbar-element

delete branch : root

delete time in 3 days

delete branch github/markdown-toolbar-element

delete branch : master

delete time in 3 days

create barnchgithub/markdown-toolbar-element

branch : main

created branch time in 3 days

delete branch github/clipboard-copy-element

delete branch : master

delete time in 3 days

create barnchgithub/clipboard-copy-element

branch : main

created branch time in 3 days

delete branch github/hotkey

delete branch : master

delete time in 3 days

create barnchgithub/hotkey

branch : main

created branch time in 3 days

delete branch github/auto-complete-element

delete branch : master

delete time in 3 days

delete branch github/include-fragment-element

delete branch : use-custom-elements-babel-transform

delete time in 3 days

delete branch github/include-fragment-element

delete branch : master

delete time in 3 days

create barnchgithub/auto-complete-element

branch : main

created branch time in 3 days

delete branch github/details-menu-element

delete branch : master

delete time in 3 days

create barnchgithub/include-fragment-element

branch : main

created branch time in 3 days

create barnchgithub/details-menu-element

branch : main

created branch time in 3 days

create barnchgithub/details-dialog-element

branch : main

created branch time in 3 days

issue commenttc39/proposal-pattern-matching

Enable Github pages

https://github.blog/changelog/2020-07-31-build-and-deploy-github-pages-from-any-branch-beta/

Jack-Works

comment created time in 3 days

issue closedgithub/file-attachment-element

GitHub

closed time in 3 days

j157

issue commentdenoland/deno

Support access token authorisation for remote files

As most providers use the Authorization header, one option is to simply provide the raw header value as an environment variable i.e. the env var would include the Bearer or Basic portion of the string.

kitsonk

comment created time in 7 days

more