profile
viewpoint
Benjamin E. Coe bcoe Google Oakland https://twitter.com/benjamincoe Co-founded Attachments.me, early employee at npm Inc. Maintains yargs, Istanbul, contributes to Node.js. Currently cloud at Google.

bcoe/awesome-cross-platform-nodejs 880

:two_men_holding_hands: A curated list of awesome developer tools for writing cross-platform Node.js code

bcoe/Adventures-in-Document-Thumbnailing 14

Some thoughts I have about creating thumbnails of common document types.

bcoe/ansible-nagios-config 10

Ansible role for configuring Nagios 4.

bcoe/apidoc-md 9

Generate API documentation for your README from comments in your source-code

bcoe/AFHTTPRequestOperationManager-Timeout 6

Add timeout functionality to AFHTTPRequestOperationManager with Category

bcoe/any-path 4

:rage2: make the keys on an object path.sep agnostic.

AkashaThorne/ravejs 3

RaveJS Beginnings

bcoe/assertassert 3

:trollface: for when you can't decide on an assertion library

bcoe/ansible-pg-wale 2

Configure Heroku's WAL-E for Postgres

ashwinGokhale/IstanbulSplashPage 1

Splash page for Istanbul

issue commentyargs/yargs

Flaky output from `--help`

@AndrewFinlay why don't we close this, and open an issue on nyc, we might in turn eventually open an issue on Node.js itself.

AndrewFinlay

comment created time in an hour

issue commentyargs/yargs

Flaky output from `--help`

@AndrewFinlay unfortunately there are 1000s of programs in the wild that assume --help will terminate an application before the next line of code is reached.

If you structure your program appropriately .exitProcess(false), I suppose, might help make sure that the whole buffer is drained before the application exits, but I don't think this is something we can switch to being the default behavior.

I'm actually wondering out loud, is the problem that we should be calling set-blocking in nyc? This bug seems to come about when draining stderr/stdout is allowed to be non-blocking.

AndrewFinlay

comment created time in an hour

PullRequestReviewEvent

create barnchbcoe/conventional-hud

branch : noodling-on-api

created branch time in 14 hours

create barnchbcoe/conventional-hud

branch : master

created branch time in 15 hours

created repositorybcoe/conventional-hud

Generate a CHANGELOG for GitHub repositories that follow conventionalcommits.org

created time in 15 hours

push eventbcoe/redwood

bcoe

commit sha bf9808263b7aa806bf7124b7b2aad0b4047a166b

docs: remove incorrect comments

view details

push time in 2 days

push eventbcoe/redwood

bcoe

commit sha fd976642401f181f2ba8d43d73d37e4fd5e7fe06

chore: add additional config files

view details

push time in 2 days

push eventbcoe/redwood

bcoe

commit sha a55b2fddb661b1c8fe840a24d193e73a66eb3599

chore: revert changes to i18n file

view details

push time in 2 days

push eventbcoe/redwood

bcoe

commit sha 792d89f1e6089086fdecffbb6dc38bc80e787299

chore: switch to lodash.templates

view details

push time in 2 days

PR opened redwoodjs/redwood

feat(gcp): adding support for GCP project generation

Adding setup and deploy functionality for firebase hosting for web, with Cloud Run for API.

+190 -6

0 comment

7 changed files

pr created time in 2 days

create barnchbcoe/redwood

branch : setup-gcp

created branch time in 2 days

fork bcoe/redwood

Bringing full-stack to the Jamstack.

https://redwoodjs.com

fork in 2 days

pull request commentnodejs/node

Make recursive rmdir more strict

I did not want to suggest that I was being dismissed

@CxRes 👍

I strongly encourage the @nodejs/tsc to consider your point of view, which you've summarized well.

What's important to me is that we take steps towards removing the --experimental flag from some form of the recursive behavior.

iansu

comment created time in 2 days

pull request commentnodejs/node

Make recursive rmdir more strict

I agree with this (with a flag). But I want the default behavior to be tolerant on ENOENT (#35250 (comment)). I think pragmatism is mostly important in this case.

@gengjiawen I don't feel strongly about default behavior. Where I do feel strongly, is that when force=false we should throw on both ENOENT and ENODIR.

This would make it clear that force=true behaves like rm -rf, and force=false is strict behavior (similar to .NET).

The reason for my proposal was in #35171 (based on what seemed like the consensus/compromise in that thread) was to keep rmdir as truly rmdir (for deleting directories only) and then add rm to provide rimraf (rm as the universal remove function). Of course, this is breaking today but leads to more intuitive semantics.

@CxRes you've done a good job of expressing your point of view, and I haven't gotten the impression that it's being dismissed.

Node.js collaborators such as @gengjiawen are making the case that they would rather continue to see this functionality be part of rmdir -- which was the decision that the majority of Node.js collaborators made when this feature was initially added.


I am a -1 on a discussion about introducing an additional recursive method.

And I am deferring the decision about default behavior of rmdir to the TSC.

iansu

comment created time in 2 days

pull request commentnodejs/node

Make recursive rmdir more strict

If we are changing our minds and changing rmdir itself then the flag should be called force (not strict) for the sake of consistency!!!! And to keep things backwards compatible it has to be true by default (Though I sympathize with @Trott that I do not like this default).

@ruyadorno @CxRes force works for me.

How would you (and do you plan to?) expose all the features of POSIX rm in node? My sense is that it has to be done. Do you plan to this within rmdir? or is there a plan for a rm equivalent function as well? Because it has implications here!!!

I'd like to suggest we call this out of scope for the current goal, which is getting rmdir, recursive over the finish line.

This won't prevent us from adding additional APIs in the future.

iansu

comment created time in 3 days

push eventcodyoss/release-please

bcoe

commit sha 94e80cdea8fa63d211179e6161bfec5a7c9dae05

chore: use resolves

view details

push time in 3 days

push eventcodyoss/release-please

bcoe

commit sha 7a8794279a1a7dd4f61c5f268dbecb9d8d7e5db3

test: thought about test refactor

view details

push time in 3 days

create barnchgoogleapis/release-please

branch : apiary-support

created branch time in 3 days

PR opened googleapis/api-linter

build: add config to turn off label-sync

see: https://github.com/googleapis/repo-automation-bots/pull/979

+1 -0

0 comment

1 changed file

pr created time in 3 days

create barnchbcoe/api-linter

branch : turn-off-label-sync

created branch time in 3 days

fork bcoe/api-linter

A linter for APIs defined in protocol buffers.

fork in 3 days

delete branch googleapis/repo-automation-bots

delete branch : allow-repo-to-be-ignored

delete time in 3 days

pull request commentprotobufjs/protobuf.js

Move command line tool to a new package named protobufjs-cli

Hey @taylorcode, just a gentle nudge.

We'd love to move towards the next major release of protobuf.js, and we see splitting out the CLI as its own module as one of the significant changes we'd like to make.

Any chance you could work with @gcangussu to merge his fix for tests, and then we can get this over the finish line.

taylorcode

comment created time in 3 days

push eventgoogleapis/repo-automation-bots

Benjamin E. Coe

commit sha 246e6fc858c4d614ef5acfd44ab329bc09df21d5

feat(label-sync): allow a repo to be ignored (#979)

view details

push time in 3 days

PR merged googleapis/repo-automation-bots

feat(label-sync): allow a repo to be ignored cla: yes

This will allow api-linter to ignore our label sync logic.

CC: @lukesneeringer

+67 -2

1 comment

2 changed files

bcoe

pr closed time in 3 days

issue commentyargs/yargs

Confusing help message for arrays

@maclockard I've come to hate the default behavior of arrays, where it will consume everything following --arr a b c ..., as this creates ambiguities in the parser ... how do you use positionals in conjunctions with arrays?

I prefer to define arrays as follows my-app.js --arr 1 --arr 2 --arr 3, I like that this is more explicit. It's difficult to document this advice in a way that can be copy pasted from the help output however.

maclockard

comment created time in 3 days

PR opened googleapis/repo-automation-bots

feat(label-sync): allow a repo to be ignored

This will allow api-linter to ignore our label sync logic.

CC: @lukesneeringer

+67 -2

0 comment

2 changed files

pr created time in 3 days

create barnchgoogleapis/repo-automation-bots

branch : allow-repo-to-be-ignored

created branch time in 3 days

pull request commentnodejs/node

Make recursive rmdir more strict

@nodejs/tsc I believe we should put this to a vote, to unblock getting rmdir/recursive out of experimental. I believe we've narrowed things down to two options (both of which involve introducing a strict flag).

  1. default strict to false, which would have the behavior of rm -rf (this is the current implementation of rmdir/recursive. Setting strict to true would result in behavior that throws when given a file path, and when given a path that does not exist.
  2. default strict to true, therefore changing the current behavior to throw on file paths, and on missing paths. Setting strict to false would behave like the implementation today.

CC: @Trott

iansu

comment created time in 3 days

issue commentconventional-commits/conventionalcommits.org

October Meeting

As a potential date, I'd like to suggest, Friday, October 9th, 10AM - 11AM PDT.

bcoe

comment created time in 3 days

pull request commentnodejs/node

Make recursive rmdir more strict

@CxRes @Trott @gengjiawen

While it is important to find the best solution, I too wish this is not dragged out ad infinitum.

It feels like we're having trouble reaching a compromise here, I know it's not the ideal we were picturing, but I'm thinking perhaps we do go with @Trott's suggestion of a strict option, which if wet to true, has the behavior in this PR.

Then we update #35171 accordingly to reflect this.

iansu

comment created time in 3 days

issue closedyargs/yargs

Support for a "finally" handler to be run after the command handler

When a command is specified through the command API or commandDir API, support a finally handler that runs at the end of the command handler both on success and failure.

Example - If there's an informational banner (new update to the tool being used) that needs to be displayed at the end of some or every command.

closed time in 4 days

nija-at

issue commentyargs/yargs

Support for a "finally" handler to be run after the command handler

@nija-at there is now an onFinishCommand, which I believe should have the behavior you were looking for.

Let me know if there are any issues.

nija-at

comment created time in 4 days

issue commentyargs/yargs

[q] How onFinishCommand works with commandDir

@SkeLLLa I've added the onFinishCommand to the API docs, should be working. Let us know if there are any bugs.

SkeLLLa

comment created time in 4 days

delete branch yargs/yargs

delete branch : on-finish

delete time in 4 days

push eventyargs/yargs

Benjamin E. Coe

commit sha 4e8008588c50e1ec82d2d20d6a1a4a4db5325ac5

docs: document onFinishCommand option (#1769)

view details

push time in 4 days

PR merged yargs/yargs

docs: document onFinishCommand option

onFinishCommand was not documented in api docs.

Fixes #1658, #1344

+20 -4

0 comment

2 changed files

bcoe

pr closed time in 4 days

issue closedyargs/yargs

[q] How onFinishCommand works with commandDir

Does onFinishCommand work with commandDir? And if it does, then how it should be configured?

closed time in 4 days

SkeLLLa

PR opened yargs/yargs

docs: document onFinishCommand option

onFinishCommand was not documented in api docs.

Fixes #1658, #1344

+20 -4

0 comment

2 changed files

pr created time in 4 days

push eventyargs/yargs

bcoe

commit sha 65ca93b8a846a4be90d168590ba0562d7cf4224c

docs: fix ordering

view details

push time in 4 days

create barnchyargs/yargs

branch : on-finish

created branch time in 4 days

push eventyargs/yargs

bcoe

commit sha e3adb9c00bd7cbc29497a473fe36564a762a7fd6

docs: remoce screen from repo

view details

push time in 4 days

push eventyargs/yargs

bcoe

commit sha d0ba0f8cc8c0cd9be9481ef898375362ba34f5e5

chore: screen shot finally drove me up wall

view details

push time in 4 days

PR opened yargs/yargs

feat: expose hideBin helper for CJS

Exposes the hideBin helper for CJS, so that we can standardize the documentation for ESM, CJS, and Deno.

Updates documentation to suggest this approach by default.

Fixes #1648

+35 -12

0 comment

6 changed files

pr created time in 4 days

create barnchyargs/yargs

branch : expose-hide-bin

created branch time in 4 days

issue closedyargs/yargs

Async handlers for CLIs

#I'm using parse to build a CLI app using readline.

My commands execute asynchronously. Is it possible to configure the handler to take a callback (or ideally handle a returned promise)?

I think the simplest way to achieve this would be to pass any value returned by a command handler to the parse method. (So that, for example, the handler can return a promise).

My current workaround is to set a value within yars E.g.,

  let myYargs = yargs.command({
    command: 'run',
    handler: yargs => {
      yargs._result = new Promise((resolve, reject) => {
        setTimeout(() => {
          console.log('OK');
          resolve();
        }, 1000);
      });
    }
  });
  
  let rl = readline.createInterface({ ... });

  rl.prompt();
  rl.on('line', (input) => {
    myYargs.parse(['run'], (err, argv, output) => {
      Promise.resolve(argv._result).then(() => {
        rl.prompt();  // Get next line.
      });
    });
  });

closed time in 4 days

richburdon

issue closedyargs/yargs

Get non standard options

Hello,

Is there a way to get an array of the non-standard options? By this I mean any parameter set the option function and similars, excluding the usual: help, version and $0.

Also I noticed that when creating an option which has a hyphen, the argv object will have it replaced by the name in camel case, e.g:

const flags = yargs
  .help('help')
  .version(() => require('../package').version)
  .showHelpOnFail(false, 'Specify --help for available options')
  .wrap(yargs.terminalWidth())
  .usage('Usage: $0 <url>')
  .command('url', 'URL to test')
  .option('output-path', {
    'describe': 'The file path to output the results',
    'type': 'string',
    'default': '',
    'group': 'Output:'
  });
console.log(flags);

output:

$ node bin/cli.js something
> { _: [ 'something' ],
   help: false,
   version: false,
   'output-path': '',
   outputPath: '',
   '$0': 'bin/cli.js' }

Is this intended, in the context of the original question how would that work?

Edit: I have found how to remove the camel cased option, only needed to add the following to my package.json:

...
"yargs": {
    "camel-case-expansion": false
  }

Thank you for all your work :)

closed time in 4 days

pedro93

issue commentyargs/yargs

Get non standard options

@pedro93 there's a good chance you've moved on from this specific problem now, so I'm going to go ahead and close this.

I wanted to also point you towards parserConfiguration(), which makes it even easier to turn off settings like camel-case-expansion.

pedro93

comment created time in 4 days

issue commentyargs/yargs-parser

Preserve casing with ENV

@AnthonyWC there is not an option for this. I could imagine us adding this as a configuration option to yargs-parser.

AnthonyWC

comment created time in 4 days

issue commentyargs/yargs

Confusing help message for arrays

@maclockard if we were to use:

[array] [default: "default-val"] I would assume that the value is not an array, but a single string.

Curious if you had a recommendation for what might be less confusing.

maclockard

comment created time in 4 days

issue commentyargs/yargs

Promote the non-singleton interface, require('yargs/yargs'), as the default

@roryokane @mleguen I agree that we should push folks towards the non-singleton interface, this is the default for the new ESM support we recently added to yargs:

import yargs from 'yargs'
import { hideBin } from 'yargs/helpers'

yargs(hideBin(process.argv))
  .command('curl <url>', 'fetch the contents of the URL', () => {}, (argv) => {
    console.info(argv)
  })
  .demandCommand(1)
  .argv

I would be quite open to an update to docs that demonstrated the use of yargs() rather than yargs..

Any interested in contributing?

roryokane

comment created time in 4 days

issue closedyargs/yargs

Can I make the following command with Yargs?

Look at https://docs.docker.com/compose/reference/overview/

More specifically:

Usage: docker-compose [-f <arg>...] [options] [COMMAND] [ARGS...] docker-compose -h|--help

Options: -f, --file FILE Specify an alternate compose file (default: docker-compose.yml) -p, --project-name NAME Specify an alternate project name (default: directory name) --verbose Show more output --log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) --no-ansi Do not print ANSI control characters -v, --version Print version and exit -H, --host HOST Daemon socket to connect to

--tls Use TLS; implied by --tlsverify --tlscacert CA_PATH Trust certs signed only by this CA --tlscert CLIENT_CERT_PATH Path to TLS certificate file --tlskey TLS_KEY_PATH Path to TLS key file --tlsverify Use TLS and verify the remote --skip-hostname-check Don't check the daemon's hostname against the name specified in the client certificate --project-directory PATH Specify an alternate working directory (default: the path of the Compose file) --compatibility If set, Compose will attempt to convert deploy keys in v3 files to their non-Swarm equivalent

Commands: build Build or rebuild services bundle Generate a Docker bundle from the Compose file config Validate and view the Compose file create Create services down Stop and remove containers, networks, images, and volumes events Receive real time events from containers exec Execute a command in a running container help Get help on a command images List images kill Kill containers logs View output from containers pause Pause services port Print the public port for a port binding ps List containers pull Pull service images push Push service images restart Restart services rm Remove stopped containers run Run a one-off command scale Set number of containers for a service start Start services stop Stop services top Display the running processes unpause Unpause services up Create and start containers version Show the Docker-Compose version information

Can I immitate that form of command structure with Yargs? If not, what is the closest I can get to it?

closed time in 4 days

ffMathy

issue commentyargs/yargs

Can I make the following command with Yargs?

Hey @ffMathy if you bump into any issues with the command interface, let's open some ticket for specific problems.

I'm open to specific issues/incremental work to gradually improve the output of yargs, but it's not a goal of the project to provide a level of customization for help output, that would allow you to match docker-compose exactly.

ffMathy

comment created time in 4 days

issue commentyargs/yargs

Can't override --version

@jtbennett I tried to reproduce your issue, and I think I'm misunderstanding the problem. I ran this code:

const yargs = require('yargs')
const argv = yargs
  .version(false)
  .options({ version: { string: true, alias: "v" } }).argv
console.info(argv)

Without passing any arguments, the output is:

{ _: [], '$0': 'foo.cjs' }

Here's the output setting --version:

bencoe-macbookpro3:test-yargs bencoe$ node foo.cjs --version

{ _: [], version: '', v: '', '$0': 'foo.cjs' }

bencoe-macbookpro3:test-yargs bencoe$ node foo.cjs --version hello

{ _: [], version: 'hello', v: 'hello', '$0': 'foo.cjs' }
jtbennett

comment created time in 4 days

issue commentyargs/yargs

Combine same name command

@vipzhicheng so, you'd prefer not to have a warning, but you want only the last command registered to show up in help, is what I'm understanding 👍

vipzhicheng

comment created time in 4 days

pull request commentnodejs/node

Make recursive rmdir more strict

I'd prefer that we made the default behavior stricter and introduce a loose option.

I too would prefer the stricter behavior (throw on missing paths, and on attempt to remove file).

@gengjiawen what if we compromised by adding a force option. This would fit the rm -rf analogy well:

  • rmdir(path): removes an empty directory, fails if it contains folders or files.
  • rmdir(path, {recursive: true}: removes files and folders from folder recursively, fails if path is file, or if path does not exist.
  • rmdir(path, {recursive: true, force: true}: removes files and folders, deletes file if provided as path, does not fail if path does not exist.

I would love for us to figure out a compromise that works for folks, my fear is that we'll continue keeping rmdir/recursive in an experimental state, which is ultimately worse for the user base.

iansu

comment created time in 4 days

pull request commentnodejs/node

Make recursive rmdir more strict

@Trott to clarify, it are you advocating we'd keep the existing rm -rf behavior, and introduce a strict option. Or that we made the default behavior stricter, and introduce a loose option.

iansu

comment created time in 4 days

pull request commentgoogleapis/nodejs-automl

[CHANGE ME] Re-generated to pick up changes from self.

we'll also need to update this repo to stop tracking that samples/package.json in synth.metadata.

yoshi-automation

comment created time in 4 days

pull request commentgoogleapis/nodejs-automl

[CHANGE ME] Re-generated to pick up changes from self.

@JustinBeckwith we should make it so that when we run the linter during nightly generation, we only lint the auto generated code, so anything in the test/ or src/ folder. I was picturing perhaps we figure out a way to vary this with an environment variable that our .eslintrc.json, which we make .eslintrc.js.

yoshi-automation

comment created time in 4 days

PR closed googleapis/nodejs-compute

chore(deps): update dependency prettier to v2 api: compute cla: yes

This PR contains the following updates:

Package Type Update Change
prettier (source) devDependencies major ^1.13.5 -> ^2.0.0

Release Notes

<details> <summary>prettier/prettier</summary>

v2.1.2

Compare Source

diff

Fix formatting for directives in fields (#​9116 by @​sosukesuzuki)

<!-- prettier-ignore -->


v2.1.1

Compare Source

diff

Fix format on html with frontMatter (#​9043 by @​fisker)

<!-- prettier-ignore -->

<!-- Input -->
---
layout: foo
---

Test <a
href="https://prettier.io">abc</a>.

<!-- Prettier stable -->
TypeError: Cannot read property 'end' of undefined
  ...

<!-- Prettier master -->
---
layout: foo
---

Test <a href="https://prettier.io">abc</a>.
Fix broken format for ...infer T (#​9044 by @​fisker)

<!-- prettier-ignore -->

// Input
type Tail<T extends any[]> = T extends [infer U, ...infer R] ? R : never;

// Prettier stable
type Tail<T extends any[]> = T extends [infer U, ...(infer R)] ? R : never;

// Prettier master
type Tail<T extends any[]> = T extends [infer U, ...infer R] ? R : never;
Fix format on style[lang="sass"] (#​9051 by @​fisker)

<!-- prettier-ignore -->

<!-- Input -->
<style lang="sass">
.hero
  @&#8203;include background-centered
</style>

<!-- Prettier stable -->
<style lang="sass">
.hero @&#8203;include background-centered;
</style>

<!-- Prettier master -->
<style lang="sass">
  .hero
    @&#8203;include background-centered
</style>
Fix self-closing blocks and blocks with src attribute format (#​9052, #​9055 by @​fisker)

<!-- prettier-ignore -->

<!-- Input -->
<custom lang="markdown" src="./foo.md"></custom>
<custom lang="markdown" src="./foo.md" />
<custom lang="markdown" />

<!-- Prettier stable -->
<custom lang="markdown" src="./foo.md">

</custom>
<custom lang="markdown" src="./foo.md"

/>
<custom lang="markdown"

/>

<!-- Prettier master -->
<custom lang="markdown" src="./foo.md"></custom>
<custom lang="markdown" src="./foo.md" />
<custom lang="markdown" />

v2.1.0

Compare Source

diff

🔗 Release Notes

v2.0.5

Compare Source

diff

Less: Fix formatting of :extend (#​7984 by @​fisker)

<!-- prettier-ignore -->

// Input
.class {
  &:extend(.some-class .some-other-class .some-very-loooooooooooooong-class all);
}

// Prettier 2.0.4
.class {
  &:extend(
    .some-class .some-other-class .some-very-loooooooooooooong-class all
  );
}

// Prettier 2.0.4 (Second format)
.class {
  &: extend(
    .some-class .some-other-class .some-very-loooooooooooooong-class all
  );
}

// Prettier 2.0.5
.class {
  &:extend(
    .some-class .some-other-class .some-very-loooooooooooooong-class all
  );
}
Editor integration: Use resolve if builtin require.resolve is overridden (#​8072 by @​fisker)

This fixes issues that the users of Atom and WebStorm faced with 2.0.4.

Prettier now switches to using the resolve module for resolving configuration files and plugins if it detects that require.resolve isn't Node's builtin function (doesn't support the second argument), which happens in environments like editor extensions. To force the fallback, set the PRETTIER_FALLBACK_RESOLVE environment variable to true.

v2.0.4

Compare Source

diff

Revert #​7869, "[TypeScript] format TSAsExpression with same logic as BinaryExpression" (#​7958)

v2.0.3

Compare Source

diff

JavaScript
Fix prettier-ignore inside JSX (#​7877 by @​fisker)

<!-- prettier-ignore -->

// Input
<div>
{
  /* prettier-ignore */
  x     ?   <Y/> : <Z/>
}
</div>;

// Prettier 2.0.2 (first output)
<div>
  {/* prettier-ignore */
  x     ?   <Y/> : <Z/>}
</div>;

// Prettier 2.0.2 (second output)
<div>{/* prettier-ignore */ x     ?   <Y/> : <Z/>}</div>;

// Prettier 2.0.3
<div>
  {
    /* prettier-ignore */
    x     ?   <Y/> : <Z/>
  }
</div>;
Fix regressions in styled-components template literals (#​7883 by @​thorn0)

<!-- prettier-ignore -->

// Input
const Icon = styled.div`
  background:   var(--${background});
  ${Link}:not(:first-child) {
      fill:    rebeccapurple;
  }
`;

// Prettier 2.0.2
const Icon = styled.div`
  background: var(-- ${background});
  ${Link}:not (:first-child) {
    fill: rebeccapurple;
  }
`;

// Prettier 2.0.3
const Icon = styled.div`
  background: var(--${background});
  ${Link}:not(:first-child) {
    fill: rebeccapurple;
  }
`;
Fix: line endings were not always converted properly in multiline strings and comments (#​7891 by @​sidharthv96)

<!-- prettier-ignore -->

// Input
export const IAmIncredibleLongFunctionName = IAmAnotherFunctionName(<CRLF>
  (_0: IAmIncredibleLongParameterType) => {<CRLF>
    setTimeout(() => {<CRLF>
      /*<CRLF>
        Multiline comment<CRLF>
        Multiline comment<CRLF>
        Multiline comment<CRLF>
      */<CRLF>
      console.log(<CRLF>
        "Multiline string\<CRLF>
         Multiline string\<CRLF>
         Multiline string"<CRLF>
      );<CRLF>
    });<CRLF>
  }<CRLF>
);<CRLF>

// Prettier 2.0.2
export const IAmIncredibleLongFunctionName = IAmAnotherFunctionName(<CRLF>
  (_0: IAmIncredibleLongParameterType) => {<CRLF>
    setTimeout(() => {<CRLF>
      /*<LF>
        Multiline comment<LF>
        Multiline comment<LF>
        Multiline comment<LF>
      */<CRLF>
      console.log(<CRLF>
        "Multiline string\<LF>
         Multiline string\<LF>
         Multiline string"<CRLF>
      );<CRLF>
    });<CRLF>
  }<CRLF>
);<CRLF>

// Prettier 2.0.3: same as input
Fix bug with holes in array literals (#​7911 by @​bakkot)

<!-- prettier-ignore -->

// Input
new Test()
  .test()
  .test([, 0])
  .test();

// Prettier 2.0.2
[error] in.js: TypeError: Cannot read property 'type' of null

// Prettier 2.0.3
new Test().test().test([, 0]).test();
TypeScript
Wrap TSAsExpression (#​7869 by @​sosukesuzuki)

<!-- prettier-ignore -->

// Input
const value = thisIsAnIdentifier as ThisIsAReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongInterface;

// Prettier 2.0.2
const value = thisIsAnIdentifier as ThisIsAReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongInterface;

// Prettier 2.0.3
const value =
  thisIsAnIdentifier as
  ThisIsAReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyReallyLongInterface;
Flow
Print dangling comments for inexact object type (#​7892 by @​sosukesuzuki)

<!-- prettier-ignore -->

// Input
type Foo = {
  // comment
  ...,
};

// Prettier 2.0.2
Error: Comment "comment" was not printed. Please report this error!

// Prettier 2.0.3
type Foo = {
  // comment
  ...,
};
Do not add comma for explicit inexact object with indexer property or no properties (#​7923 by @​DmitryGonchar)

<!-- prettier-ignore -->

// Input
type T = {
  [string]: number,
  ...,
}

type T = {
  // comment
  ...,
}

// Prettier 2.0.2
type T = {
  [string]: number,
  ...,
}

type T = {
  // comment
  ...,
}

// Prettier 2.0.3
type T = {
  [string]: number,
  ...
}

type T = {
  // comment
  ...
}
HTML
Fix printing of ignored empty inline elements (#​7867 by @​fisker)

<!-- prettier-ignore -->

<!-- Input-->
<!--prettier-ignore--><span></span>
<!--prettier-ignore--><span>_</span>

<!-- Prettier 2.0.2 (first output) -->
<!--prettier-ignore--><span
></span>
<!--prettier-ignore--><span>_</span>

<!-- Prettier 2.0.2 (second output) -->
<!--prettier-ignore--><span

></span>
<!--prettier-ignore--><span>_</span>

<!-- Prettier 2.0.3 -->
<!--prettier-ignore--><span></span>
<!--prettier-ignore--><span>_</span>
Format script and style inside tags with a colon in the name (#​7916 by @​fisker)

<!-- prettier-ignore -->

<!-- Input -->
<with:colon>
<script>function foo(){      return 1}</script>
<style>a         {color:         #f00}</style>
</with:colon>

<!-- Prettier 2.0.2 -->
<with:colon>
  <script>
    function foo(){ return 1}
  </script>
  <style>
    a {color: #f00}
  </style>
</with:colon>

<!-- Prettier 2.0.3 -->
<with:colon>
  <script>
    function foo() {
      return 1;
    }
  </script>
  <style>
    a {
      color: #f00;
    }
  </style>
</with:colon>
Other changes

v2.0.2

Compare Source

diff

2.0 regressions
JavaScript: Fix formatting of pseudo-elements and pseudo-classes in styled-components template literals (#​7842 by @​thorn0)

<!-- prettier-ignore -->

// Input
const Foo = styled.div`
  ${media.smallDown}::before {}
`;

// Prettier 2.0.0
const Foo = styled.div`
  ${media.smallDown}: : before{
  }
`;

// Prettier 2.0.2
const Foo = styled.div`
  ${media.smallDown}::before {
  }
`;
TypeScript: Avoid trailing commas on index signatures with only one parameter (#​7836 by @​bakkot)

TypeScript index signatures technically allow multiple parameters and trailing commas, but it's an error to have multiple parameters there, and Babel's TypeScript parser does not accept them. So Prettier now avoids putting a trailing comma there when you have only one parameter.

<!-- prettier-ignore -->

// Input
export type A = {
  a?: {
    [
      x: string
    ]: typeof SomeLongLongLongTypeName[keyof typeof SomeLongLongLongTypeName];
  } | null;
};

// Prettier 2.0.0
export type A = {
  a?: {
    [
      x: string,
    ]: typeof SomeLongLongLongTypeName[keyof typeof SomeLongLongLongTypeName];
  } | null;
};

// Prettier 2.0.2
export type A = {
  a?: {
    [
      x: string
    ]: typeof SomeLongLongLongTypeName[keyof typeof SomeLongLongLongTypeName];
  } | null;
};
Revert "markdown: fix redundant leading spaces in markdown list" (#​7847)

See #​7846

Other changes
TypeScript: Fix prettier-ignore in union types (#​7798 by @​thorn0)

<!-- prettier-ignore -->

// Input
export type a =
  // foo
  | foo1&foo2
  // prettier-ignore
  | bar1&bar2
  // baz
  | baz1&baz2;

// Prettier 2.0.0
export type a =
  // foo
  | foo1&foo2
    // prettier-ignore
  // prettier-ignore
  | (bar1 & bar2)
  // baz
  | (baz1 & baz2);

// Prettier 2.0.2
export type a =
  // foo
  | (foo1 & foo2)
  // prettier-ignore
  | bar1&bar2
  // baz
  | (baz1 & baz2);

v2.0.1

Compare Source

diff

API: Fix build script to not corrupt import-fresh module (#​7820 by @​thorn0)

v2.0.0

Compare Source

diff

🔗 Release Notes

</details>


Renovate configuration

:date: Schedule: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.

:recycle: Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: Ignore: Close this PR and you won't be reminded about this update again.


  • [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

This PR has been generated by WhiteSource Renovate. View repository job log here.

+1 -1

1 comment

1 changed file

renovate-bot

pr closed time in 4 days

delete branch googleapis/nodejs-compute

delete branch : fix-linting

delete time in 4 days

push eventgoogleapis/nodejs-compute

Benjamin E. Coe

commit sha a9e6f9bf1579931c64d7bea0b40697507d7f3026

test: remove prettier dep fixing linting (#497)

view details

push time in 4 days

PR merged googleapis/nodejs-compute

test: remove prettier dep fixing linting cla: yes

We had a dependency on prettier which was interfering with gts.

+576 -571

1 comment

24 changed files

bcoe

pr closed time in 4 days

delete branch googleapis/nodejs-automl

delete branch : autosynth-self

delete time in 4 days

PR closed googleapis/nodejs-automl

[CHANGE ME] Re-generated to pick up changes from self. api: automl cla: yes context: none do not merge

This PR was generated using Autosynth. :rainbow:

Synth log will be available here: https://source.cloud.google.com/results/invocations/15924f29-f418-4d50-ab06-733780204905/targets

  • [ ] To automatically regenerate this PR, check this box.
+1 -32

2 comments

2 changed files

yoshi-automation

pr closed time in 4 days

pull request commentconventional-changelog/conventional-changelog

fix(preset:angular): escaped scoped string should not be seen as GitHub username (#601)

@SuperITMan thanks for updating the PR 👍 will try to help merge some of these PRs soon.

SuperITMan

comment created time in 4 days

startedZaO-Lover/happy-awesome-nodejs

started time in 4 days

issue commentconventional-commits/conventionalcommits.org

Should `feat` cover changes to existing features?

Let's start putting the meeting-agenda label on issues we think we'd like to discuss on a monthly call.

I opened an issue for us to have a first meeting -- my hope is that getting a few collaborators in a room together, we can better evolve the spec.

stoically

comment created time in 4 days

pull request commentgoogleapis/synthtool

chore(node_library): migrate to Trampoline V2

@tmatsuo I will do an end to end test Monday 👌 (_as I don't want to release a library on Friday).

tmatsuo

comment created time in 4 days

push eventtmatsuo/synthtool

Jeff Ching

commit sha 916c10e8581804df2b48a0f0457d848f3faa582e

build(java): use yoshi-approver token for auto-approve (#772)

view details

Stephanie Wang

commit sha 95dbe1bee3c7f7e52ddb24a54c37080620e0d1a2

chore(ci): skip autorelease workflow on non-release PRs (#775)

view details

Stephanie Wang

commit sha da29da32b3a988457b49ae290112b74f14b713cc

chore(ci): verify autorelease release PR content has changes (#776)

view details

Benjamin E. Coe

commit sha 2e99e9eb299ef62855e5804021897c5c986908c9

Merge branch 'master' into nodejs-trampoline-v2

view details

push time in 4 days

issue openedconventional-commits/conventionalcommits.org

October Meeting

Proposal

I would like to suggest that we have our first monthly meeting in October, where:

  1. start to figure out some governance for this project.
  2. divide up some of the work triaging Pull Requests, and commenting on issues.

This issue will be updated with a Hangout link, agenda, and a date/time once we can agree on one.

Call to action

Join the conventional commits channel in this chat room if you're interested in joining the meeting; and we can pick a time.

created time in 4 days

pull request commentnodejs/node

Make recursive rmdir more strict

@Trott are you advocating the addition of recursiveStrict, to the existing rmdir method. Which it sounds like, based on conversations so far, would have the .NET behavior:

  • throw on file.
  • throw on missing path.
  • delete directory recursively with files.
iansu

comment created time in 4 days

PR opened googleapis/nodejs-compute

test: remove prettier dep fixing linting

We had a dependency on prettier which was interfering with gts.

+576 -571

0 comment

24 changed files

pr created time in 4 days

create barnchgoogleapis/nodejs-compute

branch : fix-linting

created branch time in 4 days

PullRequestReviewEvent

push eventgoogleapis/google-cloud-node

Yoshi Automation Bot

commit sha 4c74496c4a5733680106ae19770f99a5f4f6a4f1

docs: adds the new certificate authority library

view details

push time in 4 days

PR merged googleapis/google-cloud-node

docs: adds the new certificate authority library cla: yes context: none

This PR was generated using Autosynth. :rainbow:

Synth log will be available here: https://source.cloud.google.com/results/invocations/fa860a88-a304-47c4-b706-3602c4a107e7/targets

  • [ ] To automatically regenerate this PR, check this box.
+17 -2

0 comment

3 changed files

yoshi-automation

pr closed time in 4 days

PullRequestReviewEvent

delete branch googleapis/nodejs-dialogflow

delete branch : autosynth-googleapis

delete time in 4 days

push eventgoogleapis/nodejs-dialogflow

Yoshi Automation Bot

commit sha 484967b7bebeace221c23ce05868a67611f19b32

docs: update OPTIONAL annotations for some fields (#686) PiperOrigin-RevId: 333132625 Source-Author: Google APIs <noreply@google.com> Source-Date: Tue Sep 22 12:14:18 2020 -0700 Source-Repo: googleapis/googleapis Source-Sha: 470d84e263c833af5280753b8e4188432b8d5b06 Source-Link: https://github.com/googleapis/googleapis/commit/470d84e263c833af5280753b8e4188432b8d5b06

view details

push time in 4 days

PR merged googleapis/nodejs-dialogflow

docs: update OPTIONAL annotations for some fields. api: dialogflow cla: yes context: full

This PR was generated using Autosynth. :rainbow:

Synth log will be available here: https://source.cloud.google.com/results/invocations/2ae1ff2f-e35a-4922-aaf5-7f49ee08b89d/targets

  • [ ] To automatically regenerate this PR, check this box.

PiperOrigin-RevId: 333132625 Source-Link: https://github.com/googleapis/googleapis/commit/470d84e263c833af5280753b8e4188432b8d5b06

+28 -30

1 comment

5 changed files

yoshi-automation

pr closed time in 4 days

PullRequestReviewEvent
PullRequestReviewEvent

delete branch googleapis/nodejs-gce-images

delete branch : release-v3.0.2

delete time in 4 days

push eventgoogleapis/nodejs-gce-images

release-please[bot]

commit sha e178cf947afcf5d82f00de30815f8fcd548f5543

chore: release 3.0.2 (#271) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

view details

push time in 4 days

PR merged googleapis/nodejs-gce-images

chore: release 3.0.2 api: compute autorelease: pending cla: yes

:robot: I have created a release *beep* *boop*

3.0.2 (2020-09-23)

Bug Fixes


This PR was generated with Release Please.

+9 -2

1 comment

3 changed files

release-please[bot]

pr closed time in 4 days

PullRequestReviewEvent

issue commentbcoe/c8

Erroneous report of missing coverage

Thank you for providing reproduction @sramam. One thing worth trying, would be turning off source-maps.

It might be the case that TypeScript is actually adding an additional line of code in the built .js, which is legitimately not covered.

sramam

comment created time in 4 days

pull request commentgoogleapis/repo-automation-bots

chore(probot): update dependencies

@gr2m thank you for the review.

bcoe

comment created time in 4 days

push eventgoogleapis/repo-automation-bots

Benjamin E. Coe

commit sha 0eb8b4bfed87ad1d73e6dad19412cd103091f96b

Update packages/gcf-utils/src/gcf-utils.ts Co-authored-by: Gregor Martynus <gregor@martynus.net>

view details

push time in 4 days

Pull request review commentgoogleapis/repo-automation-bots

chore(probot): update dependencies

 export class GCFBootstrapper {       return {...config, Octokit: LoggingOctokit} as Options;     } else {       logger.info('custom logging instance not enabled');-      return config as Options;+      return {...config, Octokit} as Options;

we were bumping into an issue where probot wanted @octokit/rest@16.x, whereas our library release-please wanted @octokit/rest@18.x, I don't think we need to worry about two versions of this dependency in the tree any longer.

bcoe

comment created time in 4 days

PullRequestReviewEvent

pull request commentnodejs/node

Make recursive rmdir more strict

@gengjiawen my concern is that, I'm not convinced that our goal for a recursive method on rmdir should be to match rm -rf.

The below chart compares the directory deletion API across a variety of platforms:

python Deno .NET Ruby Node.js (now)
has recursive option
deletes single file
deletes non-empty folder
throws on missing
alternate recursive method shutil.rmtree() FileUtils.rm_rf
  • in this comparison, Node.js' rmdir recursive, was the only helper that did not throw on a missing path.
  • APIs, like ruby's and python's, which have strict APIs, or lack a recursive option on rmdir, tended to offer a separate recursive method (similar to rm -rf).

My proposal is that we'd move towards either matching .NET's behavior, which matches (_@RyanZim and @CxRes's suggestions). but, consider adding a method like fs.rmdir, which throws on neither missing paths or file targets.


If we were to throw on files, but not throw on missing paths, I believe Node.js would deviate the most from other languages.

iansu

comment created time in 4 days

push eventgoogleapis/nodejs-ai-platform

Benjamin Coe

commit sha 83a1edb8c89ca9d101df9d229d332ceefc7de093

chore: run the generator

view details

push time in 4 days

PR opened googleapis/nodejs-ai-platform

feat!: initial generation of client library

initial generation of library.

+135941 -3

0 comment

128 changed files

pr created time in 4 days

create barnchgoogleapis/nodejs-ai-platform

branch : initial-generation

created branch time in 4 days

push eventgoogleapis/google-auth-library-nodejs

bojeil-google

commit sha b8f14ec8d0d22ba037c2214017f1ae6e1fabeaea

chore: sync to master (#1058)

view details

push time in 4 days

PR merged googleapis/google-auth-library-nodejs

chore: sync to master cla: yes

The sync pulls in latest changes in master having to do with self signed JWTs.

In addition, updates external_account clients to also handle defaultScopes.

+363 -40

4 comments

12 changed files

bojeil-google

pr closed time in 4 days

PullRequestReviewEvent
more