Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update dependency prettier to v3 #1825

Merged
merged 4 commits into from
Sep 5, 2023
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 5, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
prettier (source) ^2.8.8 -> ^3.0.3 age adoption passing confidence

Release Notes

prettier/prettier (prettier)

v3.0.3

Compare Source

diff

Add preferUnplugged: true to package.json (#​15169 by @​fisker and @​so1ve)

Prettier v3 uses dynamic imports, user will need to unplug Prettier when Yarn's PnP mode is enabled, add preferUnplugged: true to package.json, so Yarn will install Prettier as unplug by default.

Support shared config that forbids require() (#​15233 by @​fisker)

If an external shared config package is used, and the package exports don't have require or default export.

In Prettier 3.0.2 Prettier fails when attempt to require() the package, and throws an error.

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in <packageName>/package.json
Allow argument of require() to break (#​15256 by @​fisker)
// Input
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, "../standalone.js")
    : path.join(__dirname, "..")
);

// Prettier 3.0.2
const plugin = require(global.STANDALONE
  ? path.join(__dirname, "../standalone.js")
  : path.join(__dirname, ".."));

// Prettier 3.0.3
const plugin = require(
  global.STANDALONE
    ? path.join(__dirname, "../standalone.js")
    : path.join(__dirname, "..")
);
Do not print trailing commas in arrow function type parameter lists in ts code blocks (#​15286 by @​sosukesuzuki)
<!-- Input -->
```ts
const foo = <T>() => {}
```

<!-- Prettier 3.0.2 -->
```ts
const foo = <T,>() => {}
```

<!-- Prettier 3.0.3 -->
```ts
const foo = <T>() => {}
```
Support TypeScript 5.2 using / await using declaration (#​15321 by @​sosukesuzuki)

Support for the upcoming Explicit Resource Management feature in ECMAScript. using / await using declaration

{
   using foo = new Foo();
   await using bar = new Bar();
}

v3.0.2

Compare Source

diff

Break after = of assignment if RHS is poorly breakable AwaitExpression or YieldExpression (#​15204 by @​seiyab)
// Input
const { section, rubric, authors, tags } = await utils.upsertCommonData(mainData);

// Prettier 3.0.1
const { section, rubric, authors, tags } = await utils.upsertCommonData(
  mainData,
);

// Prettier 3.0.2
const { section, rubric, authors, tags } =
  await utils.upsertCommonData(mainData);
Do not add trailing comma for grouped scss comments (#​15217 by @​auvred)
/* Input */
$foo: (
	'property': (),
	// comment 1
	// comment 2
)

/* Prettier 3.0.1 */
$foo: (
  "property": (),
  // comment 1
  // comment 2,
);

/* Prettier 3.0.2 */
$foo: (
  "property": (),
  // comment 1
  // comment 2
);
Print declare and export keywords for nested namespace (#​15249 by @​sosukesuzuki)
// Input
declare namespace abc1.def {}
export namespace abc2.def {}

// Prettier 3.0.1
namespace abc1.def {}
namespace abc2.def {}

// Prettier 3.0.2
declare namespace abc1.def {}
export namespace abc2.def {}

v3.0.1

Compare Source

diff

Fix cursor positioning for a special case (#​14812 by @​fisker)
// <|> is the cursor position

/* Input */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns "node {this_file}".
import {<|>  } from "fs"

/* Prettier 3.0.0 */
// All messages are represented in JSON.
// So, the prettier.py <|>controls a subprocess which spawns "node {this_file}".
import {} from "fs"

/* Prettier 3.0.1 */
// All messages are represented in JSON.
// So, the prettier.py controls a subprocess which spawns "node {this_file}".
import {<|>} from "fs"
Fix plugins/estree.d.ts to make it a module (#​15018 by @​kingyue737)

Add export {} in plugins/estree.d.ts to fix the "File is not a module" error

Add parenthesis around leading multiline comment in return statement (#​15037 by @​auvred)
// Input
function fn() {
  return (
    /**
     * @&#8203;type {...}
     */ expresssion
  )
}

// Prettier 3.0.0
function fn() {
  return /**
   * @&#8203;type {...}
   */ expresssion;
}

// Prettier 3.0.1
function fn() {
  return (
    /**
     * @&#8203;type {...}
     */ expresssion
  );
}
Add support for Vue "Generic Components" (#​15066 by @​auvred)

https://blog.vuejs.org/posts/vue-3-3#generic-components

<!-- Input -->
<script setup lang="ts" generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"></script>

<!-- Prettier 3.0.0 -->
<script
  setup
  lang="ts"
  generic="T extends Type1 & Type2 & (Type3 | Type4), U extends string | number | boolean"
></script>

<!-- Prettier 3.0.1 -->
<script
  setup
  lang="ts"
  generic="
    T extends Type1 & Type2 & (Type3 | Type4),
    U extends string | number | boolean
  "
></script>
Fix comments print in IfStatement (#​15076 by @​fisker)
function a(b) {
  if (b) return 1; // comment
  else return 2;
}

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

/* Prettier 3.0.1 */
function a(b) {
  if (b) return 1; // comment
  else return 2;
}
Add missing type definition for printer.preprocess (#​15123 by @​so1ve)
export interface Printer<T = any> {
  // ...
+ preprocess?:
+   | ((ast: T, options: ParserOptions<T>) => T | Promise<T>)
+   | undefined;
}
Add missing getVisitorKeys method type definition for Printer (#​15125 by @​auvred)
const printer: Printer = {
  print: () => [],
  getVisitorKeys(node, nonTraversableKeys) {
    return ["body"];
  },
};
Add typing to support readonly array properties of AST Node (#​15127 by @​auvred)
// Input
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");

// Prettier 3.0.0
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");
//                  ^ Argument of type '"readonlyArray"' is not assignable to parameter of type '"regularArray"'. ts(2345)

// Prettier 3.0.1
interface TestNode {
  readonlyArray: readonly string[];
}

declare const path: AstPath<TestNode>;

path.map(() => "", "readonlyArray");
Add space before unary minus followed by a function call (#​15129 by @​pamelalozano)
// Input
div {
  margin: - func();
}

// Prettier 3.0.0
div {
  margin: -func();
}

// Prettier 3.0.1
div {
  margin: - func();
}

v3.0.0

Compare Source

diff

🔗 Release Notes


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

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


  • If you want to rebase/retry this PR, check this box

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

@renovate renovate bot requested a review from a team July 5, 2023 18:17
@renovate renovate bot force-pushed the renovate/prettier-3.x branch 6 times, most recently from c3ab007 to 4776e0e Compare July 13, 2023 15:42
Copy link
Contributor

@dcroote dcroote left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

prettier.format() returns Promise<string> instead of string now that it has been made async in v3, hence the broken build

@bbenligiray
Copy link
Member

Also the latest prettier-plugin-solidity version doesn't work with prettier 3.0.0 yet

@renovate renovate bot requested a review from a team July 16, 2023 15:08
@renovate renovate bot force-pushed the renovate/prettier-3.x branch 5 times, most recently from dbad665 to d5fe208 Compare July 25, 2023 11:07
@renovate renovate bot force-pushed the renovate/prettier-3.x branch 5 times, most recently from 55fba19 to 64a03f8 Compare August 10, 2023 15:38
@renovate renovate bot force-pushed the renovate/prettier-3.x branch 7 times, most recently from 985f63c to 6b78922 Compare August 21, 2023 14:57
@renovate renovate bot force-pushed the renovate/prettier-3.x branch 2 times, most recently from bd1140d to 2741da7 Compare August 26, 2023 13:13
@renovate renovate bot force-pushed the renovate/prettier-3.x branch from 2741da7 to 8a2da92 Compare August 30, 2023 05:15
@renovate renovate bot force-pushed the renovate/prettier-3.x branch 5 times, most recently from dd99915 to f89aa4d Compare September 4, 2023 13:19
@renovate renovate bot force-pushed the renovate/prettier-3.x branch from f89aa4d to 276c72e Compare September 5, 2023 02:08
@renovate
Copy link
Contributor Author

renovate bot commented Sep 5, 2023

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

Warning: custom changes will be lost.

@@ -29,7 +29,7 @@
"run-airnode-locally": "ts-node src/scripts/run-airnode-locally.ts",
"sponsor-requester": "ts-node src/scripts/sponsor-requester.ts",
"stop-local-airnode": "ts-node src/scripts/stop-local-airnode.ts",
"test": "jest --selectProjects unit",
"test": "NODE_OPTIONS=--experimental-vm-modules jest --selectProjects unit",
Copy link
Contributor

@dcroote dcroote Sep 5, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change is required because prettier v3 made the migration to using ECMAScript Modules, which jest has only experimental support for. The fix is adapted from their option number 2.

An example of the error before adding this was:

@api3/airnode-examples:   ● Verifies that all config.example.json files are up to date › checks /home/runner/work/airnode/airnode/packages/airnode-examples/integrations/coingecko-post-processing
@api3/airnode-examples:     Error: You need to run with a version of node that supports ES Modules in the VM API. See https://jestjs.io/docs/ecmascript-modules
@api3/airnode-examples: 
@api3/airnode-examples:       at createGoError (../../node_modules/@api3/promise-utils/src/index.ts:59:15)
@api3/airnode-examples:       at ../../node_modules/@api3/promise-utils/src/index.ts:134:12
@api3/airnode-examples:           at Generator.throw (<anonymous>)
@api3/airnode-examples:       at rejected (../../node_modules/@api3/promise-utils/build/cjs/index.js:6:65)

@dcroote
Copy link
Contributor

dcroote commented Sep 5, 2023

@andreogle would you mind reviewing? The CI is only failing because of the unrelated "Verify Protocol Deployments" check, which has been very flaky for the past several commits / PRs.

@dcroote dcroote requested a review from andreogle September 5, 2023 05:14
@dcroote dcroote merged commit b447fcc into master Sep 5, 2023
28 of 29 checks passed
@dcroote dcroote deleted the renovate/prettier-3.x branch September 5, 2023 14:22
Ashar2shahid pushed a commit that referenced this pull request Jan 18, 2024
* chore(deps): update dependency prettier to v3

* fix(deps): update prettier format to be async

* fix(deps): apply prettier v3 formatting

* fix(deps): prettier ECMAScript Modules jest fix

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Derek Croote <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants