profile
viewpoint
Jordan Harband ljharb Hillsborough, CA software engineer/nerd/teacher/will try anything once; surgeon with git rebase. @tc39, ex @airbnb @twitter @MobBase @tripit. Fav punctuation ⸮, scent petrichor

airbnb/javascript 116882

JavaScript Style Guide

airbnb/lottie-android 32128

Render After Effects animations natively on Android and iOS, Web, and React Native

airbnb/lottie-web 25841

Render After Effects animations natively on Web, Android and iOS, and React Native. http://airbnb.io/lottie/

airbnb/lottie-ios 22230

An iOS library to natively render After Effects vector animations

airbnb/css 6083

A mostly reasonable approach to CSS and Sass.

airbnb/hypernova 5763

A service for server-side rendering your JavaScript views

airbnb/polyglot.js 3481

Give your JavaScript the ability to speak many languages.

airbnb/prop-types 668

Custom React PropType validators that we use at Airbnb.

airbnb/babel-plugin-dynamic-import-node 546

Babel plugin to transpile import() to a deferred require(), for node

airbnb/babel-plugin-dynamic-import-webpack 495

Babel plugin to transpile import() to require.ensure, for Webpack

issue commenttc39/proposal-intl-enumeration

Ensure data returned from Intl Enumeration is consistent with data supported by Intl objects

A normative note that says so, like https://tc39.es/ecma262/#sec-hostimportmoduledynamically has ("it must always do so for subsequent calls.").

sffc

comment created time in 4 hours

pull request commentbrowserify/commonjs-assert

Implement `assert.match()` and `assert.doesNotMatch()`

@RaisinTen pinging them multiple times is just annoying, it's not going to make anything happen faster. They'll get to it when they have time, and not before.

RaisinTen

comment created time in 4 hours

pull request commenttarruda/has

Drop `function-bind` dependency with saving safety

bytes aren't harm.

zloirock

comment created time in 5 hours

PR closed nvm-sh/nvm

pull
+69 -0

2 comments

3 changed files

Stagie

pr closed time in 5 hours

pull request commentnvm-sh/nvm

pull

@Stagie this seems like a mistake.

Stagie

comment created time in 5 hours

issue commentljharb/require-allow-edits

Please check info about this GitHub Action

Those seem right to me.

I'm not sure the rebase action needs "write", unless that's because git itself writes files during a rebase?

varunsh-coder

comment created time in 5 hours

Pull request review commenttc39/proposal-decorators

Remove field initializers

 The context object also varies depending on the value being decorated. Breaking - `access`: An object containing methods to access the value. This is only available for _private_ class elements, since public class elements can be accessed externally by knowing the name of the element. These methods also get the _final_ value of the private element on the instance, not the current value passed to the decorator. This is important for most use cases involving access, such as type validators or serializers. See the section on Access below for more details. - `isStatic`: Whether or not the value is a `static` class element. Only applies to class elements. - `isPrivate`: Whether or not the value is a private class element. Only applies to class elements.-- `addInitializer`: Allows the user to add additional initialization logic. This is available for all decorators.+- `addInitializer`: Allows the user to add additional initialization logic. This is available for all decorators which do not have kind `"field"` (discussed in more detail below).
- `addInitializer`: Allows the user to add additional initialization logic. This is available for all decorators which operate per-class, as opposed to per-instance (in other words, decorators which do not have kind `"field"` - discussed in more detail below).

this way the mental model is up front and clear?

pzuraq

comment created time in 5 hours

PullRequestReviewEvent

pull request commenttc39/ecma262

Normative: Add RegExp `v` flag with set notation and properties of strings

(Generally those things are fine in the proposal, but don't go in the spec PR)

mathiasbynens

comment created time in 5 hours

issue commentnvm-sh/nvm

NVM Use Default does not persist - macos with zsh

If you run nvm_find_nvmrc, is anything printed out?

If you run nvm use system && nvm_auto && nvm current what is printed out?

JoshuaVSherman

comment created time in 5 hours

PullRequestReviewEvent

issue commenttc39/proposal-array-grouping

groupByMap naming

I do understand how it works. I'm saying that someone unfamiliar with the spec who is familiar with .map, .flat, and .flatMap and sees the name might be confused about what .groupByMap does, especially since .groupBy exists along with .map.

ljharb

comment created time in 5 hours

issue openedtc39/proposal-array-grouping

groupByMap naming

flatMap means ".flat after .map". It kind of seems like groupByMap should mean ".groupBy after .map", by that precedent.

I'm not sure I have a better naming suggestion, but perhaps it's worth bikeshedding?

created time in 6 hours

issue commentnodejs/node

assert.match should return match result

I agree that it's not of much value, and I agree that "assertions throw or else don't return anything" is the pretty universal expectation, and it's best not to violate that.

I'm not sure why you can't do assert.match(haystack, needle); const m = haystack.match(needle) if you need both - it's a test, why does avoiding the extra match matter?

awwright

comment created time in 14 hours

pull request commentactions/runner

Support node.js 16 and bump node.js 12 version.

Oh I didn't mean to suggest that the consumer had to bring a node - altho that seems useful too - but more that maybe the action itself could use its own node via setup-node, so that this action doesn't require any changes in the future to install any arbitrary node version.

TingluoHuang

comment created time in 14 hours

pull request commenttc39/ecma262

Normative: Add RegExp `v` flag with set notation and properties of strings

@FrankYFTang we don't use separated html files; can you inline the table?

mathiasbynens

comment created time in 14 hours

Pull request review commentnpm/arborist

feat: implement overrides

 class Edge {     return this[_name]   } +  get rawSpec () {+    return this[_spec]+  }+   get spec () {+    if (this.overrides && this.overrides.value && this.overrides.name === this.name) {+      if (this.overrides.value.startsWith('$')) {

nope! just thinking about possibilities.

Will every prior version of npa throw on it?

It's a fine assumption, I'm just not sure why a stringly typed interface is the ideal choice.

nlf

comment created time in 14 hours

PullRequestReviewEvent

issue commentnodejs/corepack

Prepare the "Last" version?

There is no node release line that still ships node 7; they all ship either node 6 or node 8.

hyrious

comment created time in 14 hours

issue closedopenjs-foundation/standards

OpenJS Foundation Standards Working Group Meeting 2021-11-30

Time

UTC Tue 30-Nov-2021 18:00 (06:00 PM):

Timezone Date/Time
US / Pacific Tue 30-Nov-2021 10:00 (10:00 AM)
US / Mountain Tue 30-Nov-2021 11:00 (11:00 AM)
US / Central Tue 30-Nov-2021 12:00 (12:00 PM)
US / Eastern Tue 30-Nov-2021 13:00 (01:00 PM)
EU / Western Tue 30-Nov-2021 18:00 (06:00 PM)
EU / Central Tue 30-Nov-2021 19:00 (07:00 PM)
EU / Eastern Tue 30-Nov-2021 20:00 (08:00 PM)
Moscow Tue 30-Nov-2021 21:00 (09:00 PM)
Chennai Tue 30-Nov-2021 23:30 (11:30 PM)
Hangzhou Wed 01-Dec-2021 02:00 (02:00 AM)
Tokyo Wed 01-Dec-2021 03:00 (03:00 AM)
Sydney Wed 01-Dec-2021 05:00 (05:00 AM)

Or in your local time:

  • https://www.timeanddate.com/worldclock/fixedtime.html?msg=Node.js+Foundation+Standards%20Working%20Group+Meeting+2021-11-30&iso=20211130T1800
  • or https://www.wolframalpha.com/input/?i=06PM+UTC%2C+Nov+30%2C+2021+in+local+time

Links

Agenda

Extracted from standards-agenda labelled issues and pull requests from the openjs-foundation org prior to the meeting.

Invited

  • OpenJS Foundation Cross Project Council
  • OpenJS Foundation Project Maintainers
  • OpenJS Foundation Board of Directors

Observers/Guests

Notes

The agenda comes from issues labelled with standards-agenda across all of the repositories in the openjs-foundation org. Please label any additional issues that should be on the agenda before the meeting starts.

Joining the meeting

link for participants: Zoom link: https://zoom.us/j/599005386


Invitees

Please use the following emoji reactions in this post to indicate your availability.

  • :+1: - Attending
  • :-1: - Not attending
  • :confused: - Not sure yet

closed time in 14 hours

mhdawson

issue commentopenjs-foundation/standards

OpenJS Foundation Standards Working Group Meeting 2021-11-30

This meeting was cancelled due to no agenda.

mhdawson

comment created time in 14 hours

issue commentnodejs/corepack

Prepare the "Last" version?

Given that npm 7 is EOL, and npm 8 is entirely "known good" versions, it seems like perhaps that should be the default.

hyrious

comment created time in 14 hours

issue commentairbnb/rheostat

PropType warnings for not required props

cc @noratarano @lencioni; v4.2.0 of react-with-styles caused breaking changes in react-dates, and appears to be doing the same here. can someone look into that?

daryaskopyuk

comment created time in 14 hours

Pull request review commentnpm/arborist

feat: implement overrides

 class Edge {     return this[_name]   } +  get rawSpec () {+    return this[_spec]+  }+   get spec () {+    if (this.overrides && this.overrides.value && this.overrides.name === this.name) {+      if (this.overrides.value.startsWith('$')) {

this seems like a strange sentinel/prefix approach. are you envisioning that an override can't ever start with $, even tho that might be a legitimate bundledDep folder name inside node_modules?

nlf

comment created time in 14 hours

PullRequestReviewEvent

Pull request review commentnpm/arborist

feat: implement overrides

 class Node {     // because this.package is read when adding to inventory     this[_package] = pkg && typeof pkg === 'object' ? pkg : {} +    if (overrides) {+      this.overrides = overrides+    } else if (loadOverrides) {+      const overrides = this[_package].overrides || {}+      if (Object.keys(overrides).length > 0) {+        this.overrides = new OverrideSet({+          overrides: this[_package].overrides,+        })+      }

does this mean that overrides will not always be present? it seems easier to deal with if it's always an OverrideSet, just sometimes empty.

nlf

comment created time in 14 hours

Pull request review commentnpm/arborist

feat: implement overrides

 const printableEdge = (edge) => {     ...(edgeTo ? { to: edgeTo } : {}),     ...(edge.error ? { error: edge.error } : {}),     ...(edge.peerConflicted ? { peerConflicted: true } : {}),+    ...(override ? { overridden: override } : {}),

fwiw, this would be ever so slightly more performant:

    ...(edgeTo && { to: edgeTo }),
    ...(edge.error && { error: edge.error }),
    ...(edge.peerConflicted && { peerConflicted: true }),
    ...(override && { overridden: override }),

but obv is a bit unrelated to this PR.

nlf

comment created time in 15 hours

Pull request review commentnpm/arborist

feat: implement overrides

 class Edge {       type: this.type,       name: this.name,       spec: this.spec,+      ...(this.rawSpec !== this.spec ? {+        rawSpec: this.rawSpec,+        overridden: true,+      } : {}),
      ...(this.rawSpec !== this.spec && {
        rawSpec: this.rawSpec,
        overridden: true,
      }),
nlf

comment created time in 14 hours

PullRequestReviewEvent

pull request commentactions/runner

Support node.js 16 and bump node.js 12 version.

I don't have a concrete scenario at the moment, because I can't try upgrading my actions to node 16 until https://github.com/actions/runner/pull/1439#issuecomment-984000829 :-)

However, I could easily see a scenario where I'm using a compiled dependency - like node-sass (a problem i'm running into right now with storybook on react-dates, which only installs on node <= 14) - that only works on node 14, and thus I'd be screwed with the current scenario (where i can't use node 14 syntax on node 12, but i can't use node-sass on node 16).

Generally, dependencies will always work, eventually, on any node version that will become or has been LTS, but that can be a slowly moving window.

Is there a reason that it couldn't work more like setup-node, where the action can use whatever version of node the setup-node action uses?

TingluoHuang

comment created time in 15 hours

more