prettier 3.0.0-alpha.2 → 3.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/doc.js CHANGED
@@ -194,7 +194,7 @@
194
194
  }
195
195
  return { type: DOC_TYPE_FILL, parts };
196
196
  }
197
- function ifBreak(breakContents, flatContents, opts = {}) {
197
+ function ifBreak(breakContents, flatContents = "", opts = {}) {
198
198
  if (false) {
199
199
  if (breakContents) {
200
200
  assertDoc(breakContents);
@@ -469,12 +469,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
469
469
  break;
470
470
  }
471
471
  case DOC_TYPE_IF_BREAK:
472
- if (doc2.flatContents) {
473
- docsStack.push(doc2.flatContents);
474
- }
475
- if (doc2.breakContents) {
476
- docsStack.push(doc2.breakContents);
477
- }
472
+ docsStack.push(doc2.flatContents, doc2.breakContents);
478
473
  break;
479
474
  case DOC_TYPE_GROUP:
480
475
  if (shouldTraverseConditionalGroups && doc2.expandedStates) {
@@ -539,19 +534,12 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
539
534
  ...doc2,
540
535
  parts: doc2.parts.map(rec)
541
536
  });
542
- case DOC_TYPE_IF_BREAK: {
543
- let {
544
- breakContents,
545
- flatContents
546
- } = doc2;
547
- breakContents && (breakContents = rec(breakContents));
548
- flatContents && (flatContents = rec(flatContents));
537
+ case DOC_TYPE_IF_BREAK:
549
538
  return cb({
550
539
  ...doc2,
551
- breakContents,
552
- flatContents
540
+ breakContents: rec(doc2.breakContents),
541
+ flatContents: rec(doc2.flatContents)
553
542
  });
554
- }
555
543
  case DOC_TYPE_GROUP: {
556
544
  let {
557
545
  expandedStates,
@@ -652,74 +640,73 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
652
640
  }
653
641
  }
654
642
  }
655
- traverse_doc_default(
656
- doc,
657
- propagateBreaksOnEnterFn,
658
- propagateBreaksOnExitFn,
659
- true
660
- );
643
+ traverse_doc_default(doc, propagateBreaksOnEnterFn, propagateBreaksOnExitFn, true);
661
644
  }
662
645
  function removeLinesFn(doc) {
663
646
  if (doc.type === DOC_TYPE_LINE && !doc.hard) {
664
647
  return doc.soft ? "" : " ";
665
648
  }
666
649
  if (doc.type === DOC_TYPE_IF_BREAK) {
667
- return doc.flatContents || "";
650
+ return doc.flatContents;
668
651
  }
669
652
  return doc;
670
653
  }
671
654
  function removeLines(doc) {
672
655
  return mapDoc(doc, removeLinesFn);
673
656
  }
674
- var isHardline = (doc, nextDoc) => doc && doc.type === DOC_TYPE_LINE && doc.hard && nextDoc && nextDoc.type === DOC_TYPE_BREAK_PARENT;
675
- function stripDocTrailingHardlineFromDoc(doc) {
676
- if (!doc) {
677
- return doc;
657
+ function stripTrailingHardlineFromParts(parts) {
658
+ parts = [...parts];
659
+ while (parts.length >= 2 && at_default(false, parts, -2).type === DOC_TYPE_LINE && at_default(false, parts, -1).type === DOC_TYPE_BREAK_PARENT) {
660
+ parts.length -= 2;
678
661
  }
679
- if (Array.isArray(doc) || doc.type === DOC_TYPE_FILL) {
680
- const parts = getDocParts(doc);
681
- while (parts.length > 1 && isHardline(...parts.slice(-2))) {
682
- parts.length -= 2;
683
- }
684
- if (parts.length > 0) {
685
- const lastPart = stripDocTrailingHardlineFromDoc(at_default(false, parts, -1));
686
- parts[parts.length - 1] = lastPart;
687
- }
688
- return Array.isArray(doc) ? parts : {
689
- ...doc,
690
- parts
691
- };
662
+ if (parts.length > 0) {
663
+ const lastPart = stripTrailingHardlineFromDoc(at_default(false, parts, -1));
664
+ parts[parts.length - 1] = lastPart;
692
665
  }
693
- switch (doc.type) {
666
+ return parts;
667
+ }
668
+ function stripTrailingHardlineFromDoc(doc) {
669
+ switch (get_doc_type_default(doc)) {
694
670
  case DOC_TYPE_ALIGN:
695
671
  case DOC_TYPE_INDENT:
696
672
  case DOC_TYPE_INDENT_IF_BREAK:
697
673
  case DOC_TYPE_GROUP:
698
674
  case DOC_TYPE_LINE_SUFFIX:
699
675
  case DOC_TYPE_LABEL: {
700
- const contents = stripDocTrailingHardlineFromDoc(doc.contents);
676
+ const contents = stripTrailingHardlineFromDoc(doc.contents);
701
677
  return {
702
678
  ...doc,
703
679
  contents
704
680
  };
705
681
  }
706
- case DOC_TYPE_IF_BREAK: {
707
- const breakContents = stripDocTrailingHardlineFromDoc(doc.breakContents);
708
- const flatContents = stripDocTrailingHardlineFromDoc(doc.flatContents);
682
+ case DOC_TYPE_IF_BREAK:
709
683
  return {
710
684
  ...doc,
711
- breakContents,
712
- flatContents
685
+ breakContents: stripTrailingHardlineFromDoc(doc.breakContents),
686
+ flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
713
687
  };
714
- }
688
+ case DOC_TYPE_FILL:
689
+ return {
690
+ ...doc,
691
+ parts: stripTrailingHardlineFromParts(doc.parts)
692
+ };
693
+ case DOC_TYPE_ARRAY:
694
+ return stripTrailingHardlineFromParts(doc);
695
+ case DOC_TYPE_STRING:
696
+ return doc.replace(/[\n\r]*$/, "");
697
+ case DOC_TYPE_CURSOR:
698
+ case DOC_TYPE_TRIM:
699
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
700
+ case DOC_TYPE_LINE:
701
+ case DOC_TYPE_BREAK_PARENT:
702
+ break;
703
+ default:
704
+ throw new invalid_doc_error_default(doc);
715
705
  }
716
706
  return doc;
717
707
  }
718
708
  function stripTrailingHardline(doc) {
719
- if (typeof doc === "string") {
720
- return doc.replace(/(?:\r?\n)*$/, "");
721
- }
722
- return stripDocTrailingHardlineFromDoc(cleanDoc(doc));
709
+ return stripTrailingHardlineFromDoc(cleanDoc(doc));
723
710
  }
724
711
  function cleanDocFn(doc) {
725
712
  switch (get_doc_type_default(doc)) {
@@ -1379,6 +1366,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
1379
1366
  });
1380
1367
  init_define_process();
1381
1368
  function flattenDoc(doc) {
1369
+ var _a;
1382
1370
  if (!doc) {
1383
1371
  return "";
1384
1372
  }
@@ -1407,7 +1395,7 @@ Expected it to be ${EXPECTED_TYPE_VALUES}.`;
1407
1395
  return {
1408
1396
  ...doc,
1409
1397
  contents: flattenDoc(doc.contents),
1410
- expandedStates: doc.expandedStates && doc.expandedStates.map(flattenDoc)
1398
+ expandedStates: (_a = doc.expandedStates) == null ? void 0 : _a.map(flattenDoc)
1411
1399
  };
1412
1400
  }
1413
1401
  if (doc.type === DOC_TYPE_FILL) {
package/doc.mjs CHANGED
@@ -161,7 +161,7 @@ function fill(parts) {
161
161
  }
162
162
  return { type: DOC_TYPE_FILL, parts };
163
163
  }
164
- function ifBreak(breakContents, flatContents, opts = {}) {
164
+ function ifBreak(breakContents, flatContents = "", opts = {}) {
165
165
  if (false) {
166
166
  if (breakContents) {
167
167
  assertDoc(breakContents);
@@ -436,12 +436,7 @@ function traverseDoc(doc, onEnter, onExit, shouldTraverseConditionalGroups) {
436
436
  break;
437
437
  }
438
438
  case DOC_TYPE_IF_BREAK:
439
- if (doc2.flatContents) {
440
- docsStack.push(doc2.flatContents);
441
- }
442
- if (doc2.breakContents) {
443
- docsStack.push(doc2.breakContents);
444
- }
439
+ docsStack.push(doc2.flatContents, doc2.breakContents);
445
440
  break;
446
441
  case DOC_TYPE_GROUP:
447
442
  if (shouldTraverseConditionalGroups && doc2.expandedStates) {
@@ -506,19 +501,12 @@ function mapDoc(doc, cb) {
506
501
  ...doc2,
507
502
  parts: doc2.parts.map(rec)
508
503
  });
509
- case DOC_TYPE_IF_BREAK: {
510
- let {
511
- breakContents,
512
- flatContents
513
- } = doc2;
514
- breakContents && (breakContents = rec(breakContents));
515
- flatContents && (flatContents = rec(flatContents));
504
+ case DOC_TYPE_IF_BREAK:
516
505
  return cb({
517
506
  ...doc2,
518
- breakContents,
519
- flatContents
507
+ breakContents: rec(doc2.breakContents),
508
+ flatContents: rec(doc2.flatContents)
520
509
  });
521
- }
522
510
  case DOC_TYPE_GROUP: {
523
511
  let {
524
512
  expandedStates,
@@ -619,74 +607,73 @@ function propagateBreaks(doc) {
619
607
  }
620
608
  }
621
609
  }
622
- traverse_doc_default(
623
- doc,
624
- propagateBreaksOnEnterFn,
625
- propagateBreaksOnExitFn,
626
- true
627
- );
610
+ traverse_doc_default(doc, propagateBreaksOnEnterFn, propagateBreaksOnExitFn, true);
628
611
  }
629
612
  function removeLinesFn(doc) {
630
613
  if (doc.type === DOC_TYPE_LINE && !doc.hard) {
631
614
  return doc.soft ? "" : " ";
632
615
  }
633
616
  if (doc.type === DOC_TYPE_IF_BREAK) {
634
- return doc.flatContents || "";
617
+ return doc.flatContents;
635
618
  }
636
619
  return doc;
637
620
  }
638
621
  function removeLines(doc) {
639
622
  return mapDoc(doc, removeLinesFn);
640
623
  }
641
- var isHardline = (doc, nextDoc) => doc && doc.type === DOC_TYPE_LINE && doc.hard && nextDoc && nextDoc.type === DOC_TYPE_BREAK_PARENT;
642
- function stripDocTrailingHardlineFromDoc(doc) {
643
- if (!doc) {
644
- return doc;
624
+ function stripTrailingHardlineFromParts(parts) {
625
+ parts = [...parts];
626
+ while (parts.length >= 2 && at_default(false, parts, -2).type === DOC_TYPE_LINE && at_default(false, parts, -1).type === DOC_TYPE_BREAK_PARENT) {
627
+ parts.length -= 2;
645
628
  }
646
- if (Array.isArray(doc) || doc.type === DOC_TYPE_FILL) {
647
- const parts = getDocParts(doc);
648
- while (parts.length > 1 && isHardline(...parts.slice(-2))) {
649
- parts.length -= 2;
650
- }
651
- if (parts.length > 0) {
652
- const lastPart = stripDocTrailingHardlineFromDoc(at_default(false, parts, -1));
653
- parts[parts.length - 1] = lastPart;
654
- }
655
- return Array.isArray(doc) ? parts : {
656
- ...doc,
657
- parts
658
- };
629
+ if (parts.length > 0) {
630
+ const lastPart = stripTrailingHardlineFromDoc(at_default(false, parts, -1));
631
+ parts[parts.length - 1] = lastPart;
659
632
  }
660
- switch (doc.type) {
633
+ return parts;
634
+ }
635
+ function stripTrailingHardlineFromDoc(doc) {
636
+ switch (get_doc_type_default(doc)) {
661
637
  case DOC_TYPE_ALIGN:
662
638
  case DOC_TYPE_INDENT:
663
639
  case DOC_TYPE_INDENT_IF_BREAK:
664
640
  case DOC_TYPE_GROUP:
665
641
  case DOC_TYPE_LINE_SUFFIX:
666
642
  case DOC_TYPE_LABEL: {
667
- const contents = stripDocTrailingHardlineFromDoc(doc.contents);
643
+ const contents = stripTrailingHardlineFromDoc(doc.contents);
668
644
  return {
669
645
  ...doc,
670
646
  contents
671
647
  };
672
648
  }
673
- case DOC_TYPE_IF_BREAK: {
674
- const breakContents = stripDocTrailingHardlineFromDoc(doc.breakContents);
675
- const flatContents = stripDocTrailingHardlineFromDoc(doc.flatContents);
649
+ case DOC_TYPE_IF_BREAK:
676
650
  return {
677
651
  ...doc,
678
- breakContents,
679
- flatContents
652
+ breakContents: stripTrailingHardlineFromDoc(doc.breakContents),
653
+ flatContents: stripTrailingHardlineFromDoc(doc.flatContents)
680
654
  };
681
- }
655
+ case DOC_TYPE_FILL:
656
+ return {
657
+ ...doc,
658
+ parts: stripTrailingHardlineFromParts(doc.parts)
659
+ };
660
+ case DOC_TYPE_ARRAY:
661
+ return stripTrailingHardlineFromParts(doc);
662
+ case DOC_TYPE_STRING:
663
+ return doc.replace(/[\n\r]*$/, "");
664
+ case DOC_TYPE_CURSOR:
665
+ case DOC_TYPE_TRIM:
666
+ case DOC_TYPE_LINE_SUFFIX_BOUNDARY:
667
+ case DOC_TYPE_LINE:
668
+ case DOC_TYPE_BREAK_PARENT:
669
+ break;
670
+ default:
671
+ throw new invalid_doc_error_default(doc);
682
672
  }
683
673
  return doc;
684
674
  }
685
675
  function stripTrailingHardline(doc) {
686
- if (typeof doc === "string") {
687
- return doc.replace(/(?:\r?\n)*$/, "");
688
- }
689
- return stripDocTrailingHardlineFromDoc(cleanDoc(doc));
676
+ return stripTrailingHardlineFromDoc(cleanDoc(doc));
690
677
  }
691
678
  function cleanDocFn(doc) {
692
679
  switch (get_doc_type_default(doc)) {
@@ -1346,6 +1333,7 @@ __export(debug_exports, {
1346
1333
  });
1347
1334
  init_define_process();
1348
1335
  function flattenDoc(doc) {
1336
+ var _a;
1349
1337
  if (!doc) {
1350
1338
  return "";
1351
1339
  }
@@ -1374,7 +1362,7 @@ function flattenDoc(doc) {
1374
1362
  return {
1375
1363
  ...doc,
1376
1364
  contents: flattenDoc(doc.contents),
1377
- expandedStates: doc.expandedStates && doc.expandedStates.map(flattenDoc)
1365
+ expandedStates: (_a = doc.expandedStates) == null ? void 0 : _a.map(flattenDoc)
1378
1366
  };
1379
1367
  }
1380
1368
  if (doc.type === DOC_TYPE_FILL) {
package/index.cjs CHANGED
@@ -280,31 +280,6 @@ var init_get_string_width = __esm({
280
280
  });
281
281
 
282
282
  // src/common/util.js
283
- function skip2(chars) {
284
- return (text, index, opts) => {
285
- const backwards = opts && opts.backwards;
286
- if (index === false) {
287
- return false;
288
- }
289
- const { length } = text;
290
- let cursor = index;
291
- while (cursor >= 0 && cursor < length) {
292
- const c = text.charAt(cursor);
293
- if (chars instanceof RegExp) {
294
- if (!chars.test(c)) {
295
- return cursor;
296
- }
297
- } else if (!chars.includes(c)) {
298
- return cursor;
299
- }
300
- backwards ? cursor-- : cursor++;
301
- }
302
- if (cursor === -1 || cursor === length) {
303
- return cursor;
304
- }
305
- return false;
306
- };
307
- }
308
283
  function hasNewline(text, index, opts = {}) {
309
284
  const idx = skipSpaces(text, opts.backwards ? index - 1 : index, opts);
310
285
  const idx2 = skip_newline_default(text, idx, opts);
@@ -467,7 +442,7 @@ __export(util_shared_exports, {
467
442
  isNextLineEmptyAfterIndex: () => isNextLineEmptyAfterIndex,
468
443
  isPreviousLineEmpty: () => isPreviousLineEmpty,
469
444
  makeString: () => makeString,
470
- skip: () => skip2,
445
+ skip: () => skip,
471
446
  skipEverythingButNewLine: () => skipEverythingButNewLine,
472
447
  skipInlineComment: () => skip_inline_comment_default,
473
448
  skipNewline: () => skip_newline_default,
@@ -485,7 +460,7 @@ var init_util_shared = __esm({
485
460
  // src/main/version.evaluate.cjs
486
461
  var require_version_evaluate = __commonJS({
487
462
  "src/main/version.evaluate.cjs"(exports2, module2) {
488
- module2.exports = "3.0.0-alpha.2";
463
+ module2.exports = "3.0.0-alpha.4";
489
464
  }
490
465
  });
491
466
 
@@ -503,10 +478,26 @@ var functionNames = [
503
478
  ];
504
479
  var prettier = /* @__PURE__ */ Object.create(null);
505
480
  for (const name of functionNames) {
506
- prettier[name] = function(...args) {
507
- return prettierPromise.then((prettier2) => prettier2[name](...args));
481
+ prettier[name] = async (...args) => {
482
+ const prettier2 = await prettierPromise;
483
+ return prettier2[name](...args);
484
+ };
485
+ }
486
+ var debugApiFunctionNames = [
487
+ "parse",
488
+ "formatAST",
489
+ "formatDoc",
490
+ "printToDoc",
491
+ "printDocToString"
492
+ ];
493
+ var debugApis = /* @__PURE__ */ Object.create(null);
494
+ for (const name of debugApiFunctionNames) {
495
+ debugApis[name] = async (...args) => {
496
+ const prettier2 = await prettierPromise;
497
+ return prettier2.__debug[name](...args);
508
498
  };
509
499
  }
500
+ prettier.__debug = debugApis;
510
501
  if (true) {
511
502
  prettier.util = (init_util_shared(), __toCommonJS(util_shared_exports));
512
503
  prettier.doc = require("./doc.js");