@@ -506,40 +506,6 @@ type ParseNodesHelper<
506
506
// Some utils type for the ParseQuery parser logic
507
507
// Count is a special case where an aggregate function won't need a column to be run against
508
508
// see: https://postgrest.org/en/v12/references/api/aggregate_functions.html#the-case-of-count
509
- type LowerAlphabet =
510
- | 'a'
511
- | 'b'
512
- | 'c'
513
- | 'd'
514
- | 'e'
515
- | 'f'
516
- | 'g'
517
- | 'h'
518
- | 'i'
519
- | 'j'
520
- | 'k'
521
- | 'l'
522
- | 'm'
523
- | 'n'
524
- | 'o'
525
- | 'p'
526
- | 'q'
527
- | 'r'
528
- | 's'
529
- | 't'
530
- | 'u'
531
- | 'v'
532
- | 'w'
533
- | 'x'
534
- | 'y'
535
- | 'z'
536
-
537
- type Alphabet = LowerAlphabet | Uppercase < LowerAlphabet >
538
-
539
- type Digit = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'
540
-
541
- type Letter = Alphabet | Digit | '_'
542
-
543
509
/**
544
510
* Reads a consecutive sequence of 1 or more letters, where letters are `[0-9a-zA-Z_]`.
545
511
*/
@@ -554,7 +520,7 @@ type ReadLetters<Input extends string> = string extends Input
554
520
type ReadLettersHelper < Input extends string , Acc extends string > = string extends Input
555
521
? GenericStringError
556
522
: Input extends `${infer L } ${infer Remainder } `
557
- ? L extends Letter
523
+ ? L extends Token . Letter
558
524
? ReadLettersHelper < Remainder , `${Acc } ${L } `>
559
525
: [ Acc , Input ]
560
526
: [ Acc , '' ]
@@ -588,17 +554,52 @@ type CreateParserErrorIfRequired<Input, Message extends string> = Input extends
588
554
? Input
589
555
: ParserError < Message >
590
556
591
- type Whitespace = ' ' | '\n' | '\t'
592
-
593
557
/**
594
558
* Trims whitespace from the left of the input.
595
559
*/
596
560
type EatWhitespace < Input extends string > = string extends Input
597
561
? GenericStringError
598
- : Input extends `${Whitespace } ${infer Remainder } `
562
+ : Input extends `${Token . Whitespace } ${infer Remainder } `
599
563
? EatWhitespace < Remainder >
600
564
: Input
601
565
566
+ namespace Token {
567
+ type LowerAlphabet =
568
+ | 'a'
569
+ | 'b'
570
+ | 'c'
571
+ | 'd'
572
+ | 'e'
573
+ | 'f'
574
+ | 'g'
575
+ | 'h'
576
+ | 'i'
577
+ | 'j'
578
+ | 'k'
579
+ | 'l'
580
+ | 'm'
581
+ | 'n'
582
+ | 'o'
583
+ | 'p'
584
+ | 'q'
585
+ | 'r'
586
+ | 's'
587
+ | 't'
588
+ | 'u'
589
+ | 'v'
590
+ | 'w'
591
+ | 'x'
592
+ | 'y'
593
+ | 'z'
594
+
595
+ type Alphabet = LowerAlphabet | Uppercase < LowerAlphabet >
596
+
597
+ type Digit = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '0'
598
+
599
+ export type Letter = Alphabet | Digit | '_'
600
+ export type Whitespace = ' ' | '\n' | '\t'
601
+ }
602
+
602
603
export namespace Ast {
603
604
export interface IdentifierNode {
604
605
type : 'identifier'
0 commit comments