All Versions
84
Latest Version
Avg Release Cycle
29 days
Latest Release
198 days ago

Changelog History
Page 1

  • v1.19.1

    November 09, 2019

    diff

    CLI

    πŸ›  Fix --stdin regression in 1.19.0 (#6894 by @lydell)

    <!-- prettier-ignore -->

    // Prettier stable
    $ echo "test" | prettier --stdin --parser babel
    [error] regeneratorRuntime is not defined
    
    // Prettier master
    $ echo "test" | prettier --stdin --parser babel
    test;
    

    TypeScript

    πŸ›  Fix formatting of union type as arrow function return type (#6896 by @thorn0)

    <!-- prettier-ignore -->

    // Input
    export const getVehicleDescriptor = async (
      vehicleId: string,
    ): Promise<Collections.Parts.PrintedCircuitBoardAssembly['attributes'] | undefined> => {}
    
    // Prettier stable
    export const getVehicleDescriptor = async (
      vehicleId: string
    ): Promise<| Collections.Parts.PrintedCircuitBoardAssembly["attributes"]
    | undefined> => {};
    
    // Prettier master
    export const getVehicleDescriptor = async (
      vehicleId: string
    ): Promise<
      Collections.Parts.PrintedCircuitBoardAssembly["attributes"] | undefined
    > => {};
    
  • v1.19.0

    November 09, 2019

    πŸš€ πŸ”— Release Notes

  • v1.18.2

    June 07, 2019

    diff

    • TypeScript: only add trailing commas in tuples for --trailing-comma=all (#6199 by @duailibe)

    In Prettier 1.18 we added trailing commas in tuples when --trailing-comma=all, but it was also adding for --trailing-comma=es5.

  • v1.18.1

    June 07, 2019

    diff

    Prettier inserts a trailing comma to single type parameter for arrow functions in tsx, since v 1.18. But, this feature inserts a trailing comma to type parameter for besides arrow functions too (e.g, function , interface). This change fix it.

    <!-- prettier-ignore -->

      // Input
      interface Interface1<T> {
        one: "one";
      }
      function function1<T>() {
        return "one";
      }
    
      // Output (Prettier 1.18.0)
      interface Interface1<T,> {
        one: "one";
      }
      function function1<T,>() {
        return "one";
      }
    
      // Output (Prettier 1.18.1)
      interface Interface1<T> {
        one: "one";
      }
      function function1<T>() {
        return "one";
      }
    

    When using overrides in the config file, Prettier was not matching dotfiles (files that start with .). This was fixed in 1.18.1

  • v1.18.0

    June 06, 2019

    πŸš€ πŸ”— Release Notes

  • v1.17.1

    May 13, 2019

    diff

    • Range: Fix ranged formatting not using the correct line width (#6050 by @mathieulj)

    <!-- prettier-ignore -->

      // Input
      function f() {
        if (true) {
          call("this line is 79 chars", "long", "it should", "stay as single line");
        }
      }
    
      // Output (Prettier 1.17.0 run with --range-start 30 --range-end 110)
      function f() {
        if (true) {
          call(
            "this line is 79 chars",
            "long",
            "it should",
            "stay as single line"
          );
        }
      }
    
      // Output (Prettier 1.17.0 run without range)
      function f() {
        if (true) {
          call("this line is 79 chars", "long", "it should", "stay as single line");
        }
      }
    
      // Output (Prettier 1.17.1 with and without range)
      function f() {
        if (true) {
          call("this line is 79 chars", "long", "it should", "stay as single line");
        }
      }
    
    • JavaScript: Fix closure compiler typecasts ([#5947] by @jridgewell)

    If a closing parenthesis follows after a typecast in an inner expression, the typecast would wrap everything to the that following parenthesis.

    <!-- prettier-ignore -->

      // Input
      test(/** @type {!Array} */(arrOrString).length);
      test(/** @type {!Array} */((arrOrString)).length + 1);
    
      // Output (Prettier 1.17.0)
      test(/** @type {!Array} */ (arrOrString.length));
      test(/** @type {!Array} */ (arrOrString.length + 1));
    
      // Output (Prettier 1.17.1)
      test(/** @type {!Array} */ (arrOrString).length);
      test(/** @type {!Array} */ (arrOrString).length + 1);
    
    • JavaScript: respect parenthesis around optional chaining before await (#6087 by @evilebottnawi)

    <!-- prettier-ignore -->

      // Input
      async function myFunction() {
        var x = (await foo.bar.blah)?.hi;
      }
    
      // Output (Prettier 1.17.0)
      async function myFunction() {
        var x = await foo.bar.blah?.hi;
      }
    
      // Output (Prettier 1.17.1)
      async function myFunction() {
        var x = (await foo.bar.blah)?.hi;
      }
    
    • πŸ”€ Handlebars: Fix {{else}}{{#if}} into {{else if}} merging (#6080 by @dcyriller)

    <!-- prettier-ignore -->

      // Input
      {{#if a}}
        a
      {{else}}
        {{#if c}}
          c
        {{/if}}
        e
      {{/if}}
    
      // Output (Prettier 1.17.0)
      {{#if a}}
        a
      {{else if c}}
        c
      e
      {{/if}}
    
      // Output (Prettier 1.17.1)
      Code Sample
      {{#if a}}
        a
      {{else}}
        {{#if c}}
          c
        {{/if}}
        e
      {{/if}}
    
    • JavaScript: Improved multiline closure compiler typecast comment detection (#6070 by @yangsu)

    Previously, multiline closure compiler typecast comments with lines that start with * weren't flagged correctly and the subsequent parenthesis were stripped. Prettier 1.17.1 fixes this issue.

    <!-- prettier-ignore -->

      // Input
      const style =/**
       * @type {{
       *   width: number,
       * }}
      */({
        width,
      });
    
      // Output (Prettier 1.17.0)
      const style =/**
       * @type {{
       *   width: number,
       * }}
      */ {
        width,
      };
    
      // Output (Prettier 1.17.1)
      const style =/**
       * @type {{
       *   width: number,
       * }}
      */({
        width,
      });
    
  • v1.17.0

    April 12, 2019

    πŸš€ πŸ”— Release Notes

  • v1.16.4

    February 03, 2019

    diff

    • πŸ“œ API: Fix prettier.getSupportInfo() reporting babel parser for older versions of Prettier. (#5826 by @azz)

    In version 1.16.0 of Prettier, the babylon parser was renamed to babel. Unfortunately this lead to a minor breaking change: prettier.getSupportInfo('1.15.0') would report that it supported babel, not babylon, which breaks text-editor integrations. This has now been fixed.

  • v1.16.3

    January 31, 2019

    diff

    • ⚑️ TypeScript: Revert "Update typescript-estree to new package name" (#5818 by @ikatyang)

    There's an internal change introduced in Prettier 1.16.2, which updated typescript-estree to its new package name, but unfortunately it broke the output so we reverted it as a temporary workaround for now.

    <!-- prettier-ignore -->

      // Input
      export default {
        load<K, T>(k: K, t: T) {
          return {k, t};
        }
      }
    
      // Output (Prettier 1.16.2)
      export default {
        load(k: K, t: T) {
          return { k, t };
        }
      };
    
      // Output (Prettier 1.16.3)
      export default {
        load<K, T>(k: K, t: T) {
          return { k, t };
        }
      };
    
  • v1.16.2

    January 30, 2019

    diff

    • πŸ‘· CLI: Fix CI detection to avoid unwanted TTY behavior (#5804 by @kachkaev)

    In Prettier 1.16.0 and 1.16.1, --list-different and --check logged every file in some CI environments, instead of just unformatted files. This unwanted behavior is now fixed.

    • HTML: Do not format non-normal whitespace as normal whitespace (#5797 by @ikatyang)

    Previously, only non-breaking whitespaces (U+00A0) are marked as non-normal whitespace, which means other non-normal whitespaces such as non-breaking narrow whitespaces (U+202F) could be formatted as normal whitespaces, which breaks the output. We now follow the spec to exclude all non-ASCII whitespace from whitespace normalization.

    (Β· represents a non-breaking narrow whitespace)

    <!-- prettier-ignore -->

      <!-- Input -->
      PrixΒ·:Β·32·€
    
      <!-- Output (Prettier 1.16.1) -->
      Prix : 32 €
    
      <!-- Output (Prettier 1.16.2) -->
      PrixΒ·:Β·32·€
    
    • JavaScript: Fix record type cast comment detection (#5793 by @yangsu)

    Previously, type cast comments with record types were ignored and prettier stripped the subsequent parens. Prettier 1.16.2 handles these cases correctly.

    <!-- prettier-ignore -->

      // Input
      const v = /** @type {{key: number}} */ (value);
    
      // Output (Prettier 1.16.1)
      const v = /** @type {{key: number}} */ value;
    
      // Output (Prettier 1.16.2)
      const v = /** @type {{key: number}} */ (value);