profile
viewpoint
Joe Lencioni lencioni Airbnb Northfield, Minnesota, USA Web infrastructure at @airbnb

Khan/aphrodite 5254

Framework-agnostic CSS-in-JS with support for server-side rendering, browser prefixing, and minimum CSS generation

civiccc/react-waypoint 3900

A React component to execute a function whenever you scroll to an element.

cpojer/js-codemod 1106

Codemod scripts to transform code to next generation JS

Galooshi/import-js 518

A tool to simplify importing JS modules

airbnb/dynein 357

Airbnb's Open-source Distributed Delayed Job Queueing System

civiccc/react-simple-pie-chart 62

Simple pie chart React component

happo/lcs-image-diff 7

A JavaScript library to diff two images. Uses the LCS algorithm to allow content to shift.

lencioni/agent_orange 1

Parse and process User Agents like a secret one

lencioni/ama 1

Ask me anything!

pull request commentairbnb/lottie-web

Fix opencollective links in readme

It looks like this was added in https://github.com/airbnb/lottie-web/pull/2098

FYI @monkeywithacupcake

lencioni

comment created time in a day

delete branch airbnb/lottie-web

delete branch : opencollective-links

delete time in a day

push eventairbnb/lottie-web

Joe Lencioni

commit sha da437ecdd31cb93f030de8ccbc3182a19e79e54b

Fix opencollective links in readme These should all point to opencollective.com/lottie and not opencollective.com/lottie-web, which is currently controlled by a security researcher.

view details

Joe Lencioni

commit sha 9079fcccf7420cca5c175d093441bc9483ad837c

Merge pull request #2689 from airbnb/opencollective-links Fix opencollective links in readme

view details

push time in a day

PR merged airbnb/lottie-web

Fix opencollective links in readme

These should all point to opencollective.com/lottie and not opencollective.com/lottie-web, which is currently controlled by a security researcher.

+15 -15

0 comment

1 changed file

lencioni

pr closed time in a day

create barnchairbnb/lottie-web

branch : opencollective-links

created branch time in a day

PR opened airbnb/lottie-web

Fix opencollective links in readme

These should all point to opencollective.com/lottie and not opencollective.com/lottie-web, which is currently controlled by a security researcher.

+15 -15

0 comment

1 changed file

pr created time in a day

startedcentury-arcade/xd

started time in 12 days

push eventsds/scss-lint

Anthony Ryan

commit sha 5c2df06b9bc2372c6d7e6def377af04e0625c83a

Add text-underline-offset as a valid property (#992)

view details

push time in 13 days

PR merged sds/scss-lint

Add text-underline-offset as a valid property

Recently started experimenting with this.

MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/text-underline-offset Caniuse: https://caniuse.com/mdn-css_properties_text-underline-offset

+1 -0

0 comment

1 changed file

anthonyryan1

pr closed time in 13 days

PullRequestReviewEvent

startedds300/patch-package

started time in 14 days

delete branch lencioni/eslint-plugin-import

delete branch : no-extraneous-dependencies-failing-test

delete time in 14 days

PR opened import-js/eslint-plugin-import

Add failing test for no-extraneous-dependencies

While writing imports in VSCode recently, I started to get errors throwm from eslint that appear to originate from eslint-plugin-import.

Here's the strack trace from the output panel:

[Error - 3:52:43 PM] TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined
    at validateString (internal/validators.js:124:11)
    at isAbsolute (path.js:1029:5)
    at isAbsolute (/path/to/repo/node_modules/eslint-plugin-import/src/core/importType.js:17:10)
    at typeTest (/path/to/repo/node_modules/eslint-plugin-import/src/core/importType.js:92:7)
    at resolveImportType (/path/to/repo/node_modules/eslint-plugin-import/src/core/importType.js:105:10)
    at reportIfMissing (/path/to/repo/node_modules/eslint-plugin-import/src/rules/no-extraneous-dependencies.js:170:7)
    at commonjs (/path/to/repo/node_modules/eslint-plugin-import/src/rules/no-extraneous-dependencies.js:267:7)
    at checkSourceValue (/path/to/repo/node_modules/eslint-module-utils/moduleVisitor.js:29:5)
    at checkSource (/path/to/repo/node_modules/eslint-module-utils/moduleVisitor.js:34:5)
    at /path/to/repo/node_modules/eslint/lib/linter/safe-emitter.js:45:58

I am able to trigger this consistently when writing an import, before I start the open quote, like this:

import foo from

I found https://github.com/import-js/eslint-plugin-import/issues/1931 which pointed at a problem in the resolvers causing this problem. We do use some custom resolvers with this plugin, so I tried disabling that but the problem persisted.

Thankfully, I was able to reproduce this error in the test suite.

It would be good if this plugin handled this scenario gracefully instead of throwing an error.

+6 -0

0 comment

1 changed file

pr created time in 15 days

create barnchlencioni/eslint-plugin-import

branch : main

created branch time in 15 days

startedlogseq/logseq

started time in 20 days

issue commentevanw/esbuild

Minifier results in "TypeError: Cannot convert undefined or null to object" error

I've done some more digging and I'm not sure if this is going to be terribly helpful but I wanted to record what I've found in case it helps someone else searching. Feel free to close out this issue.

I have discovered that the problem was triggered by configuring the esbuild-loader minifier plugin like this:

new ESBuildMinifyPlugin({
  target: 'es2015',
})

When I wrote this, I had assumed that the target option would work like terser's ecma option, but unexpectedly, esbuild-loader's ESBuildMinifyPlugin will actually just pass this on down to esbuild which makes it compile the code down to that target. This is what was compiling the async/await code to generators.

I fixed this all by changing the configuration to:

new ESBuildMinifyPlugin({
  minify: true,
})

I attempted to put together a minimal repro case by writing some simple async/await code and then building it like this:

npx esbuild --target=es2015 --minify index.js

This did end up compiling to generators, but executing the code did not throw the same error.

I'm not planning to dig anymore into this, so hopefully this helps a future explorer!

lencioni

comment created time in 21 days

issue openedevanw/esbuild

Minifier results in "TypeError: Cannot convert undefined or null to object" error

I am using esbuild's minifier via esbuild-loader in some webpack config for a storybook build, and I have found that on some code it ends up producing output that has this runtime error:

TypeError: Cannot convert undefined or null to object
    at hasOwnProperty (<anonymous>)
    ... (unintelligible bits of stack trace)
    at i.unstable_runWithPriority (file://....)
    ... (more unintelligible bits of stack trace)

The unstable_runWithPriority I believe indicates that this runtime error was triggered during React rendering, in case that's helpful in anyway.

I've dug through some of the minified code in the stack trace, but was unable to find the hasOwnProperty that's listed here. One possible clue is that the function at the top of the stack trace seems to be a generator. I was able to trace it back to the original source code and it looks like this function was originally an async function that appears to have been compiled down to a generator by Babel.

If I disable esbuild-loader's minifier and use the default terser, this error does not happen. This also does not happen when not using a minifier at all.

created time in 21 days

pull request commentbazelbuild/bazel-skylib

copy_file allows directories as well

@brandjon @tetromino do you have any feedback on this PR? I believe this will help unblock using rules_nodejs with remote build execution, which would be really nice to see!

alexeagle

comment created time in 22 days

push eventairbnb/javascript

Jordan Harband

commit sha ea5b991a4f67264a7d3a2d783de67b29450f2779

[Tests] migrate tests to Github Actions

view details

Joe Lencioni

commit sha 8aec65a4d385c49550bf7e53a18044d8f09d5c06

Merge pull request #2491 from airbnb/travis [Tests] migrate tests to Github Actions

view details

push time in a month

delete branch airbnb/javascript

delete branch : travis

delete time in a month

PR merged airbnb/javascript

Reviewers
[Tests] migrate tests to Github Actions
+208 -108

1 comment

5 changed files

ljharb

pr closed time in a month

PullRequestReviewEvent

issue openedasvetliakov/vscode-neovim

`undefined` error when using `gq` to format

vscode v1.61.2 vscode-neovim v0.0.82

I have encountered what seems to be a bug when using gq to format text. My workflow is to start visual line mode (shift+V), highlight a few lines, and then format (gq).

This ends up formatting the code in unexpected ways and often ends up removing lines that appear after the visual block selection. I also get an error popup that just has a timestamp and undefined in it:

image

The output panel for the extension is empty.

I do see something in Log (Window) when this happens:

[2021-11-03 09:20:27.099] [renderer1] [error] An unknown error occurred. Please consult the log for more details.

created time in a month

issue commentds300/patch-package

Add support for yarn-path property

Supporting yarn-path would be great! Today, this will fail for me like:

nternal/modules/cjs/loader.js:983
  throw err;
  ^

Error: Cannot find module '/private/var/folders/xx/x1wk74qd7pl6zh7y_0x3lqs00000gn/T/tmp-37785Pjy7IcDusgFR/script/my-yarn.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)
    at Function.Module._load (internal/modules/cjs/loader.js:862:27)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:74:12)
    at internal/main/run_main_module.js:18:47 {
  code: 'MODULE_NOT_FOUND',
  requireStack: []
}

{
  status: 1,
  signal: null,
  output: [
    null,
    <Buffer >,
    <Buffer 69 6e 74 65 72 6e 61 6c 2f 6d 6f 64 75 6c 65 73 2f 63 6a 73 2f 6c 6f 61 64 65 72 2e 6a 73 3a 39 38 33 0a 20 20 74 68 72 6f 77 20 65 72 72 3b 0a 20 20 ... 469 more bytes>
  ],
  pid: 37788,
  stdout: <Buffer >,
  stderr: <Buffer 69 6e 74 65 72 6e 61 6c 2f 6d 6f 64 75 6c 65 73 2f 63 6a 73 2f 6c 6f 61 64 65 72 2e 6a 73 3a 39 38 33 0a 20 20 74 68 72 6f 77 20 65 72 72 3b 0a 20 20 ... 469 more bytes>,
  error: null
}
markjm

comment created time in a month

Pull request review commenthappo/lcs-image-diff

Conditionally pad images of different height

 function applySolution(solution, a, b) {   const aLength = a.length;   const bLength = b.length;   const shorterArray = aLength > bLength ? b : a;-  shorterArray.splice(0, 0, ...placeholders(Math.abs(aLength - bLength)));+  if (a[0] === b[0]) {

It might be a good idea to add a code comment that mentions that this check is just a rule of thumb.

trotzig

comment created time in a month

PullRequestReviewEvent

pull request commentlifeomic/axios-fetch

Emit type declarations

Thank you!

DavidTanner

comment created time in a month

PR opened buildkite/emojis

Add :vscode: emoji

https://code.visualstudio.com/

+7 -0

0 comment

3 changed files

pr created time in a month

create barnchlencioni/emojis

branch : vscode

created branch time in a month

more