Skip to content

Commit

Permalink
Release 3.0.3
Browse files Browse the repository at this point in the history
  • Loading branch information
sosukesuzuki committed Aug 29, 2023
1 parent a35008f commit d5f3171
Show file tree
Hide file tree
Showing 6 changed files with 109 additions and 35 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/formatting.md
Expand Up @@ -26,7 +26,7 @@ Don't fill the form below manually! Let a program create a report for you:
-->

**Prettier 3.0.2**
**Prettier 3.0.3**
[Playground link](https://prettier.io/playground/#.....)

```sh
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/integration.md
Expand Up @@ -20,7 +20,7 @@ BEFORE SUBMITTING AN ISSUE:

**Environments:**

- Prettier Version: 3.0.2
- Prettier Version: 3.0.3
- Running Prettier via: <!-- CLI, Node.js API, Browser API, etc. -->
- Runtime: <!-- Node.js v14, Chrome v83, etc. -->
- Operating System: <!-- Windows, Linux, macOS, etc. -->
Expand Down
74 changes: 74 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,77 @@
# 3.0.3

[diff](https://github.com/prettier/prettier/compare/3.0.2...3.0.3)

#### Add `preferUnplugged: true` to `package.json` ([#15169](https://github.com/prettier/prettier/pull/15169) by [@fisker](https://github.com/fisker) and [@so1ve](https://github.com/so1ve))

Prettier v3 uses dynamic imports, user [will need to unplug Prettier](https://github.com/yarnpkg/berry/pull/5411#issuecomment-1523502224) when Yarn's PnP mode is enabled, add [`preferUnplugged: true`](https://yarnpkg.com/configuration/manifest#preferUnplugged) to `package.json`, so Yarn will install Prettier as unplug by default.

#### Support shared config that forbids `require()` ([#15233](https://github.com/prettier/prettier/pull/15233) by [@fisker](https://github.com/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.

```text
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in <packageName>/package.json
```

#### Allow argument of `require()` to break ([#15256](https://github.com/prettier/prettier/pull/15256) by [@fisker](https://github.com/fisker))

<!-- prettier-ignore -->
```jsx
// 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](https://github.com/prettier/prettier/pull/15286) by [@sosukesuzuki](https://github.com/sosukesuzuki))

<!-- prettier-ignore -->
````md
<!-- 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](https://github.com/prettier/prettier/pull/15321) by [@sosukesuzuki](https://github.com/sosukesuzuki))

Support for the upcoming Explicit Resource Management feature in ECMAScript. [`using` / `await using` declaration](https://devblogs.microsoft.com/typescript/announcing-typescript-5-2/#using-declarations-and-explicit-resource-management)

<!-- prettier-ignore -->
```tsx
{
using foo = new Foo();
await using bar = new Bar();
}
```

# 3.0.2

[diff](https://github.com/prettier/prettier/compare/3.0.1...3.0.2)
Expand Down
32 changes: 16 additions & 16 deletions docs/browser.md
Expand Up @@ -18,7 +18,7 @@ Required options:

- **[`parser`](options.md#parser) (or [`filepath`](options.md#file-path))**: One of these options has to be specified for Prettier to know which parser to use.

- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource--options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in <https://unpkg.com/browse/prettier@3.0.2/plugins/>. Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON.
- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource--options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in <https://unpkg.com/browse/prettier@3.0.3/plugins/>. Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON.

You need to load the ones that you’re going to use and pass them to `prettier.format` using the `plugins` option.

Expand All @@ -29,8 +29,8 @@ See below for examples.
### Global

```html
<script src="https://unpkg.com/prettier@3.0.2/standalone.js"></script>
<script src="https://unpkg.com/prettier@3.0.2/plugins/graphql.js"></script>
<script src="https://unpkg.com/prettier@3.0.3/standalone.js"></script>
<script src="https://unpkg.com/prettier@3.0.3/plugins/graphql.js"></script>
<script>
(async () => {
const formatted = await prettier.format("type Query { hello: String }", {
Expand All @@ -47,8 +47,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack

```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.0.2/standalone.mjs";
import prettierPluginGraphql from "https://unpkg.com/prettier@3.0.2/plugins/graphql.mjs";
import * as prettier from "https://unpkg.com/prettier@3.0.3/standalone.mjs";
import prettierPluginGraphql from "https://unpkg.com/prettier@3.0.3/plugins/graphql.mjs";
const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql",
Expand All @@ -61,8 +61,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack

```js
define([
"https://unpkg.com/prettier@3.0.2/standalone.js",
"https://unpkg.com/prettier@3.0.2/plugins/graphql.js",
"https://unpkg.com/prettier@3.0.3/standalone.js",
"https://unpkg.com/prettier@3.0.3/plugins/graphql.js",
], async (prettier, ...plugins) => {
const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql",
Expand Down Expand Up @@ -90,8 +90,8 @@ This syntax doesn’t necessarily work in the browser, but it can be used when b
### Worker

```js
importScripts("https://unpkg.com/prettier@3.0.2/standalone.js");
importScripts("https://unpkg.com/prettier@3.0.2/plugins/graphql.js");
importScripts("https://unpkg.com/prettier@3.0.3/standalone.js");
importScripts("https://unpkg.com/prettier@3.0.3/plugins/graphql.js");

(async () => {
const formatted = await prettier.format("type Query { hello: String }", {
Expand All @@ -107,9 +107,9 @@ If you want to format [embedded code](options.md#embedded-language-formatting),

```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.0.2/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.0.2/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.0.2/plugins/estree.mjs";
import * as prettier from "https://unpkg.com/prettier@3.0.3/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.0.3/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.0.3/plugins/estree.mjs";
console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
Expand All @@ -125,10 +125,10 @@ The HTML code embedded in JavaScript stays unformatted because the `html` parser

```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.0.2/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.0.2/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.0.2/plugins/estree.mjs";
import prettierPluginHtml from "https://unpkg.com/prettier@3.0.2/plugins/html.mjs";
import * as prettier from "https://unpkg.com/prettier@3.0.3/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.0.3/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.0.3/plugins/estree.mjs";
import prettierPluginHtml from "https://unpkg.com/prettier@3.0.3/plugins/html.mjs";
console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
Expand Down
2 changes: 1 addition & 1 deletion package.json
@@ -1,6 +1,6 @@
{
"name": "prettier",
"version": "3.1.0-dev",
"version": "3.0.3",
"description": "Prettier is an opinionated code formatter",
"bin": "./bin/prettier.cjs",
"repository": "prettier/prettier",
Expand Down
32 changes: 16 additions & 16 deletions website/versioned_docs/version-stable/browser.md
Expand Up @@ -19,7 +19,7 @@ Required options:

- **[`parser`](options.md#parser) (or [`filepath`](options.md#file-path))**: One of these options has to be specified for Prettier to know which parser to use.

- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource--options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in <https://unpkg.com/browse/prettier@3.0.2/plugins/>. Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON.
- **`plugins`**: Unlike the `format` function from the [Node.js-based API](api.md#prettierformatsource--options), this function doesn’t load plugins automatically. The `plugins` option is required because all the parsers included in the Prettier package come as plugins (for reasons of file size). These plugins are files in <https://unpkg.com/browse/prettier@3.0.3/plugins/>. Note that `estree` plugin should be loaded when printing JavaScript, TypeScript, Flow, or JSON.

You need to load the ones that you’re going to use and pass them to `prettier.format` using the `plugins` option.

Expand All @@ -30,8 +30,8 @@ See below for examples.
### Global

```html
<script src="https://unpkg.com/prettier@3.0.2/standalone.js"></script>
<script src="https://unpkg.com/prettier@3.0.2/plugins/graphql.js"></script>
<script src="https://unpkg.com/prettier@3.0.3/standalone.js"></script>
<script src="https://unpkg.com/prettier@3.0.3/plugins/graphql.js"></script>
<script>
(async () => {
const formatted = await prettier.format("type Query { hello: String }", {
Expand All @@ -48,8 +48,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack

```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.0.2/standalone.mjs";
import prettierPluginGraphql from "https://unpkg.com/prettier@3.0.2/plugins/graphql.mjs";
import * as prettier from "https://unpkg.com/prettier@3.0.3/standalone.mjs";
import prettierPluginGraphql from "https://unpkg.com/prettier@3.0.3/plugins/graphql.mjs";
const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql",
Expand All @@ -62,8 +62,8 @@ Note that the [`unpkg` field](https://unpkg.com/#examples) in Prettier’s `pack

```js
define([
"https://unpkg.com/prettier@3.0.2/standalone.js",
"https://unpkg.com/prettier@3.0.2/plugins/graphql.js",
"https://unpkg.com/prettier@3.0.3/standalone.js",
"https://unpkg.com/prettier@3.0.3/plugins/graphql.js",
], async (prettier, ...plugins) => {
const formatted = await prettier.format("type Query { hello: String }", {
parser: "graphql",
Expand Down Expand Up @@ -91,8 +91,8 @@ This syntax doesn’t necessarily work in the browser, but it can be used when b
### Worker

```js
importScripts("https://unpkg.com/prettier@3.0.2/standalone.js");
importScripts("https://unpkg.com/prettier@3.0.2/plugins/graphql.js");
importScripts("https://unpkg.com/prettier@3.0.3/standalone.js");
importScripts("https://unpkg.com/prettier@3.0.3/plugins/graphql.js");

(async () => {
const formatted = await prettier.format("type Query { hello: String }", {
Expand All @@ -108,9 +108,9 @@ If you want to format [embedded code](options.md#embedded-language-formatting),

```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.0.2/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.0.2/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.0.2/plugins/estree.mjs";
import * as prettier from "https://unpkg.com/prettier@3.0.3/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.0.3/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.0.3/plugins/estree.mjs";
console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
Expand All @@ -126,10 +126,10 @@ The HTML code embedded in JavaScript stays unformatted because the `html` parser

```html
<script type="module">
import * as prettier from "https://unpkg.com/prettier@3.0.2/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.0.2/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.0.2/plugins/estree.mjs";
import prettierPluginHtml from "https://unpkg.com/prettier@3.0.2/plugins/html.mjs";
import * as prettier from "https://unpkg.com/prettier@3.0.3/standalone.mjs";
import prettierPluginBabel from "https://unpkg.com/prettier@3.0.3/plugins/babel.mjs";
import prettierPluginEstree from "https://unpkg.com/prettier@3.0.3/plugins/estree.mjs";
import prettierPluginHtml from "https://unpkg.com/prettier@3.0.3/plugins/html.mjs";
console.log(
await prettier.format("const html=/* HTML */ `<DIV> </DIV>`", {
Expand Down

0 comments on commit d5f3171

Please sign in to comment.