( acquirer: Acquirer, compiler: Compiler, strings: TemplateStringsArray, args: Array<any>, spanAttributes: ReadonlyArray<readonly [string, unknown]>, transformRows: (<A extends object>(row: ReadonlyArray<A>) => ReadonlyArray<A>) | undefined )
| 615 | |
| 616 | return self |
| 617 | } |
| 618 | |
| 619 | const constructorCache = { |
| 620 | transforms: new WeakMap<Acquirer, Constructor>(), |
| 621 | noTransforms: new WeakMap<Acquirer, Constructor>() |
| 622 | } |
| 623 | |
| 624 | /** |
| 625 | * Builds a `Statement` from template strings and arguments, preserving |
| 626 | * fragments and helper segments while converting ordinary interpolated values |
| 627 | * into bound parameters. |
| 628 | * |
| 629 | * @category constructors |
| 630 | * @since 4.0.0 |
| 631 | */ |
| 632 | export const statement = <A = Row>( |
| 633 | acquirer: Acquirer, |
| 634 | compiler: Compiler, |
| 635 | strings: TemplateStringsArray, |
| 636 | args: Array<any>, |
| 637 | spanAttributes: ReadonlyArray<readonly [string, unknown]>, |
| 638 | transformRows: (<A extends object>(row: ReadonlyArray<A>) => ReadonlyArray<A>) | undefined, |
| 639 | borrower?: Borrower | undefined |
| 640 | ): Statement<A> => { |
| 641 | const segments: Array<Segment> = strings[0].length > 0 ? [literal(strings[0])] : [] |
| 642 | |
| 643 | for (let i = 0; i < args.length; i++) { |
| 644 | const arg = args[i] |
| 645 | |
| 646 | if (isFragment(arg)) { |
| 647 | segments.push(...arg.segments) |
no test coverage detected
searching dependent graphs…