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 98639

JavaScript Style Guide

airbnb/lottie-android 29384

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

airbnb/lottie-web 21597

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

airbnb/lottie-ios 20118

An iOS library to natively render After Effects vector animations

airbnb/hypernova 5587

A service for server-side rendering your JavaScript views

airbnb/css 5367

A mostly reasonable approach to CSS and Sass.

airbnb/polyglot.js 3319

Give your JavaScript the ability to speak many languages.

airbnb/prop-types 634

Custom React PropType validators that we use at Airbnb.

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

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

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

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

Pull request review commenttc39/ecma262

Editorial: remove `%Generator%` and `%AsyncGenerator%` in favor of dotted forms

 <h1>Object.preventExtensions ( _O_ )</h1>        <emu-clause id="sec-object.prototype">         <h1>Object.prototype</h1>-        <p>The initial value of `Object.prototype` is %Object.prototype%.</p>+        <p>The initial value of `Object.prototype` is the Object prototype object.</p>

It was intentional to make everything consistent. I can pull them out into another PR tho.

ljharb

comment created time in an hour

pull request commentairbnb/react-dates

Added BrowserStack Logo to Readme

Who signed up, exactly? I certainly wouldn’t sign up for a program that only offers something for “free” with mandated advertising/shilling.

naineet

comment created time in an hour

push eventljharb/nvm

Naomi Quinones

commit sha 1bf567bd0b12be189f595f5cd781258260cf37b5

[Fix] ensure `--help` is intercepted on any command Co-authored-by: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com> Co-authored-by: Dena Burd <me@Denas-MacBook-Air.local>

view details

push time in an hour

PR merged nvm-sh/nvm

[Fix] ensure `--help` is intercepted on any command feature requests

This fixes #911

Issue: Prevent flags from being parsed if the help flag is present in the list of arguments to nvm

Even if nvm doesn't support the --help flag on individual tasks it would be more user friendly to prevent any action being carried out if the --help flag is present

What we did: Check arguments list for help flag and display help then exit without parsing other flags

Test added: nvm_check_for_help

+97 -82

1 comment

2 changed files

naomiquinones

pr closed time in an hour

issue closednvm-sh/nvm

Don't act when `--help` flag specified

Even if nvm doesn't support the --help flag on individual tasks it would be more user friendly to prevent any action being carried out if the --help flag is present. It is a common convention to support this and users can find themselves accidentally carrying out tasks with nvm's default settings when all they wanted was information about the task (I just did with cache-clean)

image

closed time in an hour

wheresrhys

push eventnvm-sh/nvm

Naomi Quinones

commit sha 1bf567bd0b12be189f595f5cd781258260cf37b5

[Fix] ensure `--help` is intercepted on any command Co-authored-by: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com> Co-authored-by: Dena Burd <me@Denas-MacBook-Air.local>

view details

push time in an hour

push eventnaomiquinones/nvm

Naomi Quinones

commit sha 1bf567bd0b12be189f595f5cd781258260cf37b5

[Fix] ensure `--help` is intercepted on any command Co-authored-by: Naomi Quinones <52065567+naomiquinones@users.noreply.github.com> Co-authored-by: Dena Burd <me@Denas-MacBook-Air.local>

view details

push time in 2 hours

Pull request review commentnvm-sh/nvm

[Fix] `install`: detect user shell and try shellrc file first

 nvm_detect_profile() {   local DETECTED_PROFILE   DETECTED_PROFILE='' -  if [ -n "${BASH_VERSION-}" ]; then-    if [ -f "$HOME/.bashrc" ]; then-      DETECTED_PROFILE="$HOME/.bashrc"-    elif [ -f "$HOME/.bash_profile" ]; then-      DETECTED_PROFILE="$HOME/.bash_profile"-    fi-  elif [ -n "${ZSH_VERSION-}" ]; then-    DETECTED_PROFILE="$HOME/.zshrc"+  # Detect the user's login shell+  local USER_SHELL+  local USER_SHELL_NAME+  USER_SHELL=''++  # If we're not testing, try to get shell from passwd+  # Otherwise, try the SHELL variable+  if [ "$NVM_TESTING" != 'yes' ]; then+    USER_SHELL=$(getent passwd $(whoami) | cut -d: -f7)

When I run $(getent passwd $(whoami) | cut -d: -f7) on my Mac, I get -bash: getent: command not found on stderr, which doesn't seem like something we want. What is getent?

steelcowboy

comment created time in 2 hours

Pull request review commentnvm-sh/nvm

[Fix] `install`: detect user shell and try shellrc file first

 nvm_detect_profile() {   local DETECTED_PROFILE   DETECTED_PROFILE='' -  if [ -n "${BASH_VERSION-}" ]; then-    if [ -f "$HOME/.bashrc" ]; then-      DETECTED_PROFILE="$HOME/.bashrc"-    elif [ -f "$HOME/.bash_profile" ]; then-      DETECTED_PROFILE="$HOME/.bash_profile"-    fi-  elif [ -n "${ZSH_VERSION-}" ]; then-    DETECTED_PROFILE="$HOME/.zshrc"+  # Detect the user's login shell+  local USER_SHELL+  local USER_SHELL_NAME+  USER_SHELL=''++  # If we're not testing, try to get shell from passwd+  # Otherwise, try the SHELL variable+  if [ "$NVM_TESTING" != 'yes' ]; then+    USER_SHELL=$(getent passwd $(whoami) | cut -d: -f7)+  elif [ -n "$SHELL" ]; then
  elif [ -n "${SHELL-}" ]; then
steelcowboy

comment created time in 2 hours

Pull request review commentnvm-sh/nvm

[Fix] `install`: detect user shell and try shellrc file first

 nvm_detect_profile() {   local DETECTED_PROFILE   DETECTED_PROFILE='' -  if [ -n "${BASH_VERSION-}" ]; then-    if [ -f "$HOME/.bashrc" ]; then-      DETECTED_PROFILE="$HOME/.bashrc"-    elif [ -f "$HOME/.bash_profile" ]; then-      DETECTED_PROFILE="$HOME/.bash_profile"-    fi-  elif [ -n "${ZSH_VERSION-}" ]; then-    DETECTED_PROFILE="$HOME/.zshrc"+  # Detect the user's login shell+  local USER_SHELL+  local USER_SHELL_NAME+  USER_SHELL=''++  # If we're not testing, try to get shell from passwd+  # Otherwise, try the SHELL variable+  if [ "$NVM_TESTING" != 'yes' ]; then
  if [ "${NVM_TESTING-}" != 'yes' ]; then
steelcowboy

comment created time in 2 hours

push eventtc39/ecma262

bterlson

commit sha ec51e26f1e2d0597600c79befd7f743e0334b084

Update gh-pages [skip ci]

view details

push time in 2 hours

pull request commentnvm-sh/nvm

[Fix] `install`: detect user shell and try shellrc file first

What is getent? Is it in POSIX and thus on all supported systems? My Mac doesn't have it.

steelcowboy

comment created time in 2 hours

issue commentbenmosher/eslint-plugin-import

no-internal-modules is not working with CRA+Typescript setup

CRA does - but this eslint plugin indeed can't know about that unless you configure that eslint resolver.

chris-fran

comment created time in 2 hours

PR merged tc39/ecma262

Reviewers
Editorial: Module Record in InnerModuleEvaluation need not be a Source Text Module Record editorial change spec bug

In InnerModuleEvaluation, the argument module is defined as (a Source Text Module Record), but this could be a non-source text module record as well it looks like...

+1 -1

2 comments

1 changed file

codehag

pr closed time in 2 hours

push eventljharb/ecma262

codehag

commit sha ae77188c64085669f8c7cc859327f0817cdb260d

Editorial: Module Record in InnerModuleEvaluation need not be a Source Text Module Record (#2092) Fixes #2091

view details

push time in 2 hours

push eventtc39/ecma262

codehag

commit sha ae77188c64085669f8c7cc859327f0817cdb260d

Editorial: Module Record in InnerModuleEvaluation need not be a Source Text Module Record (#2092) Fixes #2091

view details

push time in 2 hours

issue closedtc39/ecma262

Editorial? Module Record in InnerModuleEvaluation need not be a Source Text Module Record

As described in the title. This was noticed while updating the top-level await specification: https://github.com/tc39/proposal-top-level-await/pull/141#discussion_r430486626

closed time in 2 hours

codehag

push eventcodehag/ecma262

jhnaldo

commit sha f92bc80f39fc0487fd395a471c61151fbfdf9ae2

Editorial: Remove assertion in InitializeBinding of Object Environment Record (#1660)

view details

Jordan Harband

commit sha e68f35a76608ad9587e334e8cd0cbc900cd26061

Editorial: change redundant "the intrinsic object %Foo%" to "%Foo%" (#2059)

view details

ExE Boss

commit sha e8fd7babb794c85137ddebd6b38baab777f4d366

Editorial: Fix %Generator% and %AsyncGenerator% <dfn>s (#2059) Co-authored-by: ExE Boss <3889017+ExE-Boss@users.noreply.github.com> Co-authored-by: Jordan Harband <ljharb@gmail.com>

view details

Shu-yu Guo

commit sha 56032d3271949f2892745d4a8e06d1322ba7220d

Editorial: Clarify host and implementation taxonomy (#1951) Classify facilities not wholly defined by ecma262 into: - Implementation-defined - Implementation-approximated - Host-defined Per consensus in the June 2020 meeting. Closes #1524

view details

Shu-yu Guo

commit sha f700c03a152da7124acb6558351f536508c9c208

Editorial: Don't use "sec-" prefix for dfn ids (#2103)

view details

Jordan Harband

commit sha 8eab6e85cf9f69b41d1d61b49ff5f907e5b0ed41

Normative: add `Reflect[Symbol.toStringTag]` Fixes #1970.

view details

chicoxyzzy

commit sha 69f53492cf8e735c84f8f859b930576c4ce9251b

Normative: Add Promise.any & AggregateError (#2040) Co-authored-by: chicoxyzzy <chi187@gmail.com> Co-authored-by: Mathias Bynens <mathias@qiwi.be> Co-authored-by: Kevin Gibbons <bakkot@gmail.com>

view details

Justin Ridgewell

commit sha 740ecd68a2c0f6d88b3a4c1af0cb6a5c96c47261

Normative: Add Logical Assignment Operators (#2030)

view details

ExE Boss

commit sha a0452b6c659bbcf32b2fb48d6055399089edd3b7

Editorial: Fix <emu‑xref> to AggregateError Objects (#2107) This was missed in #2040.

view details

Michael Dyck

commit sha 721293e0fff964c4cdd3397fcbc7def1de9f9b4e

Editorial: fix minor errors in step syntax (#2108) ... from PR #2040

view details

Kevin Gibbons

commit sha 3610134273996ef4ecb0ad98d162fbdb6981dd91

Normative: make SharedArrayBuffer optional (#1903)

view details

Ross Kirsling

commit sha 7efaa50c81d0a43ead0b158697ed1b341f76e76a

Normative: Specify \8 and \9 in sloppy non-template strings (#2054)

view details

Leo Balter

commit sha 019d49816879fc814097914d3e3ce7c7e1b081ed

Normative: Verify if Binding is preserved for obj's SetMutableBinding (#2094) Verify binding existence in the object's SetMutableBinding on Strict Mode. Closes #2093 Ref #467 Ref https://github.com/tc39/test262/issues/427

view details

codehag

commit sha 71c08971700eeea4f55f49edc6973670c0d4ee2e

Normative: Add Weakrefs and FinalizationRegistry (#2089)

view details

Jordan Harband

commit sha 566f39c22fe1831fc05da8c966357c0c1d355736

Editorial: add missing WeakRef/Finalization well-known intrinsics to table (#2126) Unintentionally omitted from #2089. Also added the <dfn>s for easier linking.

view details

Gus Caplan

commit sha 552407b105696bafa4e641bf2f5db61ad39c65ab

Normative: fix Function toString on builtins (#1948)

view details

ExE Boss

commit sha 276af73369c33f132ec55197f82273d53eb9d89a

Editorial: Use `RequireInternalSlot` in `RegExp.prototype.compile` (#2111)

view details

Kevin Gibbons

commit sha cb3a24d910c8a7ac62ee7b2883e4b2ce54b18add

Editorial: reference correct nonterminals in IteratorDestructuringAssignmentEvaluation (#2121)

view details

Shu-yu Guo

commit sha a59a820d309b77177defe7f89be1370e702c54c8

Layering: Refine execution context requirements for Jobs (#1984) Closes #1930.

view details

Michael Ficarra

commit sha 48b7f9d9a9b3d192a8c0c1c13d6cdc245a1556ed

Editorial: use more idiomatic aliases in CreateIntrinsics definition (#2118)

view details

push time in 2 hours

issue commentbenmosher/eslint-plugin-import

no-internal-modules is not working with CRA+Typescript setup

Adding src to tsconfig doesn't change anything unless you're using https://www.npmjs.com/package/eslint-import-resolver-typescript in your eslint settings.

chris-fran

comment created time in 2 hours

push eventtc39/ecma262

bterlson

commit sha dfea82e89d3d6245353a912800de1d9db031d204

Update gh-pages [skip ci]

view details

push time in 2 hours

issue commentnvm-sh/nvm

git on windows can’t clone nvm test filenames

@petersierra1280 is that WSL, or git bash? nvm only works in WSL.

isomorphisms

comment created time in 2 hours

push eventljharb/ecma262

Michael Ficarra

commit sha 48b7f9d9a9b3d192a8c0c1c13d6cdc245a1556ed

Editorial: use more idiomatic aliases in CreateIntrinsics definition (#2118)

view details

push time in 2 hours

delete branch tc39/ecma262

delete branch : CreateIntrinsics-aliases

delete time in 2 hours

PR merged tc39/ecma262

Reviewers
Editorial: use more idiomatic aliases in CreateIntrinsics definition editorial change

The things wrapped in angle brackets seemed like simple aliases to me, so let's use those.

+1 -1

0 comment

1 changed file

michaelficarra

pr closed time in 2 hours

push eventtc39/ecma262

Michael Ficarra

commit sha 48b7f9d9a9b3d192a8c0c1c13d6cdc245a1556ed

Editorial: use more idiomatic aliases in CreateIntrinsics definition (#2118)

view details

push time in 2 hours

issue commentnpm/npx

[QUESTION] help me understand why this repo results in a syntax error when running with npx

When I run it in node 14, I get this output:

$ npx https://github.com/timcash/crawlobot "https://google.com"
Downloading chromium v792639 - 128.2 Mb [====================] 100% 0.0s 
Downloading firefox v1144 - 71.8 Mb [====================] 100% 0.0s 
Downloading webkit v1322 - 48.9 Mb [====================] 100% 0.0s 
$HOME/.npm/_npx/69030/bin/crawlobot: line 1: syntax error near unexpected token `('
$HOME/.npm/_npx/69030/bin/crawlobot: line 1: `const { webkit } = require("playwright");'

so I think the problem is that this is meant to be a "bin" file, and you're missing a shebang - add #!/usr/bin/env node as the first line and try again.

timcash

comment created time in 2 hours

push eventtc39/ecma262

Kevin Gibbons

commit sha 3610134273996ef4ecb0ad98d162fbdb6981dd91

Normative: make SharedArrayBuffer optional (#1903)

view details

Ross Kirsling

commit sha 7efaa50c81d0a43ead0b158697ed1b341f76e76a

Normative: Specify \8 and \9 in sloppy non-template strings (#2054)

view details

Leo Balter

commit sha 019d49816879fc814097914d3e3ce7c7e1b081ed

Normative: Verify if Binding is preserved for obj's SetMutableBinding (#2094) Verify binding existence in the object's SetMutableBinding on Strict Mode. Closes #2093 Ref #467 Ref https://github.com/tc39/test262/issues/427

view details

codehag

commit sha 71c08971700eeea4f55f49edc6973670c0d4ee2e

Normative: Add Weakrefs and FinalizationRegistry (#2089)

view details

Jordan Harband

commit sha 566f39c22fe1831fc05da8c966357c0c1d355736

Editorial: add missing WeakRef/Finalization well-known intrinsics to table (#2126) Unintentionally omitted from #2089. Also added the <dfn>s for easier linking.

view details

Gus Caplan

commit sha 552407b105696bafa4e641bf2f5db61ad39c65ab

Normative: fix Function toString on builtins (#1948)

view details

ExE Boss

commit sha 276af73369c33f132ec55197f82273d53eb9d89a

Editorial: Use `RequireInternalSlot` in `RegExp.prototype.compile` (#2111)

view details

Kevin Gibbons

commit sha cb3a24d910c8a7ac62ee7b2883e4b2ce54b18add

Editorial: reference correct nonterminals in IteratorDestructuringAssignmentEvaluation (#2121)

view details

Shu-yu Guo

commit sha a59a820d309b77177defe7f89be1370e702c54c8

Layering: Refine execution context requirements for Jobs (#1984) Closes #1930.

view details

Michael Ficarra

commit sha 48b7f9d9a9b3d192a8c0c1c13d6cdc245a1556ed

Editorial: use more idiomatic aliases in CreateIntrinsics definition (#2118)

view details

push time in 2 hours

Pull request review commenttc39/ecma262

Define Math functions using algorithm steps

 <h1>Function Properties of the Math Object</h1>       <emu-clause id="sec-math.abs">         <h1>Math.abs ( _x_ )</h1>         <p>Returns the absolute value of _x_; the result has the same magnitude as _x_ but has positive sign.</p>-        <ul>-          <li>-            If _x_ is *NaN*, the result is *NaN*.-          </li>-          <li>-            If _x_ is *-0*, the result is *+0*.-          </li>-          <li>-            If _x_ is *-&infin;*, the result is *+&infin;*.-          </li>-        </ul>+        <emu-alg>+            1. Let _n_ be ? ToNumber(_x_).+            1. If _n_ is *NaN*, return *NaN*.+            1. If _n_ is *-0*, return *+0*.+            1. If _n_ is *-&infin;*, return *+&infin;*.+            1. If _n_ < 0, return -_n_.+            1. Return _n_.+        </emu-alg>       </emu-clause>        <emu-clause id="sec-math.acos">         <h1>Math.acos ( _x_ )</h1>         <p>Returns an implementation-approximated value representing the result of the arc cosine of _x_. The result is expressed in radians and ranges from *+0* to +&pi;.</p>-        <ul>-          <li>-            If _x_ is *NaN*, the result is *NaN*.-          </li>-          <li>-            If _x_ is greater than 1, the result is *NaN*.-          </li>-          <li>-            If _x_ is less than -1, the result is *NaN*.-          </li>-          <li>-            If _x_ is exactly 1, the result is *+0*.-          </li>-        </ul>+        <emu-alg>+            1. Let _n_ be ? ToNumber(_x_).+            1. If _n_ is *NaN*, or _n_ &gt; 1, or _n_ &lt; -1, return *NaN*.+            1. If _n_ is 1, return *+0*.+            1. Return an implementation-approximated value representing the result of the arc cosine of _n_.+        </emu-alg>       </emu-clause>        <emu-clause id="sec-math.acosh">         <h1>Math.acosh ( _x_ )</h1>         <p>Returns an implementation-approximated value representing the result of the inverse hyperbolic cosine of _x_.</p>-        <ul>-          <li>-            If _x_ is *NaN*, the result is *NaN*.-          </li>-          <li>-            If x is less than 1, the result is *NaN*.-          </li>-          <li>-            If x is 1, the result is *+0*.-          </li>-          <li>-            If _x_ is *+&infin;*, the result is *+&infin;*.-          </li>-        </ul>+        <emu-alg>+          1. Let _n_ be ? ToNumber(_x_).+          1. If _n_ is *NaN*, or _n_ &lt; 1, return *NaN*.+          1. If _n_ is 1, return *+0*.+          1. If _n_ is *+&infin;*, return *+&infin;*.+          1. Return an implementation-approximated value representing the result of the inverse hyperbolic cosine of _n_.+        </emu-alg>       </emu-clause>        <emu-clause id="sec-math.asin">         <h1>Math.asin ( _x_ )</h1>         <p>Returns an implementation-approximated value representing the result of the arc sine of _x_. The result is expressed in radians and ranges from -&pi; / 2 to +&pi; / 2.</p>-        <ul>-          <li>-            If _x_ is *NaN*, the result is *NaN*.-          </li>-          <li>-            If _x_ is greater than 1, the result is *NaN*.-          </li>-          <li>-            If _x_ is less than -1, the result is *NaN*.-          </li>-          <li>-            If _x_ is *+0*, the result is *+0*.-          </li>-          <li>-            If _x_ is *-0*, the result is *-0*.-          </li>-        </ul>+        <emu-alg>+          1. Let _n_ be ? ToNumber(_x_).+          1. If _n_ is *NaN*, or _n_ &gt;1, or _n_ &lt; -1, return *NaN*.

I wouldn't expect any differentiation between values or conditions; I'd expect what I'm used to in English sentences - that a comma-separated clause has only a final conjunction (and an Oxford comma, ofc).

ryanjduffy

comment created time in 2 hours

pull request commentyannickcr/eslint-plugin-react

Add fix for prefer-stateless-function

ping @golopot

RiddleMan

comment created time in 2 hours

Pull request review commentyannickcr/eslint-plugin-react

[Fix] `jsx-no-useless-fragment`: accept fragments with call expressions

 ruleTester.run('jsx-no-useless-fragment', rule, {     {       code: '<Fooo content={<>eeee ee eeeeeee eeeeeeee</>} />',       parser: parsers.BABEL_ESLINT+    },+    {+      code: '<>{foos.map(foo => foo)}</>',

What crash at runtime? A component that returns [undefined] is a valid component.

You're right that it wouldn't be useless if it's being passed somewhere, but since the introduction of fragments it seems like anything that accepts a fragment should also accept an array?

hasparus

comment created time in 3 hours

Pull request review commentyannickcr/eslint-plugin-react

[Fix] `jsx-no-useless-fragment`: accept fragments with call expressions

 ruleTester.run('jsx-no-useless-fragment', rule, {       errors: [{messageId: 'NeedsMoreChidren', type: 'JSXFragment'}],       parser: parsers.BABEL_ESLINT     },+    {+      code: '<>{}</>',

wow, ok then :-)

hasparus

comment created time in 3 hours

issue commentbenmosher/eslint-plugin-import

[no-restricted-paths] rule. Needs help with implementation.

The rule is import/no-restricted-paths, not no-restricted-paths.

mikaarefyev

comment created time in 6 hours

issue commentnvm-sh/nvm

im UI Designer and iam installing nvm on Ubuntu subsystem in windows and also under corporate proxy i download this script file plz tell how to run this one

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused means your computer can't properly connect to github.

If your corporate proxy doesn't allow connections to github.com, githubusercontent.com, and nodejs.org, then you won't be able to use much of anything :-/

shersial

comment created time in 6 hours

issue commentbenmosher/eslint-plugin-import

[order] How to force React at the top and other issues

hmm, i see what you mean. if you comment out the pathGroups setting, what happens?

angrybacon

comment created time in 6 hours

push eventljharb/eslint-plugin-react

Karolina Benitez

commit sha de268ec00ee1b07465ba4129d11b5e5a289d85d8

[Fix] jsx-no-literals with allowStrings doesn't work in props Fixes #2720

view details

push time in 6 hours

PR merged yannickcr/eslint-plugin-react

[Fix] jsx-no-literals with allowStrings doesn't work in props

Checks if props string is included in allowedStrings option

Fixes #2720.

+58 -3

0 comment

2 changed files

karolina-benitez

pr closed time in 6 hours

push eventyannickcr/eslint-plugin-react

Karolina Benitez

commit sha de268ec00ee1b07465ba4129d11b5e5a289d85d8

[Fix] jsx-no-literals with allowStrings doesn't work in props Fixes #2720

view details

push time in 6 hours

issue closedyannickcr/eslint-plugin-react

jsx-no-literals with allowStrings doesn't work in props

the following setup seems not to work:

<button type="button" ></button>

with the rule

    'react/jsx-no-literals': [
      'warn',
      {
        noStrings: true,
        allowedStrings: ['button', 'submit'],
      },
    ],

produces the following error: Invalid prop value: “type="button"” react/jsx-no-literals

Context: I'm trying to find a balance between enforcing no literals but also react/button-has-type

closed time in 6 hours

e110c0

Pull request review commentyannickcr/eslint-plugin-react

[New] `jsx-filename-extension` add "allow" option with "as-needed"

 function MyComponent() {  ## Rule Options +### `allow` (default: `"always"`)++When to allow a JSX filename extension. By default all files may have a JSX extension. Set this to `as-needed` to only allow JSX file extensions in files that contain JSX syntax.

As commented in the linked issue, I'm not convinced this is a safe option to add. .js files are only supposed to be JS - jsx syntax isn't the only thing that would make a file not be standard JS. For example, if it used any pre-stage-3 features, like decorators or something.

At the very least, the docs here should add another paragraph explaining the reasons why this might be contentious.

remcohaszing

comment created time in 6 hours

Pull request review commentyannickcr/eslint-plugin-react

fix: check to ensure forbid-prop-types throws only off of React.PropTypes

 module.exports = {       CallExpression(node) {         if (           node.arguments.length > 0+          && `${pragma}.PropTypes`

should this be comparing this string to anything? otherwise it's just a noop and could be deleted.

codecog

comment created time in 6 hours

push eventkarolina-benitez/eslint-plugin-react

Elizabeth Craig

commit sha 9abc71dc52557f8807eca7c14557914ce93f2d67

[Fix] `no-find-dom-node`: Improve error message

view details

Karolina Benitez

commit sha de268ec00ee1b07465ba4129d11b5e5a289d85d8

[Fix] jsx-no-literals with allowStrings doesn't work in props Fixes #2720

view details

push time in 6 hours

Pull request review commentyannickcr/eslint-plugin-react

[Fix] `jsx-no-useless-fragment`: accept fragments with call expressions

 ruleTester.run('jsx-no-useless-fragment', rule, {       errors: [{messageId: 'NeedsMoreChidren', type: 'JSXFragment'}],       parser: parsers.BABEL_ESLINT     },+    {+      code: '<>{}</>',

this seems like it's just a syntax error, and wouldn't parse in the first place?

hasparus

comment created time in 6 hours

Pull request review commentyannickcr/eslint-plugin-react

[Fix] `jsx-no-useless-fragment`: accept fragments with call expressions

 ruleTester.run('jsx-no-useless-fragment', rule, {     {       code: '<Fooo content={<>eeee ee eeeeeee eeeeeeee</>} />',       parser: parsers.BABEL_ESLINT+    },+    {+      code: '<>{foos.map(foo => foo)}</>',

this seems like a useless fragment to me tho? since foos.map produces an array, and an array is a valid render value.

hasparus

comment created time in 6 hours

push eventHypnosphi/eslint-plugin-react

Elizabeth Craig

commit sha 9abc71dc52557f8807eca7c14557914ce93f2d67

[Fix] `no-find-dom-node`: Improve error message

view details

Filipp Riabchun

commit sha 877ae08061f614d6e240b04ff65dadfffc1f2c85

[New] `button-has-type`: support trivial ternary expressions

view details

push time in 6 hours

issue commentmicrosoft/TypeScript

Decouple jsx element type from jsx factory return type and sfc return type

@isiahmeadows what does the react/babel jsx transform do? I've always thought it to only be the latter, which would mean that is in fact the canonical signature, even if React.createElement happens to support a variadic form.

weswigham

comment created time in 6 hours

issue commenttc39/proposal-Number.range

Consider specifying `Array.prototype.keys()` and friends to return a numeric range iterator

It’s likely that es6-shim and core-js both would break if this change was made. It’s worth verifying, but I’m not optimistic.

isiahmeadows

comment created time in 7 hours

issue commentyannickcr/eslint-plugin-react

Rule proposal: react/no-unstable-nested-components

While I agree with the principle of this rule, component detection is very difficult, and this will likely result in a lot of false positives.

AriPerkkio

comment created time in 7 hours

issue commentnpm/npx

[QUESTION] help me understand why this repo results in a syntax error when running with npx

Yes, that should work. What does which npx say, and which node? Is there a chance npx is running with the wrong node version?

timcash

comment created time in 8 hours

issue commentnpm/npx

[QUESTION] help me understand why this repo results in a syntax error when running with npx

Also, npx hides the stack trace; what happens if you run your bin file directly?

timcash

comment created time in 19 hours

issue commentnpm/npx

[QUESTION] help me understand why this repo results in a syntax error when running with npx

This package isn't published; how are you running it with npx exactly?

timcash

comment created time in 19 hours

issue commentnpm/npx

[QUESTION] help me understand why this repo results in a syntax error when running with npx

What node version are you using?

timcash

comment created time in 19 hours

push eventljharb/eslint-plugin-react

Elizabeth Craig

commit sha 9abc71dc52557f8807eca7c14557914ce93f2d67

[Fix] `no-find-dom-node`: Improve error message

view details

push time in 20 hours

PR merged yannickcr/eslint-plugin-react

[Fix] Improve error message for no-find-dom-node

The error message for no-find-dom-node wasn't very informative, which makes it less likely that people will respect the rule instead of just disabling it. This PR adds a more informative message.

+5 -5

0 comment

2 changed files

ecraig12345

pr closed time in 20 hours

push eventyannickcr/eslint-plugin-react

Elizabeth Craig

commit sha 9abc71dc52557f8807eca7c14557914ce93f2d67

[Fix] `no-find-dom-node`: Improve error message

view details

push time in 20 hours

Pull request review commentpkgjs/support

Schema improvements

 'use strict'; const yargs = require('yargs/yargs'); const path = require('path');-const Loggerr = require('loggerr');+const { Loggerr } = require('loggerr');

gross, why would they make this package less ergonomic in a prerelease

Eomm

comment created time in 20 hours

Pull request review commentpkgjs/support

Schema improvements

  When an author releases an Open Source package there are many different levels of support they may intend to provide.  The [Node.js Package Maintenence Working Group](https://github.com/nodejs/package-maintenance)-is working to propose [a spec](https://github.com/nodejs/package-maintenance/issues/220) to help package authors declare their intended support goals.  This package provides+is working to propose [a spec](https://github.com/nodejs/package-maintenance/blob/master/docs/PACKAGE-SUPPORT.md) to help package authors declare their intended support goals.  This package provides
is working to propose [a spec](https://github.com/nodejs/package-maintenance/blob/HEAD/docs/PACKAGE-SUPPORT.md) to help package authors declare their intended support goals.  This package provides
Eomm

comment created time in 20 hours

push eventecraig12345/eslint-plugin-react

Elizabeth Craig

commit sha 9abc71dc52557f8807eca7c14557914ce93f2d67

[Fix] `no-find-dom-node`: Improve error message

view details

push time in 20 hours

Pull request review commentyannickcr/eslint-plugin-react

[Fix] Improve error message for no-find-dom-node

 module.exports = {          context.report({           node: callee,-          message: 'Do not use findDOMNode'+          message: 'Do not use findDOMNode. It doesn\'t work with function components and is deprecated in StrictMode. See https://reactjs.org/docs/react-dom.html#finddomnode'

lol yes, thanks :-)

ecraig12345

comment created time in 20 hours

Pull request review commentyannickcr/eslint-plugin-react

button-has-type: support trivial ternary expressions

 ruleTester.run('button-has-type', rule, {     {       code: '<button type={foo}/>',       errors: [{-        message: 'The button type attribute must be specified by a static string'+        message: 'The button type attribute must be specified by a static string or a trivial ternary expression'       }]     },     {       code: '<button type={"foo"}/>',       errors: [{-        message: 'The button type attribute must be specified by a static string'+        message: '"foo" is an invalid value for button type attribute'

I'm not sure why? Plenty of rules work with "no substitution" template literals, and i think this one should too. That's a much more common use case than a "trivial ternary".

Hypnosphi

comment created time in 20 hours

Pull request review commentyannickcr/eslint-plugin-react

Jsx filename extension as needed

 ruleTester.run('jsx-filename-extension', rule, {       filename: 'MyComponent.js',       code: withJSXElement,       errors: [{message: 'JSX not allowed in files with extension \'.js\''}]+    }, {+      filename: 'MyComponent.jsx',+      code: withoutJSX,+      options: [{allow: 'as-needed'}],+      errors: [{message: 'Only files containing JSX may use the extension \'.jsx\''}]

let's also add a test case for as-needed with withJSXElement and a .js file?

remcohaszing

comment created time in 20 hours

issue commentyannickcr/eslint-plugin-react

react/prop-types not detecting props when defined as an interface

While I prefer type to interface, you're totally right that this should work.

jarretmoses

comment created time in 20 hours

issue commentbenmosher/eslint-plugin-import

[order] How to force React at the top and other issues

There needs to be a newline between each group - so, one after react, and one after the node modules (path), and one after the material UI ones. gatsy needs to be sorted with "path", etc.

angrybacon

comment created time in 20 hours

issue commentbenmosher/eslint-plugin-import

[import/no-extraneous-dependencies] Problems when only using types

@vamcs in that case, please file a new issue with the error, the code being linted, and the relevant eslint/plugin/typescript parser versions :-)

thewilkybarkid

comment created time in 20 hours

Pull request review commenttc39/ecma262

Editorial: quick fixes for recent merges

 <h1>Execution</h1>     <emu-clause id="sec-weakref-host-hooks">       <h1>Host Hooks</h1> -      <emu-clause id="sec-host-cleanup-finalization-registry" aoid=HostEnqueueFinalizationRegistryCleanupJob>+      <emu-clause id="sec-host-cleanup-finalization-registry" aoid="HostEnqueueFinalizationRegistryCleanupJob">

cc @bakkot, let's lint for this one

jmdyck

comment created time in 20 hours

Pull request review commenttc39/ecma262

Editorial: quick fixes for recent merges

 <h1>Execution</h1>         1. For each _obj_ of _S_, do           1. For each WeakRef _ref_ such that _ref_.[[WeakRefTarget]] is _obj_, do             1. Set _ref_.[[WeakRefTarget]] to ~empty~.-          1. For each FinalizationRegistry _fg_ such that _fg_.[[Cells]] contains _cell_, and _cell_.[[WeakRefTarget]] is _obj_, do+          1. For each FinalizationRegistry _fg_ such that _fg_.[[Cells]] contains a Record _cell_ such that _cell_.[[WeakRefTarget]] is _obj_, do             1. Set _cell_.[[WeakRefTarget]] to ~empty~.             1. Optionally, perform ! HostEnqueueFinalizationRegistryCleanupJob(_fg_).-          1. For each WeakMap _map_ such that _map_.[[WeakMapData]] contains a Record value _r_ such that _r_.[[Key]] is _obj_, do+          1. For each WeakMap _map_ such that _map_.[[WeakMapData]] contains a Record _r_ such that _r_.[[Key]] is _obj_, do             1. Set _r_.[[Key]] to ~empty~.             1. Set _r_.[[Value]] to ~empty~.           1. For each WeakSet _set_ such that _set_.[[WeakSetData]] contains _obj_, do-            1. Replace the element of _set_ whose value is _obj_ with an element whose value is ~empty~.+            1. Replace the element of _set_.[[WeakSetData]] whose value is _obj_ with an element whose value is ~empty~.

nice catch, this seems like an actual spec bug

jmdyck

comment created time in 20 hours

issue commentromefrontend/rome

📎 Lower supported Node version

Adding the mkdirp package should give you pretty far backwards compatibility.

sebmck

comment created time in 20 hours

issue commentbrowserify/browserify

/standalone/concat-stream@latest 504 Gateway timeout

That’s an issue with wzrd.in, not browserify.

Dmeowmixer

comment created time in a day

push eventes-shims/AggregateError

Jordan Harband

commit sha ee9ea50d8174240853ad092d7390e90aae55285c

[Tests] remove confusing comment

view details

Jordan Harband

commit sha 252bc1a75f273b03df953499fcfae0ff84371b4f

[Deps] update `es-abstract`

view details

Jordan Harband

commit sha a87fbede91105713a43f583f335d50888b2ac5e9

[Dev Deps] update `auto-changelog`, `eslint`, `object-inspect`

view details

Jordan Harband

commit sha f848aa290ef98d907443e5d9e32dd9207ccf77a6

[Tests] add missing `covert` dep

view details

Jordan Harband

commit sha 5cb7179de5eb8cecc750d6172838a05b4938a642

[meta] update `auto-changelog` settings

view details

Jordan Harband

commit sha 9af42bef147e2998d40f848886ee6b7ce42e61d7

v1.0.4

view details

push time in a day

Pull request review commentyannickcr/eslint-plugin-react

button-has-type: support trivial ternary expressions

 ruleTester.run('button-has-type', rule, {     {       code: '<button type={foo}/>',       errors: [{-        message: 'The button type attribute must be specified by a static string'+        message: 'The button type attribute must be specified by a static string or a trivial ternary expression'       }]     },     {       code: '<button type={"foo"}/>',       errors: [{-        message: 'The button type attribute must be specified by a static string'+        message: '"foo" is an invalid value for button type attribute'

let's please add this test case also with single quotes, and also with backticks (it should support no-substitution-template-strings as well, and i believe that test would fail atm)

Hypnosphi

comment created time in a day

issue commentenzymejs/enzyme

simulate('change' ...) on input not updating its value

in this case, you're not actually using onChange, you're letting react-hook-form manipulate the DOM directly. I'm not really sure how you'd test that; that sounds like a react antipattern to me tbh :-/

Nikhil22

comment created time in a day

issue commentenzymejs/enzyme

Multiple HOC Shallow render error: Invariant Violation: Could not find "client" in the context or passed in as an option.

That seems like a good theory; a repro repo would be most helpful.

schnebly

comment created time in a day

issue commentbenmosher/eslint-plugin-import

[import/no-extraneous-dependencies] Problems when only using types

@vamcs yes - if you click on the commit link above, you'll see it's included in v2.22.0.

thewilkybarkid

comment created time in a day

created tages-shims/AggregateError

tagv1.0.4

ES Proposal spec-compliant shim for AggregateError

created time in a day

delete branch es-shims/AggregateError

delete branch : master

delete time in a day

create barnches-shims/AggregateError

branch : main

created branch time in a day

Pull request review commenttc39/ecma402

GetOption reform

 <h1>ToDateTimeOptions ( _options_, _required_, _defaults_ )</h1>       </p>        <emu-alg>-        1. If _options_ is *undefined*, let _options_ be *null*; otherwise let _options_ be ? ToObject(_options_).-        1. Let _options_ be ObjectCreate(_options_).+        1. If _options_ is *undefined*, then+          1. Let _options_ be ObjectCreate(*null*).+        1. Else,+          1. If Type(_options_) is not Object,+            1. Throw a *TypeError* exception.+          1. Let _options_ be ObjectCreate(_options_).

In that case, shouldn’t the object be cloned before it’s written to, instead of making an inheriting object? (something that’s observable via proxies, and a very weird thing imo to have be observable)

ptomato

comment created time in a day

issue closedairbnb/javascript

Revisit/realign `curly` to eslint-defaults value of "all"

The curly option was set 5 years ago based on the eslint default rules of the time: https://github.com/airbnb/javascript/commit/daea8a638f1f42cd609f1b68b748ad323be31c10

Since then eslint has, of course, updated a lot of rules and configuration and part of that is specifying the new default curly value of all

I'd like to discuss aligning the config with that decision, as it seems the decision in this config was not consciously made and is now out of date.

Suggested label: yak-shaving 😉

closed time in a day

richthegeek

issue commentairbnb/javascript

Revisit/realign `curly` to eslint-defaults value of "all"

It was set that way because that’s the style Airbnb uses, and continues to use.

I certainly suggest setting it to “all” yourself, but unless Airbnb’s internal style has changed, this rule’s setting won’t either.

richthegeek

comment created time in a day

issue closedairbnb/javascript

Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x.

Unable to install packages using command npx install-peerdeps --dev eslint-config-airbnb. While running getting following error 👍 npm WARN deprecated mkdirp@0.5.3: Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)

closed time in a day

saurav2501

issue commentairbnb/javascript

Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x.

That’s just a warning, and one that can be forever ignored. It shouldn’t interfere with installations.

saurav2501

comment created time in a day

issue commentnodejs/help

Using `__proto__` in object literals

@lukastaegert note that that’s about removing the accessor property on Object.protoype, the syntax in object literals has no security issues and i don’t think anyone has attempted to remove it.

vsemozhetbyt

comment created time in a day

issue commentnpm/cli

[BUG] Unexpected token = in JSON at position 291227

Looks like maybe your package.json has git diff conflict markers in it?

micahlt

comment created time in a day

pull request commentnpm/rfcs

RFC for check engines requirements on every install

Ah, then that sounds more like a bug then a new feature that requires an rfc :-) when that config flag is set, i would expect the install to check engines with or without a lockfile.

markablov

comment created time in a day

issue commentpreactjs/enzyme-adapter-preact-pure

Move to enzyme org?

Sounds good; let me know if anything changes.

ljharb

comment created time in a day

issue commentnodejs/help

Using `__proto__` in object literals

To be clear; I’m not advocating for deprecating proto support in object literals; the discussion there is about the legacy ways to define getters and setters.

It would break tons of code if node ever removed it, and i doubt there’s a huge performance impact any more from using 5-10 year old syntax.

vsemozhetbyt

comment created time in a day

issue commentes-shims/AggregateError

'TypeError: "prototype" is read-only' on import in Firefox 79

I'll get a patch release out tomorrow. (regardless, if you really only need to install the shim, I suggest you do require('es-aggregate-error/auto') for a smaller bundle size)

tstehr

comment created time in 2 days

delete branch es-shims/AggregateError

delete branch : travis

delete time in 2 days

push eventes-shims/AggregateError

Jordan Harband

commit sha 6b0166b4feb66521e37e3b6025636a1436a3ca6e

[Fix] use `Object.defineProperty` instead of assignment to set the entry point `.prototype` Fixes #12.

view details

push time in 2 days

issue closedes-shims/AggregateError

'TypeError: "prototype" is read-only' on import in Firefox 79

When importing the polyfill in Firefox 79, the following error is thrown:

Uncaught TypeError: "prototype" is read-only
<anonymous>   repro-firefox-es-aggregate-error/dist/main.js:1
e             repro-firefox-es-aggregate-error/dist/main.js:1
<anonymous>   repro-firefox-es-aggregate-error/dist/main.js:1
e             repro-firefox-es-aggregate-error/dist/main.js:1
<anonymous>   repro-firefox-es-aggregate-error/dist/main.js:1
<anonymous>   repro-firefox-es-aggregate-error/dist/main.js:1

This seems to be related that from version 79 Firefox natively supports AggregateError. I've built a simple test case that reproduces the problem.

For now, a workaround is to only require the shim if it is actually needed:

if (!window.AggregateError) {
  require('es-aggregate-error').shim();
}

closed time in 2 days

tstehr

create barnches-shims/AggregateError

branch : travis

created branch time in 2 days

issue commentes-shims/AggregateError

'TypeError: "prototype" is read-only' on import in Firefox 79

Thanks for the report! Looking into it.

tstehr

comment created time in 2 days

issue commentjsx-eslint/eslint-plugin-jsx-a11y

New rule proposal around SVGs

These seem reasonable to me; @jessebeach, thoughts?

ematipico

comment created time in 2 days

pull request commentnpm/rfcs

RFC for check engines requirements on every install

You can enable this with --engines-strict, but this should not be on by default. "engines" is purely advisory and should never fail an install.

markablov

comment created time in 2 days

issue commentyannickcr/eslint-plugin-react

TypeError: Cannot read property 'callee' of null

@yankri what version of eslint and eslint-plugin-react do you have installed?

yankri

comment created time in 2 days

issue commentbenmosher/eslint-plugin-import

import/export - Multiple exports triggered when duplication isn't relevant

@lifeiscontent no; nobody's sent a PR yet and I haven't had the time. One would be welcome :-)

tomprats

comment created time in 2 days

push eventtc39/ecma262

bterlson

commit sha bdb1580ecc5291b53d63bb13638a2513411de637

Update gh-pages [skip ci]

view details

push time in 2 days

PR merged tc39/ecma262

Layering: Refine execution context requirements for Jobs editorial change layering spec bug

Closes #1930

This PR intentionally leaves the actual steps to ensure there's a usable execution context implementation/host-defined.

My philosophy here is to be as loose as we can be without tripping assertions.

Some nuances:

  • The choice of Realm is loosely constrained, just that it's non-null. The particular Realm only matters when a Job schedules a non-user function to run. If the Job runs a user function, calling that function will push a new execution context with that function's Realm.
  • The active script or module could be null. The requirement is that Jobs that evaluate user code should propagate the active script at the queueing time to the time when the Job is run. I don't know any real world examples where we must propagate forward a null active script, but I don't see any reasons in allowing that possibility to be conformant.
+35 -10

9 comments

1 changed file

syg

pr closed time in 2 days

push eventljharb/ecma262

Shu-yu Guo

commit sha a59a820d309b77177defe7f89be1370e702c54c8

Layering: Refine execution context requirements for Jobs (#1984) Closes #1930.

view details

push time in 2 days

push eventtc39/ecma262

Shu-yu Guo

commit sha a59a820d309b77177defe7f89be1370e702c54c8

Layering: Refine execution context requirements for Jobs (#1984) Closes #1930.

view details

push time in 2 days

issue closedtc39/ecma262

Jobs underspecified

Currently:

  • At some future point in time, when there is no running execution context and the execution context stack is empty, the implementation must:
    1. Push an execution context onto the execution context stack.
    2. Perform any implementation-defined preparation steps.
    3. Call the abstract closure.
    4. Perform any implementation-defined cleanup steps.
    5. Pop the previously-pushed execution context from the execution context stack.

The problem here is that we are missing the normative requirements for how the execution context should be set up. At the very least, the [[Realm]] slot of the new execution context needs to be set to the [[Realm]] slot of the execution context that was active when the job was queued. [[ScriptOrModule]] may also need to be set but I'm not 100% sure about it.

closed time in 2 days

devsnek
more