Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@putout/printer

putoutjs29.9kMIT12.7.0TypeScript support: included

Simplest possible opinionated Babel AST printer for 🐊Putout

putout, printer, AST, babel, api, traverse, generate

readme

Printer License NPM version Build Status Coverage Status

Prints Babel AST to readable JavaScript. Use 🐊Putout to parse your code.

You may also use Babel 8 with estree-to-babel for ESTree and Babel AST to put .extra.raw to .raw (which is simpler for transforms, no need to use Optional Chaining and add extra values every time).

  • ☝️ Similar to Recast, but twice faster, also simpler and easier in maintenance, since it supports only Babel.
  • ☝️ As opinionated as Prettier, but has more user-friendly output and works directly with AST.
  • ☝️ Like ESLint but works directly with Babel AST.
  • ☝️ Easily extendable with help of Overrides.

Supports:

Install

npm i @putout/printer

🐊 Support of Printer

Printer has first class support from 🐊Putout with help of @putout/plugin-printer. So install:

npm i @putout/plugin-printer -aD

And update .putout.json:

{
    "printer": "putout",
    "plugins": ["printer"]
}

To benefit from it.

Example

const {print} = require('@putout/printer');
const {parse} = require('putout');
const ast = parse('const a = (b, c) => {const d = 5; return a;}');

print(ast);
// returns
`
const a = (b, c) => {
    const d = 5;
    return a;
};
`;

Overrides

When you need to extend syntax of @putout/printer just pass a function which receives:

  • path, Babel Path
  • print, a function to output result of printing into token array;

When path contains to dashes __ and name, it is the same as: write(path.get('right')), and this is actually traverse(path.get('right')) shortened to simplify read and process.

Here is how you can override AssignmentPattern:

const ast = parse('const {a = 5} = b');

print(ast, {
    format: {
        indent: '    ',
        newline: '\n',
        space: ' ',
        splitter: '\n',
        quote: `'`,
        endOfFile: '\n',
    },
    semantics: {
        comments: true,
        maxSpecifiersInOneLine: 2,
        maxElementsInOneLine: 3,
        maxLogicalsInOneLine: 3,
        maxVariablesInOneLine: 4,
        maxTypesInOneLine: 3,
        maxPropertiesInOneLine: 2,
        maxPropertiesLengthInOneLine: 15,
        trailingComma: true,
        encodeSingleQuote: true,
        encodeDoubleQuote: false,
        roundBraces: {
            arrow: true,
            sequence: true,
            assign: false,
            new: true,
        },
    },
    visitors: {
        AssignmentPattern(path, {print}) {
            print('/* [hello world] */= ');
            print('__right');
        },
    },
});

// returns
'const {a/* [hello world] */= 5} = b;\n';

format

Options related to visuals and not related to logic of output can be changed with help of format, you can override next options:

const overrides = {
    format: {
        indent: '    ',
        newline: '\n',
        space: ' ',
        splitter: '\n',
        endOfFile: '\n',
    },
};
  • indent - use two spaces, tabs, or anything you want;
  • newline - symbol used for line separation;
  • space - default symbol used for space character;
  • splitter - mandatory symbol that used inside of statements like this:

Default options produce:

if (a > 3)
    console.log('ok');
else
    console.log('not ok');

But you can override them with:

const overrides = {
    format: {
        indent: '',
        newline: '',
        space: '',
        splitter: ' ',
    },
};

And have minified code:

if(a>3)console.log('ok');else console.log('not ok');

Semantics

Options used to configure logic of output, similar to ESLint rules:

  • maxElementsInOneLine - count of ArrayExpression and ArrayPattern elements placed in one line.
  • maxLogicalsInOneLine - count of LogicalExpression elements placed in one line.
  • maxVariablesInOneLine - count of VariableDeclarators in one line.
  • maxPropertiesInOneLine - count of ObjectProperties in one line.
  • maxPropertiesLengthInOneLine - maximum length of Object Property, when violated splits event if maxPropertiesInOneLine satisfies;
  • roundBraces to output braces or not
    • arrow: In a single argument arrow function expressions enabled: (a) => {}, disabled: a => {};
    • sequence: In sequence expressions: enabled: for(let e of l) (a(), b()), disabled: for(let e of l) a(), b();
    • assign: In assignment expressions: enabled: (e.o=w(e.o), disabled: e.o=w(e.o);
    • new: In new expressions: enabled: new Date(), disabled: new Date;

Visitors API

When you want to improve support of existing visitor or extend Printer with a new ones, you need next base operations:

override

When you need to override behavior of existing visitor use:

import {
    print,
    visitors as v,
} from '@putout/printer';

print(ast, {
    visitors: {
        CallExpression(path, printer, semantics) {
            const {print} = printer;

            if (!path.node.goldstein)
                return v.CallExpression(path, printer, semantics);

            print('__goldstein');
        },
    },
});

print

Used in previous example print can be used for a couple purposes:

  • to write string;
  • to write node when object passed;
  • to write node when string started with __;
print(ast, {
    visitors: {
        AssignmentPattern(path, {print, maybe}) {
            maybe.write.newline(path.parentPath.isCallExpression());
            print('/* [hello world] */= ');
            print('__right');
        },
    },
});

maybe

When you need some condition use maybe. For example, to add newline only when parent node is CallExpression you can use maybe.write.newline(condition):

print(ast, {
    visitors: {
        AssignmentPattern(path, {write, maybe}) {
            maybe.write.newline(path.parentPath.isCallExpression());
            write(' /* [hello world] */= ');
            write('__right');
        },
    },
});

write

When you going to output string you can use low-level function write:

print(ast, {
    visitors: {
        BlockStatement(path, {write}) {
            write('hello');
        },
    },
});

indent

When you need to add indentation use indent, for example when you output body, you need to increment indentation, and then decrement it back:

print(ast, {
    visitors: {
        BlockStatement(path, {write, indent}) {
            write('{');
            indent.inc();
            indent();
            write('some;');
            indent.dec();
            write('{');
        },
    },
});

traverse

When you need to traverse node path, you can use traverse:

print(ast, {
    visitors: {
        AssignmentExpression(path, {traverse}) {
            traverse(path.get('left'));
        },
    },
});

This is the same as print('__left') but more low-level, and supports only objects.

Speed Comparison

About speed, for file speed.js:

const {readFileSync} = require('node:fs');

const putout = require('putout');
const parser = require('@babel/parser');

const code = readFileSync('./lib/tokenize/tokenize.js', 'utf8');
const ast = parser.parse(code);

speed('recast');
speed('putout');

function speed(printer) {
    console.time(printer);

    for (let i = 0; i < 1000; i++) {
        putout(code, {
            printer,
            plugins: ['remove-unused-variables'],
        });
    }

    console.timeEnd(printer);
}

With contents of tokenize.js, we have:

image

License

MIT

changelog

2025.01.21, v12.7.0

feature:

  • 3cff6c6 @putout/printer: ObjectExpression: indent

2025.01.15, v12.6.0

feature:

  • b8e8648 ArrayExpression: Tuple with CallExpression inside

2025.01.15, v12.5.0

feature:

  • 8173406 @putout/printer: ObjectExpression: BigIntLiteral

2025.01.15, v12.4.0

feature:

  • 96a5778 ObjectExpression: inside tuple

2025.01.14, v12.3.0

feature:

  • a8074a5 @putout/printer: ExpressionStatement: inside ReturnStatement
  • ecf7d0e @putout/printer: move out ExpressionStatement

2025.01.13, v12.2.0

feature:

  • a07e92a @putout/printer: JSXOpeningElement: indent

2025.01.12, v12.1.1

feature:

  • da7a0f1 @putout/printer: jsx: indent

2025.01.12, v12.1.0

feature:

  • 93a6b0b @putout/printer: JSX: indent

2025.01.11, v12.0.0

feature:

  • 610ea6e @putout/printer: babel alpha v15
  • 8093095 @putout/printer: CallExpression: typeParameters -> typeArguments
  • d628037 @putout/printer: @putout/babel v3.0.0

2025.01.05, v11.14.0

feature:

  • ad933f7 @putout/printer: MemberExpression: chain: path.get

2024.12.31, v11.13.0

feature:

  • 99c7207 @putout/printer: TSUnionType: always add parens when inside TSArrayType (benjamn/recast#1416)

2024.12.25, v11.12.0

feature:

  • 516a7ae @putout/printer: IfStatement: newline when empty and last inside FunctionDeclaration

2024.12.22, v11.11.0

feature:

  • a9800ca @putout/printer: AssignmentExpression: inside BinaryExpression: parens

2024.12.20, v11.10.2

feature:

  • c9ced91 group imports
  • be513ff @putout/printer: nodejs/declare-after-require: apply

2024.12.19, v11.10.1

feature:

  • 6589deb @putout/printer: @putout/plugin-printer v4.0.0

2024.12.18, v11.10.0

feature:

  • 6c06c0c @putout/printer: ExportDeclaration: no specifiers

2024.12.18, v11.9.0

fix:

  • d30419e @putout/printer: LabeledStatement

feature:

  • 20c554a @putout/printer: TSDeclareMethod: comment: indent
  • 7702bf3 @putout/printer: LogicalExpressions: maxLogicalsInOneLine

2024.12.17, v11.8.0

feature:

  • 0ed288d @putout/printer: LabeledStatement: nexted

2024.12.17, v11.7.0

feature:

  • 8fd4fd6 @putout/printer: FunctionDeclaration inside TSModuleDeclarationExportnamed
  • ab8c280 @putout/printer: @putout/plugin-promises v16.0.0
  • ba04427 @putout/printer: LabeledStatement: indent

2024.12.16, v11.6.0

feature:

  • 77f529d @putout/printer: AwaitExpressions: parens

2024.12.15, v11.5.0

feature:

  • 2224570 @putout/printer: improve support of TSInterfaceDeclaration
  • d15b999 @putout/printer: putout v37.0.1

2024.12.13, v11.4.0

feature:

  • 332efd1 @putout/printer: LogicalExpression inside UnaryExpression: parens

2024.12.12, v11.3.0

feature:

  • b5de5fc @putout/printer: split BinaryExpression and LogicalExpression
  • 262f6ab @putout/printer: LogicalExpressions: maxElementsInOneLine
  • 4bccded @putout/printer: LogicalExpressions: newline

2024.12.12, v11.2.1

feature:

  • 56da95d @putout/printer: maybeParens

2024.12.12, v11.2.0

feature:

  • 523cd24 @putout/printer: TSUnionType: newlines inside of functions
  • 1f99cbb @putout/printer: @putout/plugin-minify v9.0.0
  • 2c507b1 @putout/printer: TSTypeQuery: maybe parens

2024.12.11, v11.1.1

fix:

  • d7b4d97 @putout/printer: typos

2024.12.11, v11.1.0

feature:

  • 43d733c @putout/printer: maxTypesInOneLine: add
  • 85c6d1b @putout/printer: TSUnionType: more
  • d3ee397 @putout/printer: ts-union-type: move out

2024.12.10, v11.0.0

feature:

2024.12.04, v10.11.0

feature:

  • 7ce10f9 @putout/printer: improve support of comments inside VariableDeclarator

2024.12.02, v10.10.0

feature:

  • 8273328 @putout/printer: OptionalMemberExpression: parens support

2024.12.01, v10.9.0

feature:

  • a5a0d34 @putout/printer: comments: decorator: improve support

2024.12.01, v10.8.1

fix:

  • c05da0e @putout/printer: declare first

2024.11.29, v10.8.0

feature:

  • c10faee @putout/printer: TSTypeParameterProperty: add support of decorators

2024.11.28, v10.7.0

feature:

  • 8c9131b @putout/printer: ObjectPattern: inside function

2024.11.28, v10.6.0

feature:

  • 0769003 @putout/printer: ImportDeclaration: imported: StringLiteral

2024.11.28, v10.5.0

feature:

  • 9e2a3c5 @putout/printer: ObjectPattern: nested

2024.11.27, v10.4.1

fix:

  • 2b128c2 @putout/printer: comments

2024.11.27, v10.4.0

feature:

  • 785146b @putout/printer: ArrayExpression: no loc

2024.11.04, v10.3.0

feature:

  • ed9efd1 @putout/printer: TSTypleType: formatting

2024.10.29, v10.2.0

feature:

  • 329ca16 @putout/printer: TSTypeLiteral: one inside TSTypeParameterInstantiation: no newline

2024.10.29, v10.1.1

feature:

  • 73a628b @putout/printer: parens -> maybe-parens

2024.10.28, v10.1.0

feature:

  • d77c7ce @putout/printer: TSInferType: parens

2024.10.27, v10.0.1

feature:

  • 453d7a2 @putout/printer: @putout/compare v15.0.2
  • ac170c0 @putout/printer: estree-to-babel v10.0.0

2024.10.26, v10.0.0

feature:

  • 24d872a @putout/printer: align with Babel v8

2024.10.23, v9.19.0

feature:

  • 8b5626e @putout/printer: TSInterfaceBody: comments
  • ebc416f @putout/printer: TSTypeParameter: default

2024.09.29, v9.18.0

feature:

  • 9bdc12e @putout/printer: CallExpression: parenthesized (putoutjs/minify#28)

2024.09.27, v9.17.0

feature:

  • 13a81f2 @putout/printer: FunctionDeclaration: nested

2024.09.27, v9.16.0

feature:

  • 3cf8ea6 @putout/printer: strict mode: newline
  • 41c63a8 @putout/printer: FunctionExpression: IIFE: improve support

2024.09.11, v9.15.2

fix:

  • 568ab44 @putout/printer: comment: parse-trailing-comments: no loc

2024.09.11, v9.15.1

feature:

  • 2e28d2e @putout/printer: comments: parse-trailing-comments

2024.09.02, v9.15.0

feature:

  • 3e8afd0 @putout/printer: exports: is

2024.09.02, v9.14.0

feature:

  • c75c1c5 @putout/printer: TSAsExpression: parens

2024.09.01, v9.13.0

feature:

  • 627dda0 @putout/printer: add AST validation
  • 88ab70b @putout/printer: eslint-plugin-putout v23.0.0

2024.08.24, v9.12.0

feature:

  • f58710e @putout/printer: ContinueStatement, BreakSteatement: add support of label

2024.08.01, v9.11.0

feature:

  • 0823adb @putout/printer: comments: ClassMethod

2024.08.01, v9.10.0

feature:

  • 1e95457 @putout/printer: ClassMethod: override

2024.07.16, v9.9.0

fix:

  • d59aaae @putout/printer: JSXText: raw: & (coderaiser/putout#216)

feature:

  • 3f87ab5 @putout/printer: putout v36.0.0

2024.07.14, v9.8.1

feature:

  • 1490187 @putout/printer: YieldExpression: maybeParens

2024.07.14, v9.8.0

feature:

  • 8fc9139 @putout/printer: maybe-print-computed: add
  • 8800d25 @putout/printer: printKey: add

2024.07.13, v9.7.0

feature:

  • 192a828 @putout/printer: TryStatement: spaces: align with eslint-plugin-putout
  • 5fb3b67 @putout/printer: MemberExpression: object used as AssignProperty (coderaiser/minify#124)

2024.07.11, v9.6.0

feature:

  • 0d1f296 @putout/printer: MemberExpression: object used as AssignProperty (coderaiser/minify#124)

2024.06.16, v9.5.0

feature:

  • f42012c @putout/printer: c8 v10.1.2
  • b782436 @putout/printer: AssignmentExpression: nested

2024.06.10, v9.4.0

feature:

  • a446f8e @putout/printer: AssignmentExpression: always add braces inside UnaryExpression

2024.06.10, v9.3.0

feature:

  • 960565f @putout/printer: roundBraces: add ability to split to: arrow, sequence and assign

2024.06.09, v9.2.0

feature:

  • 6fae5d0 @putout/printer: SequenceExpressions: braces: add support of ConditinalExpressions (@putoutjs/minify#15)

2024.06.09, v9.1.0

feature:

  • 82ddbc3 @putout/printer: semantics: roundBraces: add support of AssignmentExpression (@putoutjs/minify#15)

2024.06.07, v9.0.3

feature:

  • a254ee6 @putout/printer: SequenceExpression maybe-write-brace

2024.06.07, v9.0.2

feature:

  • 153f14d @putout/printer: ReturnStatement: SequenceExpression: no space, no roundBraces

2024.06.07, v9.0.1

feature:

  • cf5dfe7 @putout/printer: SequenceExpression: roundBraces: LogicalExpressions

2024.06.07, v9.0.0

feature:

  • d4510ed @putout/printer: semantics: roundBraces: add support of SequenceExpressions

2024.06.07, v8.48.1

feature:

  • 5fe30fd @putout/printer: move out SequenceExpression

2024.06.07, v8.48.0

feature:

  • 715d6f3 @putout/printer: TryStatement: add support of format: space (#15)

2024.06.06, v8.47.0

feature:

  • 53c7909 @putout/printer: ArrayExpression: comma (coderaiser/putout#206)

2024.06.06, v8.46.0

feature:

  • 98b3425 @putout/printer: TSTypeParameterDeclaration: trailingComma (#coderaiser/putout#207)

2024.06.06, v8.45.0

feature:

  • 43d5b18 @putout/printer: TSAsExpression: ObjectExpression (coderaiser/putout#206)

2024.06.06, v8.44.0

feature:

  • 5bb32c9 @putout/printer: Class: extends + implements (coderaiser/putout#206)

2024.06.06, v8.43.0

feature:

  • e48fb76 @putout/printer: TSPropertySignature: computed (coderaiser/putout#206)

2024.06.05, v8.42.0

feature:

  • d33926d @putout/printer: improve support of TSPropertySignature inside of TSTypeLiteral (coderaiser/putout#206)

2024.06.03, v8.41.0

feature:

  • 8a9f478 @putout/printer: ClassExpression: spaces

2024.05.31, v8.40.0

feature:

  • 5ef27d5 @putout/printer: samadhi v2.8.0
  • 9d00b2c @putout/printer: VariableDeclaration: newline before IfStatement

2024.05.27, v8.39.1

fix:

  • 3248f64 @putout/printer: VariableDeclaration: loc

2024.05.26, v8.39.0

feature:

  • cb3474b @putout/printer: TSMethodDeclaration: getter/setter

2024.05.24, v8.38.0

feature:

  • f1f3d74 @putout/printer: check-dts v0.8.0
  • 2e9ff2d @putout/printer: AssignmentExpression: newline after FunctionDeclaration

2024.05.21, v8.37.0

feature:

  • 97bcc9e @putout/printer: VariableDeclaration: add support of LabeledStatement

2024.05.19, v8.36.0

feature:

  • 51eb249 @putout/printer: ReturnStatement inside IfStatement: improve support

2024.05.16, v8.35.2

fix:

  • 3dc22a9 @putout/printer: AssignmentExpression: no loc

2024.05.14, v8.35.1

fix:

  • 900769f @putout/printer: AssignmentExpression: newline

2024.05.14, v8.35.0

feature:

  • 6eda60b @putout/printer: AssignmentExpression: add new line when takes couple lines
  • 738d2aa @putout/printer: @putout/plugin-promises v15.0.0

2024.05.07, v8.34.0

feature:

  • 8a303f5 @putout/printer: jsx: JSXOpeningElement: indent

2024.05.03, v8.33.0

feature:

  • c8b9948 @putout/printer: ObjectPattern: improve support of maxPropertiesLengthInOneLine
  • 039c54d @putout/printer: ObjectPattern: indent: simplify

2024.05.03, v8.32.0

feature:

  • 4c10986 @putout/printer: ObjectPattern: used as Function param

2024.05.03, v8.31.0

feature:

  • 5fd0053 @putout/printer: ArrayExpression: is-object-after-simple: simplify
  • 22dae11 @putout/printer: ArrayExpression: is-object-after-simple

2024.05.02, v8.30.0

feature:

  • 9a3ea75 @putout/printer: ArrayExpression: tuple: call

2024.05.02, v8.29.0

feature:

  • 3286498 @putout/printer: ObjectExpression inside ArrayExpression tuple

2024.05.02, v8.28.0

fix:

  • b1fd34d @putout/printer: tsTypeAliasDeclaration: indent

feature:

  • ac26e2e @putout/printer: ArrayExpression: inside nested array call

2024.05.02, v8.27.0

feature:

  • 20b3eac @putout/printer: ArrayExpression: nested array: space

2024.05.01, v8.26.0

feature:

  • 510df22 @putout/printer: ArrayExpression: [boolean, object]

2024.05.01, v8.25.0

feature:

  • 095a130 @putout/printer: ImportDeclaration: maxPropertiesLengthInOneLine

2024.04.30, v8.24.0

feature:

2024.04.30, v8.23.0

feature:

  • a0dc84e @putout/printer: improve support of Decorators

2024.04.29, v8.22.0

feature:

  • 1d67db1 @putout/printer: improve trailingComments support

2024.04.29, v8.21.0

feature:

  • 2abb228 @putout/printer: comments: improve

2024.04.24, v8.20.1

feature:

  • 4551754 @putout/printer: ArrayExpression: CallExpression, ObjectExpression

2024.04.23, v8.20.0

feature:

  • 5a53f7e @putout/printer: ArrayExpression: array-object-identifier

2024.04.19, v8.19.0

feature:

  • 285747d @putout/printer: ArrayExpression: SpreadAfterObject

2024.04.19, v8.18.0

feature:

  • 8a56e08 @putout/printer: ArrayExpression: SpreadElement after ObjectExpression

2024.04.16, v8.17.0

feature:

  • 60c64ba @putout/printer: IfStatement: nested no body: improve

2024.04.16, v8.16.0

feature:

  • 95b0c77 @putout/printer: ImprotDeclaration: maxSpecifiersInOneLine: align to eslint-plugin-putout

2024.04.16, v8.15.0

feature:

  • e17158f @putout/printer: ObjectPattern: improve indentation

2024.04.15, v8.14.0

feature:

  • 214d6c7 @putout/printer: ObjectPattern: improve support of ArrayPattern tuple

2024.04.11, v8.13.0

feature:

  • 454c659 @putout/printer: ArrayExpression: SpreadElement, ObjectExpression

2024.04.11, v8.12.1

feature:

  • cfb862d @putout/printer: tokenize: ArrayExpression: Identifier, Object: Tuple

2024.04.11, v8.12.0

feature:

  • 426fccf @putout/printer: ArrayExpression, ObjectExpression: improve support of printing Identifier, Object inside Arrray

2024.04.09, v8.11.0

feature:

  • 914b94a @putout/printer: ImportDeclaration: when there is couple specifiers and one of them renamed - always write each on separate line
  • c1961a5 @putout/printer: eslint-plugin-n v17.0.0
  • abd17d5 @putout/printer: eslint v9.0.0

2024.04.06, v8.10.1

feature:

  • 079b1ad @putout/printer: TSExportAssignment: add newline when has next

2024.04.04, v8.10.0

feature:

  • 5f46656 @putout/printer: TSMappedType: no typeAnnotation

2024.03.31, v8.9.0

feature:

  • d7253ff @putout/printer: TSExportAssignment: add

2024.03.06, v8.8.1

fix:

  • cce2240 @putout/printer: TSImportType

2024.03.04, v8.8.0

feature:

  • fda0513 @putout/printer: import-expression: TSImportType: createImportExpression

2024.02.29, v8.7.1

fix:

  • ca32da6 @putout/printer: TSImportType: space when no options passed

2024.02.28, v8.7.0

feature:

  • 7cbacc0 @putout/printer: TSImportType: add (babel/babel#16276)

2024.02.19, v8.6.1

fix:

  • 2fa4230 @putout/printer: maybePlugin -> maybeVisitor

2024.02.19, v8.6.0

feature:

  • c2c749e @putout/printer: export: maybePlugin

2024.02.15, v8.5.0

feature:

  • 0270569 @putout/printer: ArrayExpression: couple elements including nesting

2024.02.15, v8.4.0

feature:

  • 1b6c4d1 @putout/printer: ArrayExpression: improve support

2024.02.14, v8.3.0

feature:

  • 788739f @putout/printer: SwitchStatement: improve indent

2024.02.12, v8.2.0

feature:

  • 673ec74 @putout/printer: ArrayExpression: isStringAndArray: check array count

2024.02.05, v8.1.0

feature:

  • 71ffbfe @putout/printer: supertape v10.0.0
  • 67c1bba @putout/printer: ArrayExpression: improve support
  • 9e52931 @putout/printer: @putout/plugin-minify v8.0.0

2024.01.19, v8.0.1

feature:

  • e664254 @putout/printer: putout v35.0.0
  • c61b526 @putout/printer: @putout/plugin-minify v7.1.1
  • 9bc0a84 @putout/printer: @putout/operator-json v2.0.0
  • 85f79d1 @putout/printer: c8 v9.1.0

2024.01.09, v8.0.0

feature:

  • 7bfc136 @putout/printer: format.roundBraceOpen/roundBraceClose -> semantics.roundBraces (#4)
  • d235aee @putout/printer: @putout/plugin-react-hooks v6.0.0

2023.12.18, v7.4.0

feature:

  • 48b8257 @putout/printer: encodeDoubleQuote: add

2023.12.18, v7.3.0

fix:

  • 541b97e @putout/printer: isIndented: no loc

2023.12.14, v7.2.0

feature:

  • 389b695 @putout/printer: var inside if (coderaiser/putout#194)

2023.12.12, v7.1.2

feature:

  • 7801ff7 @putout/printer: @putout/plugin-promises v14.0.0
  • a34da40 @putout/printer: estree-to-babel v9.0.0

2023.12.12, v7.1.1

feature:

  • feefbe7 @putout/printer: rm useless comment deduplicate

2023.12.11, v7.1.0

fix:

  • 0bab268 @putout/printer: tokenize: node check
  • 6731f76 @putout/printer: tokenize: node check

feature:

  • 43bee61 @putout/printer: ImportExpression: add
  • c718594 @putout/printer: @putout/operate v12.0.0
  • 11aed5c @putout/printer: typescript v5.3.3
  • ce15416 @putout/printer: supertape v9.0.0
  • df59fe3 @putout/printer: eslint-plugin-putout v22.0.0

2023.12.10, v7.0.0

feature:

  • d9a3874 @putout/printer: escover v4.0.1
  • 93781cd @putout/printer: @putout/compare v14.0.0
  • e2fe43d @putout/printer: drop support of node < 18
  • b713b09 @putout/printer: madrun v10.0.0
  • 16df5a6 @putout/printer: putout v34.0.0

2023.12.08, v6.17.0

feature:

  • ff5b2bf @putout/printer: @putout/plugin-minify v6.2.0
  • a5c7341 @putout/printer: Multiline Comments after function params

2023.12.03, v6.16.0

feature:

  • 27a2185 @putout/printer: ReturnStatement inside IfStatement: newline

2023.12.03, v6.15.0

feature:

  • f05ae8a @putout/printer: MemberExpression: chain inside ifStatement

2023.12.03, v6.14.0

feature:

  • a00d8cb @putout/printer: comment: chain

2023.12.03, v6.13.0

feature:

  • bc106c1 @putout/printer: ArrayExpression: object after spread

2023.12.01, v6.12.0

feature:

  • 5534a06 @putout/printer: couple trailing comments

2023.12.01, v6.11.6

feature:

  • 60ae143 @putout/printer: BlockStatement: siplify

2023.12.01, v6.11.5

feature:

  • 96f6f4b @putout/printer: ArrayExpression: newline: isMultiLine

2023.12.01, v6.11.4

feature:

  • d181e1c @putout/printer: ArrayExpression: notNumbersInsideForOf

2023.12.01, v6.11.3

feature:

  • f363754 ArrayExpression: isOneLine

2023.12.01, v6.11.2

feature:

  • 8bc537a ArrayExpression: indent

2023.12.01, v6.11.1

feature:

  • 39e3a0c ArrayExpression: simplify

2023.11.30, v6.11.0

feature:

  • 6390281 @putout/printer: improve support of comments

2023.11.30, v6.10.0

feature:

  • dfe625e @putout/printer: ObjectProperty: comments: improve

2023.11.30, v6.9.0

feature:

  • 672f353 @putout/printer: improve support of trailing comments on next line

2023.11.30, v6.8.2

feature:

  • 2e8cba7 @putout/printer: SpreadElement: comment

2023.11.30, v6.8.1

fix:

  • 7df97ad @putout/printer: duplicate comments

2023.11.30, v6.8.0

feature:

  • 82cd2e3 @putout/printer: leading comments in SpreadElement ObjectProperty

2023.11.29, v6.7.0

feature:

  • 0e3a3cc @putout/printer: nested arrays

2023.11.28, v6.6.0

fix:

  • 954cda8 @putout/printer: ArrayExpression: array inside array

2023.11.28, v6.5.0

feature:

  • afa7f81 @putout/printer: ArrayExpression: array inside array

2023.11.16, v6.4.1

fix:

  • a96503f @putout/printer: duplicated comments (babel/babel#16106)

2023.11.15, v6.4.0

feature:

  • a5a01f0 @putout/printer: use @putout/operator-json instead of processors

2023.11.12, v6.3.0

feature:

  • d4795dc @putout/printer: putout v33.1.1
  • 68439dd @putout/printer: StringLiteral: encode single quote (coderaiser/putout#192)

2023.11.09, v6.2.0

feature:

  • 6892d1c @putout/printer: json: add support of @putout/processor-filesystem

2023.11.03, v6.1.1

fix:

  • 558127e @putout/printer: json: override

2023.11.02, v6.1.0

feature:

  • 138a4ac @putout/printer: RegExpLiteral: use pattern when no raw

2023.10.28, v6.0.2

fix:

  • d1a013d @putout/printer: json: mutate object

2023.10.28, v6.0.1

fix:

  • 118db48 @putout/printer: TYPES: END_OF_FILE

2023.10.28, v6.0.0

feature:

  • a739ffa package: eslint-plugin-putout v21.0.1
  • 9c6dd07 @putout/printer: format: endOfFile

2023.10.26, v5.44.0

feature:

  • b9e05b0 @putout/printer: JSX: improve handling return with comment

2023.10.25, v5.43.0

feature:

  • 743122f JSX: newlines

2023.10.25, v5.42.0

feature:

  • 7dfa421 @putout/printer: JSX: improve

2023.10.25, v5.41.0

feature:

  • 3f42489 @putout/printer: CommentLine: improve support

2023.10.25, v5.40.0

feature:

  • b5baa66 @putout/printer: CommentLine: improve support

2023.10.25, v5.39.0

feature:

  • e02cb0e JSXExpression: improve support
  • 1dc666f @putout/printer: ArrowFunctionExpression: space

2023.10.25, v5.38.0

feature:

  • 983412b comments: leading: improve

2023.10.24, v5.37.0

feature:

  • f01afa3 @putout/printer: TSInterfaceBody: simplify

2023.10.24, v5.36.0

feature:

  • 495d9d9 @putout/printer: TSPropertySignature: readonly

2023.10.24, v5.35.2

feature:

  • d813f7f @putout/printer: comments: simplify

2023.10.24, v5.35.1

feature:

  • 689ec53 @putout/printer: TSTypeAliasDeclaration: simplify

2023.10.24, v5.35.0

feature:

  • 7664649 @putout/printer: CommentBlock: improve support

2023.10.24, v5.34.0

feature:

  • 66a867a @putout/printer: comments: improve

2023.10.24, v5.33.0

feature:

  • 8bd4d6c @putout/printer: JSXText: raw

2023.10.24, v5.32.0

feature:

  • 2888e77 ExportNamedDeclaration: couple specifiers + source

2023.10.20, v5.31.0

feature:

  • 6b56994 @putout/printer: IfStatement: indent

2023.10.19, v5.30.0

feature:

  • c665680 @putout/printer: CallExpression: no arguments

2023.10.19, v5.29.0

feature:

  • ab20fc2 types: add

2023.10.18, v5.28.0

feature:

  • 202eca7 @putout/printer: ObjectMethod: typeParameters

2023.10.18, v5.27.0

feature:

  • f799814 @putout/printer: ClassDeclaration: supertTypeParameters
  • 36192f7 @putout/printer: ClassMethod: typeParameters

2023.10.18, v5.26.0

feature:

  • 801a8f1 @putout/printer: TSDeclareFunction: typeParameters

2023.10.18, v5.25.0

feature:

  • cb4656c @putout/printer: TSInterfaceDeclaration: extends (coderaiser/putout#186)

2023.10.17, v5.24.0

feature:

  • 463cadc @putout/printer: ExportAllDeclaration: exportKind = type

2023.10.17, v5.23.0

feature:

  • fb1ae6c @putout/printer: TSImportEqualsDeclaration: isExport support

2023.10.11, v5.22.1

feature:

  • a6fe0bc package: estree-to-babel v8.0.0
  • 6072ebd package: @putout/plugin-minify v5.0.0
  • 1e8f92a package: rendy v4.0.0

2023.10.05, v5.22.0

feature:

  • 8a98fa5 @putout/printer: TSTypeParameter inside TSMappedType: extends -> in (coderaiser/putout#185)

2023.10.03, v5.21.0

feature:

  • 3c291c6 @putout/printer: export visitors

2023.10.02, v5.20.0

feature:

  • d6a690b @putout/printer: ClassProperty: comment

2023.10.02, v5.19.0

feature:

  • 6c0de67 @putout/printer: ClassProperty: readonly

2023.10.02, v5.18.0

feature:

  • cc10a48 @putout/printer: maybe

2023.10.02, v5.17.0

feature:

  • 2b343e6 @putout/printer: ClassBody: comments

2023.10.02, v5.16.0

feature:

  • ac06127 @putout/printer: TSModuleDeclaration: module

2023.10.02, v5.15.0

feature:

  • 209cdd5 @putout/printer: TSEnumDeclaration: not const
  • 49837dc package: @putout/plugin-printer v3.0.0

2023.10.02, v5.14.0

feature:

  • 0157a3c @putout/printer: ClassDeclaration: declare
  • 09310b8 @putout/printer: typescript: maybeDeclare

2023.10.02, v5.13.0

feature:

  • e8d8b04 @putout/printer: typescript: type, interface: add support of declare

2023.09.26, v5.12.0

feature:

  • 41a1ed2 @putout/printer: comment: ClassDeclaration: decorator

2023.09.26, v5.11.0

feature:

  • 6b32c3b @putout/printer: add support of sourcePhaseImports

2023.09.26, v5.10.0

feature:

  • 04ff653 @putout/printer: improve check of unsupported node

2023.09.23, v5.9.0

feature:

  • f163f9e @putout/printer: drop maybeMarkBefore
  • 06e2b19 @putout/printer: maybeDecorators

2023.09.23, v5.8.0

fix:

  • fe8b718 @putout/printer: ClassProperty: options

feature:

  • 0fdc0d5 @putout/printer: maybePrintDecorators

2023.09.22, v5.7.2

fix:

  • 45631de @putout/printer: avoid leaking mutation of a tree

2023.09.22, v5.7.1

feature:

  • 24a2ca5 @putout/printer: ClassAcessorProperty: breakline

2023.09.22, v5.7.0

feature:

  • a0dd93c @putout/printer: ClassAcessorProperty: add

2023.09.22, v5.6.0

feature:

  • c86e9bd @putout/printer: ClassDeclaration: extends

2023.09.20, v5.5.1

feature:

  • 42e1a65 @putout/printer: ObjectExpression: maybeParens: get back old behaviour

2023.09.20, v5.5.0

feature:

  • 4b84e6e @putout/printer: maybePrintTypeAnnotation

2023.09.20, v5.4.0

feature:

  • 896b185 @putout/printer: maybeTypeAnnotation
  • 74f9303 @putout/printer: ObjectExpression: maybeParens

2023.09.19, v5.3.0

feature:

  • c0b651a @putout/printer: ArrayPattern: typeAnnotation

2023.09.19, v5.2.0

feature:

  • 018f2c3 @putout/printer: ObjectPattern: typeAnnotation (coderaiser/putout#183)

2023.09.19, v5.1.0

feature:

  • 8cea880 package: eslint-plugin-putout v20.0.0
  • 7ae8762 @putout/printer: ObjectExpression used as argument of CallExpression with MemberExpression chain used as callee

2023.09.18, v5.0.0

feature:

  • 9ad0e3c package: putout v32.0.4
  • b8e15fc package: estree-to-babel v7.0.0
  • ebcf3aa package: @putout/plugin-react-hook-form v4.0.0
  • efbf8e8 package: @putout/plugin-promises v13.0.0
  • 7ebee8a package: @putout/operate v11.0.0
  • a40cb80 package: @putout/compare v13.0.0
  • 84c933d @putout/printer: TSMappedType: nameType

2023.09.13, v4.2.0

feature:

  • d5b4479 @putout/printer: babel 7 -> babel 8
  • dd1b24e @putout/printer: typescript: newline -> breakline

2023.09.04, v4.1.0

feature:

  • 317718e @putout/printer: imporove JSON support

2023.09.03, v4.0.0

feature:

  • d935f8f @putout/printer: semantics: trailingComma
  • 9aa52e4 @putout/printer: format: quote: add

2023.09.01, v3.8.0

feature:

  • 002214d @putout/printer: TSAsExpression: parens

2023.09.01, v3.7.1

fix:

  • d459cb1 @putout/printer: ClassMethod: public generator

2023.08.31, v3.7.0

feature:

  • 427e14f package: @putout/plugin-minify v4.0.0
  • f3a6959 package: @putout/plugin-promises v12.0.0
  • 52c04e4 package: @putout/plugin-printer v2.0.0
  • 1c7171d @putout/printer: VariableDeclaration inside TSModuleDeclaration

2023.08.11, v3.6.0

feature:

  • 8f402bb TSSatisfiesExpression: add

2023.08.10, v3.5.0

feature:

  • ae4808e maybeParens

2023.08.10, v3.4.0

feature:

  • d29fdfd (Arrow)FunctionExpression: parens

2023.08.10, v3.3.0

feature:

  • e1396e3 DoWhileStatement: indent, newline

2023.08.10, v3.2.0

feature:

  • 130a43e ClassMethod: async

2023.08.09, v3.1.0

feature:

  • f008b95 ObjectExpression: nested call

2023.08.09, v3.0.2

fix:

  • d3af233 @putout/printer: generator

feature:

  • b7ce82b 2putout/printer: TSFunctionType: parens
  • ef67c67 @putout/printer: drop support of Babel < 8

2023.08.05, v3.0.1

feature:

  • 3528d83 2putout/printer: TSFunctionType: parens

2023.08.05, v3.0.0

feature:

  • 90898aa @putout/printer: drop support of Babel < 8
  • 95e659c package: @putout/plugin-minify v2.4.0
  • 4025615 package: @putout/operate v10.0.2
  • df5945b package: @putout/compare v12.0.4
  • 6092ae6 package: nodemon v3.0.1
  • b7428a5 package: estree-to-babel v6.0.0
  • 2a6decd package: eslint-plugin-putout v19.0.2
  • e17d03f package: putout v31.0.3

2023.08.03, v2.96.0

feature:

  • 205200b @putout/printer: UpdateExpression: parens (coderaiser/minify#112)

2023.08.02, v2.95.0

feature:

2023.08.01, v2.94.0

feature:

  • b12d1d8 @putout/printer: TSInterfaceDeclaration: newlines

2023.08.01, v2.93.0

feature:

  • b1d5d54 @putout/printer: TSTypeAliasDeclaration inside ExportDeclaration: newline

2023.07.31, v2.92.0

feature:

  • 20ecdfa @putout/printer: TSTypeAliasDeclaration: newline

2023.07.31, v2.91.0

feature:

  • 0a095e1 ts-tuple-type: newline

2023.07.28, v2.90.0

feature:

  • 21bd4f8 @putout/printer: declare ClassProperty (coderaiser/putout#175)

2023.07.27, v2.89.0

feature:

  • 6d324e9 @putout/printer: ClassMethod: scoped constructor (coderaiser/putout#172)

2023.07.27, v2.88.0

feature:

  • 21e8a33 @putout/printer: TSThisType (coderaiser/putout#171)

2023.07.26, v2.87.0

feature:

  • 389e5d3 @putout/printer: TSEnumMember: without initializer (coderaiser/putout#169)

2023.07.26, v2.86.0

feature:

  • 42a28c1 @putout/printer: static-property (coderaiser/putout#159)

2023.07.25, v2.85.0

feature:

  • c28e82a @putout/printer: TSConstructorType: add (coderaiser/putout#149)

2023.07.25, v2.84.0

feature:

  • 5febcd6 @putout/printer: ClassMethod: accessibility

2023.07.24, v2.83.0

feature:

  • 1a0d39a @putout/printer: TSNamedTupleMember

2023.07.21, v2.82.0

feature:

  • 9332934 @putout/printer: TSDeclaredMethod

2023.07.21, v2.81.0

feature:

  • dddf2b5 @putout/printer: TSExternalModuleReference

2023.07.20, v2.80.0

feature:

  • 25cdb60 @putout/printer: SwitchStatement: format

2023.07.20, v2.79.0

feature:

  • 036d9b0 @putout/printer: TSImportEqualsDeclaration

2023.07.20, v2.78.0

feature:

  • 5545104 @putout/printer: TSEnumDeclaration

2023.07.20, v2.77.0

feature:

  • 612b039 @putout/printer: TSNonNullExpression

2023.07.15, v2.76.0

feature:

  • 1045e8d @putout/printer: YieldExpression: delegate

2023.07.15, v2.75.0

feature:

  • bfb204e @putout/printer: ClassMethod: generator

2023.07.15, v2.74.0

feature:

  • e6b07a5 @putout/printer: TSTypePredicate: add

2023.07.14, v2.73.1

feature:

  • 08a8d1f ConditionalExpression: simplify

2023.07.14, v2.73.0

feature:

  • 528a1aa @putout/printer: ConditionalExpression: braces
  • 28eb512 @putout/printer: ConditionalExpression: braces

2023.07.14, v2.72.0

feature:

  • c81de01 TSTypeParameterDeclaration inside ArrowExpression

2023.07.14, v2.71.0

feature:

  • 71bf28d @putout/printer: TSTypeParameterInstantiation: couple params (coderaiser/putout#147)

2023.07.12, v2.70.0

feature:

  • a20823b @putout/printer: ExportDeclaration: add support of exportKind

2023.07.10, v2.69.0

feature:

  • f057898 @putout/printer: TSDeclareFunction

2023.07.10, v2.68.0

feature:

  • e1fc3d9 @putout/printer: ObjectPattern: properties: AssignmentPattern: newline

2023.07.10, v2.67.0

feature:

  • de5a124 @putout/printer: TSModuleDeclaration inside ExportDeclaration

2023.07.10, v2.66.0

feature:

  • 77088cb @putout/printer: TSDeclareFunction: params

2023.07.10, v2.65.0

feature:

  • f788cdf @putout/printer: VariableDeclarator: declare

2023.07.10, v2.64.0

feature:

  • 291163a @putout/printer: RestElement: typeAnnotation

2023.07.10, v2.63.0

feature:

  • d176491 @putout/printer: TSFunctionType: parameters

2023.07.10, v2.62.0

feature:

  • 3fe49ba @putout/printer: tokenize: TSIntersectionType: add

2023.07.09, v2.61.0

feature:

  • 500cf5d @putout/printer: SwitchCase: comments

2023.07.09, v2.60.0

feature:

  • d9c748f @putout/printer: SwitchCase: comments

2023.07.09, v2.59.0

feature:

  • abfbddf @putout/printer: MemberExpression: nested call

2023.07.08, v2.58.0

feature:

  • 3af1546 @putout/printer: Function: innerComments

2023.07.08, v2.57.0

feature:

  • 0e980f4 @putout/printer: ObjectProperty: improve support of multiline comments

2023.07.08, v2.56.0

feature:

  • 90bd7fb @putout/printer: comments: after directive
  • ec4bebd @putout/printer: program
  • e95e634 @putout/printer: comments: directives
  • 7ecc615 @putout/printer: comments

2023.07.07, v2.55.0

feature:

  • 0c2a787 @putout/printer: ForOfStatement: await

2023.07.06, v2.54.0

feature:

  • 0fe105a @putout/printer: TupleExpression: add support

2023.07.06, v2.53.0

feature:

  • c1c667d @putout/printer: ObjectExpression: comma

2023.07.06, v2.52.0

feature:

  • fd9bcf3 @putout/printer: JSXEmptyExpression: add
  • 29bdc0b package: eslint-plugin-putout v18.0.0
  • 1e83b78 package: @putout/compare v11.0.0

2023.07.05, v2.51.0

feature:

  • f24b8f3 @putout/printer: add support of RecordExpression

2023.07.05, v2.50.0

feature:

  • f77a990 @putout/printer: BlockStatement: newlines
  • 483494a package: c8 v8.0.0
  • dabddf7 package: @putout/plugin-promises v11.0.0
  • bf8f478 package: putout v30.0.0

2023.07.05, v2.49.0

feature:

  • 1120884 @putout/printer: ImportDeclaration: newline

2023.07.05, v2.48.0

feature:

  • 580a8ff @putout/printer: typescript: TSInterfaceDeclaration: empty body

2023.07.05, v2.47.0

feature:

  • dc0ba73 @putout/printer: Program: improve support of inner comments

2023.07.04, v2.46.0

feature:

  • c131fac @putout/printer: Directives
  • 70baffb @putout/printer: add support of directives

2023.07.04, v2.45.0

feature:

  • d30c1cd @putout/printer: ObjectExpression: spread

2023.07.03, v2.44.0

feature:

  • f02ef14 @putout/printer: DebuggerStatement: newline

2023.07.03, v2.43.0

feature:

  • 3362977 @putout/printer: tryStatement: newline
  • 81004a0 @putout/printer: ClassDeclaration: spaces
  • 869323a @putout/printer: ClassDeclaration: spaces

2023.07.03, v2.42.1

feature:

  • cd274b2 @putout/printer: BinaryExpression: spaces: in (coderaiser/minify#109)

2023.06.22, v2.42.0

feature:

  • ae2311d @putout/printer: Decorator: add

2023.06.22, v2.41.0

feature:

  • 9c7e82f @putout/printer: expressions: Decorator: add

2023.06.22, v2.40.0

feature:

  • e5730cb @putout/printer: TSCallSignatureDeclaration: add

2023.06.22, v2.39.0

feature:

  • 2cb0a67 @putout/printer: TSIndexSignature: add

2023.06.22, v2.38.0

feature:

  • 1a9915d @putout/printer: TSMethodSignature: add

2023.06.22, v2.37.0

feature:

  • 7eeab91 @putout/printer: TSConstructorSignatureDeclaration: add

2023.06.22, v2.36.0

feature:

  • 57649ed @putout/printer: AssignmentPattern: improve support of TSParameterProperty

2023.06.22, v2.35.0

feature:

  • 7de32c3 @putout/printer: TSLiteralType: add support

2023.06.20, v2.34.0

feature:

  • 63a5daa @putout/printer: Throw: expression: add support

2023.06.20, v2.33.0

feature:

  • d3487ee @putout/printer: WhileStatement: indent

2023.06.19, v2.32.0

feature:

  • 1e478d1 @putout/printer: VariableDeclarator: useless newline

2023.06.19, v2.31.0

feature:

  • bfb0901 @putout/printer: ArrayExpression: newlines

2023.06.19, v2.30.0

feature:

  • 91710cd @putout/printer: ArrayExpression: newline

2023.06.19, v2.29.0

feature:

  • feb7c6a @putout/printer: ArrayExpression: String/String: tuple

2023.06.19, v2.28.0

feature:

  • 10230c2 @putout/printer: ObjectExpression inside ArrayExpression: newline

2023.06.19, v2.27.0

feature:

  • 9fedd57 @putout/printer: ClassMethod: computed (coderaiser/minify#106)

2023.06.19, v2.26.1

fix:

  • 745c975 @putout/printer: ObjectPattern: RestElement: newline

2023.06.19, v2.26.0

feature:

  • ce43d46 @putout/printer: ObjectPattern: RestElement: newline

2023.06.19, v2.25.0

feature:

  • 0a70e74 @putout/printer: FunctionDeclaration: generator: imporve support (coderaiser/minify#108)

2023.06.16, v2.24.0

feature:

  • 32d4852 @putout/printer: VariableDeclaration: newline

2023.06.16, v2.23.0

feature:

  • 8dd9ddf @putout/printer: ArrayExpression: newline

2023.06.16, v2.22.0

feature:

  • f092cf8 @putout/printer: ObjectPattern: add maxPropertiesInOneLine

2023.06.16, v2.21.0

feature:

  • 811fc57 @putout/printer: ObjectMethod: computed (coderaiser/minify#106)

2023.06.16, v2.20.0

feature:

  • 301d8af @putout/printer: ObjectMethod: generator (coderaiser/minify#107)

2023.06.16, v2.19.0

feature:

  • 8b5f8c4 @putout/printer: BinaryExpression: minification of UnaryExpression (coderaiser/minify#105)

2023.06.15, v2.18.0

feature:

  • ad883dc @putout/printer: VariableDeclaration: no newline when previous has

2023.06.15, v2.17.0

feature:

  • 27c6292 @putout/printer: ImportDefault: newlines

2023.06.14, v2.16.0

feature:

  • 3540087 @putout/printer: ObjectExpression: newline

2023.06.14, v2.15.0

feature:

  • e714be8 @putout/printer: ImportDeclaration: indent

2023.06.14, v2.14.0

feature:

  • 0f3dbaf @putout/printer: ArrayExpression: no newline when one element with type SpreadElement

2023.06.14, v2.13.1

fix:

  • ed8870a ArrayExpression

2023.06.13, v2.13.0

feature:

  • 1e77dca @putout/printer: ArrayExpression: one string literal

2023.06.13, v2.12.0

feature:

  • a264001 @putout/printer: ArrayExpression: newline
  • cbe69f6 @putout/printer: BlockStatement

2023.06.13, v2.11.0

feature:

  • e7a9a98 @putout/printer: TSDeclare: add support of declare

2023.06.13, v2.10.0

feature:

  • b7dbe6c @putout/printer: improve support of nested IfStatement

2023.06.13, v2.9.0

feature:

  • edfd3fa @putout/printer: literals: add support of braces round Identifier

2023.06.13, v2.8.0

feature:

  • 93b580e @putout/printer: improve node support

2023.06.13, v2.7.0

feature:

  • 7f3fd61 @putout/printer: ObjectPattern: couple levels deep
  • 7922ba6 @putout/printer: ObjectPattern: move out

2023.06.13, v2.6.0

fix:

  • 30e2aa1 @putout/printer: ObjectExpression: used as argument call

2023.06.12, v2.5.0

feature:

  • 1810515 @putout/printer: WhileStatement: maybe

2023.06.12, v2.4.0

feature:

  • 1aa1e9e @putout/printer: ObjectExpression: improve support of using as not last argument of CallExpression

2023.06.12, v2.3.0

feature:

  • 75353e2 @putout/printer: ArrayExpression: maxElementsInOneLine

2023.06.12, v2.2.0

feature:

  • 5be9df9 printer: comments

2023.06.12, v2.1.0

feature:

  • 2a0f610 @putout/printer: add maxVariablesInOneLine

2023.06.12, v2.0.2

feature:

  • 56c4cdd @putout/printer: improve handling of comments

2023.06.12, v2.0.1

fix:

  • 693c0fc @putout/printer: VariableDeclarator: required space

2023.06.12, v2.0.0

feature:

  • b12c1a3 @putout/printer: move comments to semantics

2023.06.12, v1.150.1

feature:

  • 51ee3e9 @putout/printer: ArrayExpression: newline

2023.06.09, v1.150.0

feature:

  • c5b6238 @putout/printer: ArrayExpression: Tuple: two strings used as argument

2023.06.09, v1.149.0

feature:

  • 35ec229 @putout/printer: ArrayExpression: plugins: couple lines

2023.06.08, v1.148.1

feature:

  • fe4b8f0 @putout/printer: ArrayExpression: plugins

2023.06.08, v1.148.0

fix:

  • 26795a8 @putout/printer: BinaryExpression: Strings

feature:

  • 55cb78d @putout/printer: ArrayExpression: plugins

2023.06.08, v1.146.0

feature:

  • ab62be3 @putout/printer: ArrayExpression: Tuple: String and MemberExpression

2023.06.08, v1.145.0

feature:

  • 9d33542 @putout/printer: ArrayExpression: tuple: Identifier and StringLiteral

2023.06.07, v1.144.0

feature:

  • 1a0881b @putout/printer: semantics: add
  • 21298d2 @putout/printer: add ability to configurate semantics

2023.06.07, v1.143.0

feature:

  • 89bb884 @putout/printer: move out parseImportSpeciviers

2023.06.06, v1.142.0

feature:

  • 8531f81 @putout/printer: BlockStatement: VariableDeclaration

2023.06.06, v1.141.0

feature:

  • af98cb9 @putout/printer: OptionalMemberExpression: computed

2023.06.06, v1.140.0

feature:

  • e0db54f @putout/printer: TSSymbolKeyword: add support

2023.06.06, v1.139.0

feature:

  • 3ceb2f9 @putout/printer: TSNullKeyword: add support

2023.06.06, v1.138.0

feature:

  • e075091 @putout/printer: TSBigIntKeyword: add support

2023.06.05, v1.137.1

feature:

  • c640dfb @putout/printer: NewExpression: drop useless indent

2023.06.05, v1.137.0

feature:

  • 34d20b1 @putout/printer: NewExpression: add support of typeParameters

2023.06.05, v1.136.0

feature:

  • f9dc054 @putout/printer: update dependencies

2023.06.05, v1.135.1

feature:

  • 2de8346 package: @putout/compare v10.0.0

2023.06.05, v1.135.0

feature:

  • 34c703e @putout/printer: ArrayExpression: Tuple: Identifier and Object

2023.06.05, v1.134.1

feature:

  • 0a80c70 @putout/printer: ArrayExpression: tuple: String, String, Object

2023.06.05, v1.134.0

feature:

  • c8a3dc3 @putout/printer: ArrayExpression: tuple

2023.06.05, v1.133.1

fix:

  • b159c9a @putout/printer: ImportAttribute: no assertions

2023.06.05, v1.133.0

feature:

  • 2f33c34 @putout/printer: ObjectExpression inside ArrayExpression

2023.06.04, v1.132.0

feature:

  • b83ad0c @putout/printer: ArrayExpression: Tuple

2023.06.03, v1.131.0

feature:

  • 2647101 @putout/printer: ArrayExpression: new line when ObjectExpression
  • 9af0bd8 @putout/printer: ImportAttributes: all cases

2023.06.03, v1.130.2

feature:

  • 7607ed8 @putout/printer: ExportDeclaration: newline

2023.06.03, v1.130.1

feature:

  • ed75f1a ImportDeclaration: assertions, attributes

2023.06.03, v1.130.0

feature:

  • 6b68c30 @putout/printer: get back assertion in ImportDeclarations

2023.06.02, v1.129.0

feature:

2023.06.01, v1.128.1

feature:

  • 9de6e21 @putout/printer: ArrowFunctionExpression: braces

2023.06.01, v1.128.0

feature:

  • 118671c @putout/printer: ArrowFunctionExpression: add ability to drop braces

2023.06.01, v1.127.0

feature:

  • e2ad1fe @putout/printer: DoWhileStatement: add support
  • 5ed5799 @putout/printer: IfStatement: alternate: space

2023.06.01, v1.126.0

feature:

  • a1bfb5d @putout/printer: ReturnStatement: UnaryExpression

2023.06.01, v1.125.0

feature:

  • 06ffae2 @putout/printer: ArrayExpression: space

2023.06.01, v1.124.0

feature:

  • 5ba936a @putout/printer: ForInStatement: spaces

2023.05.31, v1.123.0

feature:

  • 16b7fbc @putout/printer: ReturnStatement: space: ArrowFunctionExpression

2023.05.30, v1.122.0

feature:

  • da1fb6b @putout/printer: ReturnStatement: spaces

2023.05.30, v1.121.0

feature:

  • 26071a8 @putout/printer: add ability to traverse existing path

2023.05.29, v1.120.0

feature:

  • da33669 @putout/printer: ObjectProperty: improve support when one line inside LogicalExpression
  • db06c37 @putout/printer: ObjectPattern: improve RestElement support

2023.05.29, v1.119.0

feature:

  • 971dad5 @putout/printer: improve support of RestSpread inside ObjectPattern

2023.05.25, v1.118.0

feature:

  • 438921c @putout/printer: VariableDeclaration: space after keyword

2023.05.25, v1.117.0

feature:

  • 9607830 @putout/printer: ImportDeclaration: space

2023.05.25, v1.116.0

feature:

  • f7890b6 @putout/printer: ObjectPattern: space

2023.05.25, v1.115.2

feature:

  • 8facda2 @putout/printer: ArrayPattern: spaces
  • f21b441 package: eslint-plugin-n v16.0.0

2023.05.25, v1.115.1

fix:

  • a1c17a9 @putout/printer: ObjectProperty inside ObjectPattern after path.scope.rename() (babel/babel#15648)

2023.05.24, v1.115.0

feature:

  • 3d00402 @putout/printer: shebang: newlines

2023.05.24, v1.114.0

feature:

  • d23bd5b @putout/printer: functions: move out pararms

2023.05.24, v1.113.1

feature:

  • db4fc1b @putout/printer: improve support of ArrowFunctionExpression spaces

2023.05.24, v1.113.0

feature:

  • 8dc3959 @putout/printer: BlockStatement: newline

2023.05.24, v1.112.0

feature:

  • 4c59494 @putout/printer: IfStatement -> ForOfStatement -> ExpressionStatement: newlines

2023.05.24, v1.111.0

feature:

  • c806c40 @putout/printer: ExpressionStatement inside IfStatement consequent when alternate exists: add "\n"

2023.05.23, v1.110.0

feature:

  • 347e957 @putout/printer: ForStatement: spaces

2023.05.23, v1.109.1

feature:

  • 1baa0ae @putout/printer: ExportDeclaration: space

2023.05.23, v1.109.0

feature:

  • 2fcdc57 @putout/printer: ExportDeclaration: space

2023.05.23, v1.108.0

feature:

  • 4aa1199 @putout/printer: CallExpression: space

2023.05.23, v1.107.0

feature:

  • 2ee5b24 @putout/printer: BinaryExpression: instanceOf: spaces (putoutjs/minify#4)

2023.05.22, v1.106.2

fix:

  • a7776e6 @putout/printer: comma in ObjectExpression: (coderaiser/minify#101)

2023.05.22, v1.106.1

feature:

  • ee28ef7 @putout/printer: IfStatement: improve support

2023.05.22, v1.106.0

feature:

  • f859c20 @putout/printer: AssignmentExpression inside LogicalExpression (coderaiser/minify#100)

2023.05.22, v1.105.0

feature:

  • 44fa04d @putout/printer: ClassPrivateMethod: add support (putoutjs/minify#3)

2023.05.22, v1.104.0

feature:

  • 1b4121a @putout/printer: splitter: add support

2023.05.18, v1.103.0

feature:

  • b326ef8 @putout/printer: add support of ClassPrivateProperty (putoutjs/minify#2)

2023.05.18, v1.102.0

feature:

  • 4d53e86 @putout/printer: ObjectMethod: space

2023.05.18, v1.101.4

fix:

  • c40bec7 @putout/printer: AssignmentExpression: space

2023.05.18, v1.101.3

fix:

  • 0d95a0b @putout/printer: IfStatement: space

2023.05.18, v1.101.2

fix:

  • 3a35005 @putout/printer: SequenceExpression: space

2023.05.18, v1.101.1

fix:

  • 4aa709b @putout/printer: FunctionExpression: space

2023.05.18, v1.101.0

feature:

  • d0a81ad @putout/printer: improve support of comments

2023.05.17, v1.100.0

feature:

  • 1b2c36b @putout/printer: IfStatement: improve newline support when nested

2023.05.16, v1.99.0

feature:

  • a7f4de3 @putout/printer: BinaryExpression: parens (coderaiser/putout#146)

2023.05.15, v1.98.3

feature:

  • aa0ab89 @putout/printer: ForOfStatement: space

2023.05.15, v1.98.2

fix:

  • d9160f5 @putout/printer: IfStatement: space

feature:

  • fbd096e @putout/printer: ImportDeclaration: space

2023.05.15, v1.98.1

fix:

  • b7ef03f @putout/printer: FunctionExpression: space

2023.05.12, v1.98.0

feature:

  • fd1a43d @putout/printer: ObjectProperty: space formatting support

2023.05.12, v1.97.2

feature:

  • 420a677 @putout/printer: TSModuleDeclaration: improve newline support

2023.05.11, v1.97.1

feature:

  • 746b611 @putout/printer: TSInterfaceDeclaration: newline

2023.05.11, v1.97.0

feature:

  • b0aa0ff @putout/printer: TSAsExpression inside MemberExpression: improve support

2023.05.11, v1.96.0

feature:

  • 9b7297f @putout/printer: improve support of LogicalExpression inside AwaitExpression

2023.05.11, v1.95.0

feature:

  • f8e7e47 @putout/printer: improve support of OptionalMemberExpression

2023.05.11, v1.94.0

feature:

  • 2df6b15 @putout/printer: improve support of newline in TSInterfaceDeclaration

2023.05.11, v1.93.0

feature:

  • 9822d55 @putout/printer: improve support computed property of ObjectPattern

2023.05.11, v1.92.4

feature:

  • 2aff555 @putout/printer: ExportDeclaration: newline

2023.05.11, v1.92.3

feature:

  • 4518b45 @putout/printer: statements: SwitchStatement: add support of fall

2023.05.10, v1.92.2

feature:

  • e2f6ca0 @putout/printer: VariableDeclaration: couple VariableDeclarators without init

2023.05.10, v1.92.1

feature:

  • d6c9e2a @putout/printer: add support of comments inside ObjectExpression

2023.05.10, v1.92.0

feature:

  • 2d623d5 @putout/printer: ExportNamespaceDeclaration: improve support

2023.05.10, v1.91.0

feature:

  • 01a13b9 @putout/printer: add support of LabeledStatement

2023.05.10, v1.90.1

feature:

  • 9a90b34 @putout/printer: add support of innerComments

2023.05.10, v1.90.0

feature:

  • 5cd1dcc @putout/printer: add support of comments inside BlockStatement

2023.05.09, v1.89.0

fix:

  • 17bae21 @putout/printer: rm useless condition

feature:

  • bf25bda @putout/printer: ForOfStatement: newline

2023.05.09, v1.88.0

feature:

  • 64aa4a3 @putout/printer: add support of TSModuleDeclaration

2023.05.09, v1.87.0

feature:

  • 092bb3c @putout/printer: add support of StaticBlock
  • 353a550 @putout/printer: improve support of SwitchStatement

2023.05.09, v1.86.0

feature:

  • d4e3b07 @putout/printer: ifStatement: space

2023.05.08, v1.85.0

feature:

  • 12c3ae4 @putout/printer: add support of void

2023.05.08, v1.84.1

feature:

  • c434992 @putout/printer: FunctionDeclaration: space

2023.05.08, v1.84.0

feature:

  • 5770f6d @putout/printer: add support of couple VariableDeclarators inside VariableDeclaration

2023.05.08, v1.83.1

fix:

  • ddff9e0 description

2023.05.08, v1.83.0

feature:

  • 395584d @putout/printer: ArrayExpressions: newline

2023.05.07, v1.82.2

feature:

  • 3a3fd13 @putout/printer: add support of Export from

2023.05.07, v1.82.1

fix:

  • 039781e @putout/printer: ExportDeclaration newline

2023.05.07, v1.82.0

feature:

  • 55727fa @putout/printer: add support of ExportAllDeclaration

2023.05.05, v1.81.5

feature:

  • b8367bc @putout/printer: improve support of newline in FunctionDeclaration inside of ExportDeclaration

2023.05.04, v1.81.4

feature:

  • a6bd038 @putout/printer: improve support of comments inside ObjectProperty

2023.05.04, v1.81.3

feature:

  • ae2c615 @putout/printer: improve support of SequenceExpressions

2023.05.04, v1.81.2

feature:

  • 4033f37 @putout/printer: plugin: add satisfy

2023.05.04, v1.81.1

feature:

  • 12f7943 @putout/printer: improve comments support

2023.05.04, v1.81.0

feature:

  • 8b4ea75 @putout/printer: add ability to minify whitespaces
  • ee6c8f1 @putout/printer: ImportDeclaration: add potential ability to overide imports.maxOneLineSpecifiers

2023.05.03, v1.80.4

fix:

  • 568300c @putout/printer: ImportDeclaration with 2 specifiers

2023.05.03, v1.80.3

feature:

  • 564e885 @putout/printer: improve support of SequenceExpression

2023.05.03, v1.80.2

feature:

  • 07be461 @putout/printer: BreakStatement: apply afterSatisfy

2023.05.03, v1.80.1

feature:

  • 9060489 @putout/printer: improve support of ForStatement
  • 94fce17 @putout/printer: SequenceExpression inside ExportDeclaration

2023.05.03, v1.80.0

feature:

  • e6111ae @putout/printer: improve support of NumericLiteral, SequenceExpression

2023.05.02, v1.79.1

fix:

  • 1d1af3a @putout/printer: chaining

2023.05.02, v1.79.0

feature:

  • c2ff505 @putout/printer: ImportsDeclaration: improve

2023.05.01, v1.78.0

feature:

  • ebd6259 @putout/printer: improve support of AssignmentPattern

2023.05.01, v1.77.0

feature:

  • 3e016f5 @putout/printer: improve support of ImportDeclaration

2023.05.01, v1.76.1

feature:

  • 042d621 @putout/printer: member-expression: mv to dir

2023.04.28, v1.76.0

feature:

  • a515fbc @putout/printer: improve support of newlines in with comments

2023.04.27, v1.75.0

feature:

  • 0560c33 @putout/printer: MemberExpression: simplify chain

2023.04.26, v1.74.0

feature:

  • 9ef7aaa @putout/printer: add support of empty value in JSXAttribute

2023.04.26, v1.73.2

feature:

  • aa2b2ef @putout/printer: improve comments support

2023.04.26, v1.73.1

feature:

  • 5b48ac8 @putout/printer: improve support of ArrayExpression

2023.04.26, v1.73.0

feature:

  • 73af03b @putout/printer: add support of TSDeclareFunction

2023.04.26, v1.72.7

feature:

  • 7764b71 @putout/printer: improve chaining support of MemberExpression

2023.04.26, v1.72.6

feature:

  • 65023d8 @putout/printer: improve support of CallExpression inside of MemberExpression

2023.04.26, v1.72.5

feature:

  • a8fa20b @putout/printer: chaining newline

2023.04.26, v1.72.4

feature:

  • 8fabd6e @putout/printer: avoid adding newline in MemberExpression when no args

2023.04.26, v1.72.3

feature:

  • 7209c17 @putout/printer: avoid adding newline in MemberExpression with computed property

2023.04.26, v1.72.2

feature:

  • deec1c9 @putout/printer: ObjectMethod: add support of async

2023.04.26, v1.72.1

feature:

  • d3c1dbe @putout/printer: improve support of ArrayPattern

2023.04.26, v1.72.0

feature:

  • e1ca06a @putout/printer: improve support of SwitchCase
  • 82b3293 @putout/printer: improve ability to determine linebreak in ObjectMethod

2023.04.25, v1.71.2

feature:

  • 9922208 @putout/printer: improve support of ForStatements newline

2023.04.25, v1.71.1

feature:

  • 8391092 @putout/printer: improve support of trailingComments

2023.04.25, v1.71.0

feature:

  • b56cdb1 @putout/printer: ImportDeclaration: improve support of ImportSpecifier

2023.04.25, v1.70.4

feature:

  • b59320e @putout/printer: improve printing of comments after ObjectProperty

2023.04.25, v1.70.3

feature:

  • 0752294 @putout/printer: keep newlines between ObjectProperties

2023.04.25, v1.70.2

fix:

  • 42813b5 @putout/printer: ExportDeclaration: newline

2023.04.25, v1.70.1

feature:

  • 1cdcf93 @putout/printer: add support of ImportNamespaceSpecifier

2023.04.25, v1.70.0

feature:

  • 054212f @putout/printer: improve handling of SpreadElement newline in ObjectExpression
  • b61a9e9 package: @putout/plugin-printer v1.0.0

2023.04.24, v1.69.1

fix:

  • be3dc7d @putout/printer: newline after ObjectProperty

2023.04.23, v1.69.0

feature:

  • fb7202b @putout/printer: improve support of newline after IfStatement inside of ObjectMethod

2023.04.23, v1.68.0

feature:

  • 4975e30 @putout/printer: comment in ReturnStatement

2023.04.21, v1.67.0

feature:

  • fd645f6 @putout/printer add support of "for export type *"

2023.04.21, v1.66.0

feature:

  • 31a3e52 @putout/printer: add support for const type parameters

2023.04.21, v1.65.0

feature:

  • a67785f @putout/printer: add support of TSConditionalType

2023.04.21, v1.64.0

feature:

  • 3ffb203 @putout/printer: add support of optional variance annotation

2023.04.21, v1.63.1

feature:

  • faf1596 @putout/printer: avoid newline between elements of ArrayExpression, when element is CallExpression

2023.04.21, v1.63.0

feature:

  • cceed23 @putout/printer: improve support of AssignmentPattern inside of ObjectProperty

2023.04.20, v1.62.0

feature:

  • 7cebd86 @putout/printer: improve support of JSXText

2023.04.20, v1.61.1

feature:

  • 69575cb @putout/printer: newlines

2023.04.20, v1.61.0

feature:

  • ff23a6b @putout/printer: add support of ClassProperty

2023.04.20, v1.60.0

feature:

  • 4ed5ce4 @putout/printer: improve support of clases

2023.04.20, v1.59.0

feature:

  • 83d8323 @putout/printer: add support of Super

2023.04.19, v1.58.0

feature:

  • da02030 @putout/printer: improve support of comments inside JSX

2023.04.19, v1.57.0

feature:

  • 8f4ddc4 @putout/printer: add support of JSXMemberExpression

2023.04.19, v1.56.0

feature:

  • aaf4886 @putout/printer: add support of JSXFragment

2023.04.18, v1.55.0

fix:

  • 85dbbd1 @putout/printer: get back satisfy

feature:

  • c540dcb @putout/printer: ForOfStatement: add support of Statement inside of body

2023.04.18, v1.54.5

feature:

  • 06bf3c0 @putout/printer: improve one element ArrayExpression newline support

2023.04.18, v1.54.4

fix:

  • a5636a0 @putout/printer: satisfy

2023.04.18, v1.54.3

feature:

  • b5acf3e @putout/printer: improve support of newlines between elements of ArrayExpression

2023.04.18, v1.54.2

feature:

  • a9c17af @putout/printer: improve support of ArrowFunctionExpression used inside LogicalExpression

2023.04.18, v1.54.1

feature:

  • 7f6d7d4 @putout/printer: add support of Import used as object of MemberExpression
  • c2b2e4b @putout/printer: VariableDeclaration: drop useless newline

2023.04.18, v1.54.0

feature:

  • 6c8bac0 @putout/printer add support of Import

2023.04.17, v1.53.0

feature:

  • fd99eef @putout/printer: VariableDeclaration: use afterSatisfy

2023.04.17, v1.52.4

fix:

  • cda4b9e @putout/printer: newline when VariableDeclaration inside of ExportDeclaration

2023.04.17, v1.52.3

fix:

  • f316738 @putout/printer: no newline after VariableDeclaration inside ExportDeclaration

2023.04.17, v1.52.2

feature:

  • ef0ef15 @putout/printer: maybe
  • beb210c @putout/printer: ExpressionStatement: apply satisfy

2023.04.17, v1.52.1

feature:

  • cf83bcb @putout/printer: move out satisfy

2023.04.17, v1.52.0

feature:

  • bf2b9a3 @putout/printer: add support of afterSatisfy

2023.04.17, v1.51.0

feature:

  • 0fc4fb0 @putout/printer: add ability to preserve newline between ExpressionStatements
  • 8073d64 @putout/printer: CallExpression: simplify
  • b94009b @putout/printer: add ability to preserve newline

2023.04.14, v1.50.0

fix:

  • 6203f72 @putout/printer: ArrayExpression: one element CallExpression

feature:

  • 491126f @putout/printer: ArrayExpression: two elements ReturnStatement: no newline

2023.04.14, v1.49.1

fix:

  • 378734f @putout/printer: newline inside in ObjectPattern inside ForOfStatement

2023.04.14, v1.49.0

fix:

  • b056bb5 @putout/printer: newline in ObjectExpression inside IfStatement

2023.04.14, v1.48.0

feature:

  • d92667a @putout/printer: add support of TSParenthesizedType

2023.04.14, v1.47.0

feature:

  • a102b07 @putout/printer: add support of TSTypeAssertion, TSAsExpression

2023.04.14, v1.46.0

feature:

  • 7fafdd3 @putout/printer: add support of TSInterfaceDeclaration

2023.04.14, v1.45.0

feature:

  • 7a54443 @putout/printer: add support of TSMappedType

2023.04.13, v1.44.0

feature:

  • 89d7922 @putout/printer: add support of ExportSpecifier

2023.04.13, v1.43.0

feature:

  • 2114032 @putout/printer: add support of BigIntLiteral

2023.04.13, v1.42.0

feature:

  • 39aedd9 @putout/printer: add support of TSUnionType
  • 952b8b3 @putout/printer: CallExpression: add support of typeParameters

2023.04.13, v1.41.0

feature:

  • 99adbd5 @putout/printer: add support of TSArrayType

2023.04.13, v1.40.2

feature:

  • 6d8d812 @putout/printer: comments: newline after CommentLine

2023.04.13, v1.40.1

fix:

  • e868511 @putout/printer: drop newline after BlockStatement when parentPath is IfStatement and current path not alternate

2023.04.13, v1.40.0

feature:

  • 4cd3b37 @putout/printer: add support of TSStringKeyword

2023.04.12, v1.39.0

feature:

  • b14f85d @putout/printer: add support of TSQualifiedName

2023.04.12, v1.38.0

feature:

  • 9977169 @putout/printer: improve support of IIFE

2023.04.11, v1.37.0

feature:

  • 91cf041 @putout/printer: add support of JSXSpreadAttribute

2023.04.11, v1.36.0

feature:

  • 03bd597 @putout/printer: improve support of nested ObjectPattern

2023.04.10, v1.35.0

feature:

  • 855e575 @putout/printer: add support of TSInstantiationExpression

2023.04.10, v1.34.0

feature:

  • d783c21 @putout/printer: improve support of jsx assigned to variable

2023.04.10, v1.33.0

feature:

  • 2114f04 @putout/printer: improve support of ArrayExpression tuple: Identifier + Identifier

2023.04.10, v1.32.0

feature:

  • 71835f6 @putout/printer: add support of JSXExpressionContainer

2023.04.10, v1.31.0

feature:

  • f80319e @putout/printer: add support of JSXAttribute

2023.04.10, v1.30.0

feature:

  • 27b22b3 @putout/printer: add support of JSXElement

2023.04.07, v1.29.0

feature:

  • b1dfcf3 @putout/printer: ObjectPattern: improve support of not ObjectProperty value !== Identifier
  • 53a44db @putout/printer: improve chaining support
  • a552062 @putout/printer: newlines

2023.04.07, v1.28.0

feature:

  • dfa1863 @putout/printer: ObjectExpression: add support of object options passed as last argument of tests

2023.04.07, v1.27.0

feature:

  • 6afc4de @putout/printer: ArrayExpression: add support of string, string tuple

2023.04.06, v1.26.0

feature:

  • 3ad5aab @putout/printer: prevent indent infinite loop

2023.04.06, v1.25.1

feature:

  • 3250fd6 @putout/printer: improve chaining
  • 8d302ba @putout/printer: improve format of ArrayExpression tuple
  • 4970dd9 @putout/printer: ForOfStatement: newline

2023.04.06, v1.25.0

feature:

  • db62133 @putout/printer: add support of chaining

2023.04.05, v1.24.0

feature:

  • 47fb021 @putout/printer: add support of chaining

2023.04.05, v1.23.0

feature:

  • 316c0f6 @putout/printer: add support of ExpressionStatement parent of ObjectExpression

2023.04.04, v1.22.0

feature:

  • c8fc7b7 @putout/printer: improve support of tuples
  • 599bd93 @putout/printer: set @putout/printer as putout printer

2023.04.04, v1.21.0

feature:

  • d5716be @putout/printer: ForOfStatement: convert
  • 5bd0fe5 @putout/printer: improve newlines formatting

2023.04.03, v1.20.0

feature:

  • 069b266 @putout/printer: add support of TSPropertySignature

2023.04.03, v1.19.0

feature:

  • c439209 @putout/printer: add support of TSTypeAliasDeclaration

2023.04.02, v1.18.2

feature:

  • dfbe134 @putout/printer: ArrayExpression tuple: improve support

2023.04.02, v1.18.1

feature:

  • 37db57c @putout/printer: drop usless newlines after ImportDeclaration

2023.04.02, v1.18.0

feature:

  • 317a7cf @putout/printer: improve support of VariableDeclaration inside of ExportDeclaration

2023.04.01, v1.17.1

feature:

  • 794186f @putout/printer: improve support of IfElse
  • a35e751 @putout/printer: improve support of round braces

2023.04.01, v1.17.0

feature:

  • 1378835 @putout/printer: improve support of round brackets around LogicalExpressions
  • 3fc47f2 @putout/printer: improve support of BinaryExpression inside UnaryExpression

2023.04.01, v1.16.2

feature:

  • 6da9571 @putout/printer: improve support of ObjectExpression used as argument of CallExpression

2023.04.01, v1.16.1

feature:

  • 4f2f38a @putout/printer: improve support of ImportSpecifier in ImportDeclaration

2023.03.31, v1.16.0

feature:

  • c19ded9 @putout/printer: add support of ClassExpression

2023.03.31, v1.15.4

feature:

  • b4076e9 @putout/printer: add support of TSAnyKeyword

2023.03.31, v1.15.3

feature:

  • d80165e @putout/printer: newline inside ArrayExpression inside ForOfStatement
  • 8b7737b @putout/printer: ImportDeclaration: add support of no specifiers

2023.03.31, v1.15.2

feature:

  • 7df608f @putout/printer: add ability to indent tryStatement

2023.03.31, v1.15.1

feature:

  • 0fd6fd2 @putout/printer: ArrayExpression: add ability to avoid newline when inside of CallExpression inside of ForOfStatement

2023.03.31, v1.15.0

feature:

  • 67b6b53 @putout/printer: add support of nested Binary and Logical Expressions
  • 6bcba84 @putout/printer: improve support of last ExpressionStatement inside of BlockStatement

2023.03.30, v1.14.3

feature:

  • a060299 @putout/printer: improve support EmptyStatement

2023.03.30, v1.14.2

feature:

  • 6bf7725 @putout/printer: add support of EmptyStatement

2023.03.30, v1.14.1

fix:

  • 1a117af @putout/printer: duplicate comment

feature:

  • 260d680 @putout/printer: add support of getters

2023.03.30, v1.14.0

feature:

  • 90687b1 @putout/printer: add support of TSTypeAnnotation

2023.03.29, v1.13.1

feature:

  • d320519 @putout/printer: improve support of nested objects

2023.03.29, v1.13.0

feature:

  • 37cca9d @putout/printer: add support of TypeScript

2023.03.29, v1.12.0

feature:

  • 46d3947 @putout/printer: add support of shebang

2023.03.29, v1.11.0

feature:

  • a2250dd @putout/printer: add newline at eof
  • c1fb26f @putout/printer: use 'array.entries()' instead of 'entries(array)'

2023.03.28, v1.10.0

feature:

  • c2f1d12 @putout/printer: add new pluginObject type of plugin

2023.03.28, v1.9.1

feature:

  • 063bb53 @putout/printer: improve support of AST witout parent File
  • d6fd09d @putout/printer: add support of trailingComments
  • a323b20 @putout/printer: shouldAddNewlineAfter

2023.03.27, v1.9.0

feature:

  • cdcea37 @putout/printer: add support of ExportDefaultDeclaration
  • e891b21 @putout/printer: add support of ExportDefaultDeclaration

2023.03.27, v1.8.11

fix:

  • f7a06ec @putout/printer: drop redundant newline after VariableDeclaration

2023.03.27, v1.8.10

feature:

  • 8302ebb @putout/printer: isProgram optional

2023.03.27, v1.8.9

feature:

  • 6481c27 @putout/printer: improve support of empty ObjectExpression inside CallExpression

2023.03.27, v1.8.8

feature:

  • 31536d3 @putout/printer: drop newline after BlockStatement

2023.03.27, v1.8.7

feature:

  • d370b3d @putout/printer: drop newline after last Statement

2023.03.27, v1.8.6

feature:

  • 8fb7f0d @putout/printer: drop newline after CallExpression

2023.03.27, v1.8.5

feature:

  • f44a060 @putout/printer: drop newlines at end of file
  • 524d6e1 @putout/printer: drop newline after BlockStatement when there is no next sibling

2023.03.27, v1.8.4

feature:

  • c117645 @putout/printer: add support of ForInStatement

2023.03.26, v1.8.3

feature:

  • fec7aee @putout/printer: improve support of ObjectExpression inside LogicalExpression inside SpreadElement property of ObjectExpression

2023.03.26, v1.8.2

feature:

  • 5d25d59 @putout/printer: add support of ConditionalExpression

2023.03.26, v1.8.1

feature:

  • f8878fd @putout/printer: add support of ThisExpression

2023.03.26, v1.8.0

feature:

  • 14f4f82 @putout/printer: add support of SwitchStatement

2023.03.26, v1.7.4

feature:

  • 81adee2 @putout/printer: add newline before comment

2023.03.24, v1.7.3

feature:

  • e074c86 @putout/printer: improve comments support

2023.03.24, v1.7.2

feature:

  • a579fdc @putout/printer: add support of CommentBlock

2023.03.23, v1.7.1

feature:

  • f1db3bd @putout/printer: write: path.get(__a) => __a

2023.03.23, v1.7.0

feature:

  • 789d21b @putout/printer: improve support of AssignmentPattern

2023.03.22, v1.6.13

feature:

  • 3e3905a @putout/printer: AssignmentExpression: simplify

2023.03.22, v1.6.12

feature:

  • 59b18a0 @putout/printer: simplify mark

2023.03.22, v1.6.11

feature:

  • 552e272 @putout/printer: improve support of ArrayExpression

2023.03.22, v1.6.10

feature:

  • 2c82f51 @putout/printer: add support of WhileStatement, NullLiteral

2023.03.21, v1.6.9

feature:

  • 39386c6 @putout/printer: add support of RegExpLiteral, OptionalCallExpression

2023.03.21, v1.6.8

feature:

  • 203e16c @putout/printer: improve support of StringLiteral

2023.03.21, v1.6.7

feature:

  • 6f75079 @putout/printer: add support of BreakStatement

2023.03.21, v1.6.6

feature:

  • 4af2bdb @putout/printer: add support of ImportDeclaration, ExportDeclaration

2023.03.21, v1.6.5

feature:

  • 18dbd76 @putout/printer: improve intergration with recast: consistent newline befor EOF

2023.03.21, v1.6.4

feature:

  • aa1590c @putout/printer: add support of ForStatement

2023.03.20, v1.6.3

feature:

  • 052b966 @putout/printer: write -> write

2023.03.20, v1.6.2

feature:

  • eb7ba9c @putout/printer: add format

2023.03.20, v1.6.1

fix:

  • 7e8d47c @putout/printer: visitors

2023.03.20, v1.6.0

feature:

  • f0ef762 @putout/printer: add ability to override syntax visitors

2023.03.20, v1.5.4

feature:

  • 96d7056 @putout/printer: split linebreak(\s\n) and breakline(\n\s)

2023.03.20, v1.5.3

feature:

  • 9dc85e4 @putout/printer: IfStatement: add support of alternate

2023.03.19, v1.5.2

feature:

  • 5354616 @putout/printer: add support of TryCatchStatement

2023.03.18, v1.5.1

feature:

  • a79e4f6 @putout/printer: write, indent, maybe

2023.03.18, v1.5.0

feature:

  • db7c503 @putout/printer: add support of YieldExpression, SequenceExpressions, FunctionExpression + generator

2023.03.18, v1.4.2

feature:

  • fe8c410 @putout/printer: add support of AwaitExpression

2023.03.17, v1.4.1

feature:

  • 1948ce5 @putout/printer: improve support of ObjectExpression
  • 09e1a5c @putout/printer: improve support of ObjectExpression
  • 2d13bc2 @putout/printer: ArrayExpression: newlines
  • 9fc6a00 @putout/printer: improve support of ArrayExpression
  • b91d908 @putout/printer: UnaryExpression: add support of delete
  • 337492b @putout/printer: improve support of NumericLiteral
  • 166085c @putout/printer: add support of hex numbers

2023.03.17, v1.4.0

feature:

  • 1faf3ff @putout/printer: add support of leadingComments