Skip to content

--object-wrap collapse breaking print width #19052

@emmet-opinionx

Description

@emmet-opinionx

Prettier v3.8.2
Playground link

--parser babel-ts
--object-wrap collapse

Input:

@Injectable()
export class OpinionsRepositoryService {
  groupBy<Fields extends OpinionField[], TGroupBy extends OpinionField>(
    params: FindAllOpinionsParams,
    groupByField: TGroupBy,
    includeFields = ["_id"] as Fields,
  ) {
    return this.opinionModel
      .aggregate<GroupedOpinions<Fields, TGroupBy>>([
        {
          $match: this.mongodbUtilities.clean(params),
        },
        {
          $group: {
            _id: `$${groupByField}`,
            opinions: {
              $push: includeFields.reduce(
                (acc, field) => ({ ...acc, [field]: `$${field}` }),
                {},
              ),
            },
          },
        },
        { $set: { [groupByField]: "$_id" } },
        { $unset: "_id" },
      ])
      .exec();
  }
}

Output:

@Injectable()
export class OpinionsRepositoryService {
  groupBy<Fields extends OpinionField[], TGroupBy extends OpinionField>(
    params: FindAllOpinionsParams,
    groupByField: TGroupBy,
    includeFields = ["_id"] as Fields,
  ) {
    return this.opinionModel
      .aggregate<
        GroupedOpinions<Fields, TGroupBy>
      >([{ $match: this.mongodbUtilities.clean(params) }, { $group: { _id: `$${groupByField}`, opinions: { $push: includeFields.reduce((acc, field) => ({ ...acc, [field]: `$${field}` }), {}) } } }, { $set: { [groupByField]: "$_id" } }, { $unset: "_id" }])
      .exec();
  }
}

Expected output:

@Injectable()
export class OpinionsRepositoryService {
  groupBy<Fields extends OpinionField[], TGroupBy extends OpinionField>(
    params: FindAllOpinionsParams,
    groupByField: TGroupBy,
    includeFields = ["_id"] as Fields,
  ) {
    return this.opinionModel
      .aggregate<GroupedOpinions<Fields, TGroupBy>>([
        {
          $match: this.mongodbUtilities.clean(params),
        },
        {
          $group: {
            _id: `$${groupByField}`,
            opinions: {
              $push: includeFields.reduce(
                (acc, field) => ({ ...acc, [field]: `$${field}` }),
                {},
              ),
            },
          },
        },
        { $set: { [groupByField]: "$_id" } },
        { $unset: "_id" },
      ])
      .exec();
  }
}

Why?

There is a line longer than default print width of 80 so object should not be collapsed

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedWe're a small group who can't get to every issue promptly. We’d appreciate help fixing this issue!lang:typescriptIssues affecting TypeScript-specific constructs (not general JS issues)

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions