numeric.d.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import type { ColumnBuilderBaseConfig } from "../../column-builder.js";
  2. import type { ColumnBaseConfig } from "../../column.js";
  3. import { entityKind } from "../../entity.js";
  4. import { type Equal } from "../../utils.js";
  5. import { SQLiteColumn, SQLiteColumnBuilder } from "./common.js";
  6. export type SQLiteNumericBuilderInitial<TName extends string> = SQLiteNumericBuilder<{
  7. name: TName;
  8. dataType: 'string';
  9. columnType: 'SQLiteNumeric';
  10. data: string;
  11. driverParam: string;
  12. enumValues: undefined;
  13. }>;
  14. export declare class SQLiteNumericBuilder<T extends ColumnBuilderBaseConfig<'string', 'SQLiteNumeric'>> extends SQLiteColumnBuilder<T> {
  15. static readonly [entityKind]: string;
  16. constructor(name: T['name']);
  17. }
  18. export declare class SQLiteNumeric<T extends ColumnBaseConfig<'string', 'SQLiteNumeric'>> extends SQLiteColumn<T> {
  19. static readonly [entityKind]: string;
  20. mapFromDriverValue(value: unknown): string;
  21. getSQLType(): string;
  22. }
  23. export type SQLiteNumericNumberBuilderInitial<TName extends string> = SQLiteNumericNumberBuilder<{
  24. name: TName;
  25. dataType: 'number';
  26. columnType: 'SQLiteNumericNumber';
  27. data: number;
  28. driverParam: string;
  29. enumValues: undefined;
  30. }>;
  31. export declare class SQLiteNumericNumberBuilder<T extends ColumnBuilderBaseConfig<'number', 'SQLiteNumericNumber'>> extends SQLiteColumnBuilder<T> {
  32. static readonly [entityKind]: string;
  33. constructor(name: T['name']);
  34. }
  35. export declare class SQLiteNumericNumber<T extends ColumnBaseConfig<'number', 'SQLiteNumericNumber'>> extends SQLiteColumn<T> {
  36. static readonly [entityKind]: string;
  37. mapFromDriverValue(value: unknown): number;
  38. mapToDriverValue: StringConstructor;
  39. getSQLType(): string;
  40. }
  41. export type SQLiteNumericBigIntBuilderInitial<TName extends string> = SQLiteNumericBigIntBuilder<{
  42. name: TName;
  43. dataType: 'bigint';
  44. columnType: 'SQLiteNumericBigInt';
  45. data: bigint;
  46. driverParam: string;
  47. enumValues: undefined;
  48. }>;
  49. export declare class SQLiteNumericBigIntBuilder<T extends ColumnBuilderBaseConfig<'bigint', 'SQLiteNumericBigInt'>> extends SQLiteColumnBuilder<T> {
  50. static readonly [entityKind]: string;
  51. constructor(name: T['name']);
  52. }
  53. export declare class SQLiteNumericBigInt<T extends ColumnBaseConfig<'bigint', 'SQLiteNumericBigInt'>> extends SQLiteColumn<T> {
  54. static readonly [entityKind]: string;
  55. mapFromDriverValue: BigIntConstructor;
  56. mapToDriverValue: StringConstructor;
  57. getSQLType(): string;
  58. }
  59. export type SQLiteNumericConfig<T extends 'string' | 'number' | 'bigint' = 'string' | 'number' | 'bigint'> = {
  60. mode: T;
  61. };
  62. export declare function numeric<TMode extends SQLiteNumericConfig['mode']>(config?: SQLiteNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<''> : Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<''> : SQLiteNumericBuilderInitial<''>;
  63. export declare function numeric<TName extends string, TMode extends SQLiteNumericConfig['mode']>(name: TName, config?: SQLiteNumericConfig<TMode>): Equal<TMode, 'number'> extends true ? SQLiteNumericNumberBuilderInitial<TName> : Equal<TMode, 'bigint'> extends true ? SQLiteNumericBigIntBuilderInitial<TName> : SQLiteNumericBuilderInitial<TName>;