drizzle-orm 1.0.0-beta.4-4605abe → 1.0.0-beta.5-5707f0d

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "drizzle-orm",
3
- "version": "1.0.0-beta.4-4605abe",
3
+ "version": "1.0.0-beta.5-5707f0d",
4
4
  "description": "Drizzle ORM package for SQL databases",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -546,54 +546,6 @@
546
546
  "types": "./view-common.d.ts",
547
547
  "default": "./view-common.js"
548
548
  },
549
- "./better-sqlite3/driver": {
550
- "import": {
551
- "types": "./better-sqlite3/driver.d.ts",
552
- "default": "./better-sqlite3/driver.js"
553
- },
554
- "require": {
555
- "types": "./better-sqlite3/driver.d.cts",
556
- "default": "./better-sqlite3/driver.cjs"
557
- },
558
- "types": "./better-sqlite3/driver.d.ts",
559
- "default": "./better-sqlite3/driver.js"
560
- },
561
- "./better-sqlite3": {
562
- "import": {
563
- "types": "./better-sqlite3/index.d.ts",
564
- "default": "./better-sqlite3/index.js"
565
- },
566
- "require": {
567
- "types": "./better-sqlite3/index.d.cts",
568
- "default": "./better-sqlite3/index.cjs"
569
- },
570
- "types": "./better-sqlite3/index.d.ts",
571
- "default": "./better-sqlite3/index.js"
572
- },
573
- "./better-sqlite3/migrator": {
574
- "import": {
575
- "types": "./better-sqlite3/migrator.d.ts",
576
- "default": "./better-sqlite3/migrator.js"
577
- },
578
- "require": {
579
- "types": "./better-sqlite3/migrator.d.cts",
580
- "default": "./better-sqlite3/migrator.cjs"
581
- },
582
- "types": "./better-sqlite3/migrator.d.ts",
583
- "default": "./better-sqlite3/migrator.js"
584
- },
585
- "./better-sqlite3/session": {
586
- "import": {
587
- "types": "./better-sqlite3/session.d.ts",
588
- "default": "./better-sqlite3/session.js"
589
- },
590
- "require": {
591
- "types": "./better-sqlite3/session.d.cts",
592
- "default": "./better-sqlite3/session.cjs"
593
- },
594
- "types": "./better-sqlite3/session.d.ts",
595
- "default": "./better-sqlite3/session.js"
596
- },
597
549
  "./bun-sql/driver": {
598
550
  "import": {
599
551
  "types": "./bun-sql/driver.d.ts",
@@ -642,6 +594,54 @@
642
594
  "types": "./bun-sql/session.d.ts",
643
595
  "default": "./bun-sql/session.js"
644
596
  },
597
+ "./better-sqlite3/driver": {
598
+ "import": {
599
+ "types": "./better-sqlite3/driver.d.ts",
600
+ "default": "./better-sqlite3/driver.js"
601
+ },
602
+ "require": {
603
+ "types": "./better-sqlite3/driver.d.cts",
604
+ "default": "./better-sqlite3/driver.cjs"
605
+ },
606
+ "types": "./better-sqlite3/driver.d.ts",
607
+ "default": "./better-sqlite3/driver.js"
608
+ },
609
+ "./better-sqlite3": {
610
+ "import": {
611
+ "types": "./better-sqlite3/index.d.ts",
612
+ "default": "./better-sqlite3/index.js"
613
+ },
614
+ "require": {
615
+ "types": "./better-sqlite3/index.d.cts",
616
+ "default": "./better-sqlite3/index.cjs"
617
+ },
618
+ "types": "./better-sqlite3/index.d.ts",
619
+ "default": "./better-sqlite3/index.js"
620
+ },
621
+ "./better-sqlite3/migrator": {
622
+ "import": {
623
+ "types": "./better-sqlite3/migrator.d.ts",
624
+ "default": "./better-sqlite3/migrator.js"
625
+ },
626
+ "require": {
627
+ "types": "./better-sqlite3/migrator.d.cts",
628
+ "default": "./better-sqlite3/migrator.cjs"
629
+ },
630
+ "types": "./better-sqlite3/migrator.d.ts",
631
+ "default": "./better-sqlite3/migrator.js"
632
+ },
633
+ "./better-sqlite3/session": {
634
+ "import": {
635
+ "types": "./better-sqlite3/session.d.ts",
636
+ "default": "./better-sqlite3/session.js"
637
+ },
638
+ "require": {
639
+ "types": "./better-sqlite3/session.d.cts",
640
+ "default": "./better-sqlite3/session.cjs"
641
+ },
642
+ "types": "./better-sqlite3/session.d.ts",
643
+ "default": "./better-sqlite3/session.js"
644
+ },
645
645
  "./bun-sqlite/driver": {
646
646
  "import": {
647
647
  "types": "./bun-sqlite/driver.d.ts",
@@ -95,6 +95,7 @@ class SQLiteTimestamp extends SQLiteBaseInteger {
95
95
  static [import_entity.entityKind] = "SQLiteTimestamp";
96
96
  mode = this.config.mode;
97
97
  mapFromDriverValue(value) {
98
+ if (typeof value === "string") return new Date(value.replaceAll('"', ""));
98
99
  if (this.config.mode === "timestamp") {
99
100
  return new Date(value * 1e3);
100
101
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/columns/integer.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnType, HasDefault, IsPrimaryKey, NotNull } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { OnConflict } from '~/sqlite-core/utils.ts';\nimport { type Equal, getColumnNameAndConfig, type Or } from '~/utils.ts';\nimport type { SQLiteTable } from '../table.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport interface PrimaryKeyConfig {\n\tautoIncrement?: boolean;\n\tonConflict?: OnConflict;\n}\n\nexport abstract class SQLiteBaseIntegerBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumnBuilder<\n\tT,\n\tTRuntimeConfig & { autoIncrement: boolean },\n\t{ primaryKeyHasDefault: true }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBaseIntegerBuilder';\n\n\tconstructor(name: string, dataType: T['dataType'], columnType: string) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\toverride primaryKey(config?: PrimaryKeyConfig): IsPrimaryKey<HasDefault<NotNull<this>>> {\n\t\tif (config?.autoIncrement) {\n\t\t\tthis.config.autoIncrement = true;\n\t\t}\n\t\tthis.config.hasDefault = true;\n\t\treturn super.primaryKey() as IsPrimaryKey<HasDefault<NotNull<this>>>;\n\t}\n}\n\nexport abstract class SQLiteBaseInteger<\n\tT extends ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumn<T, TRuntimeConfig & { autoIncrement: boolean }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBaseInteger';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n\n\tgetSQLType(): string {\n\t\treturn 'integer';\n\t}\n}\n\nexport class SQLiteIntegerBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'number int53';\n\tdata: number;\n\tdriverParam: number;\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteIntegerBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'number int53', 'SQLiteInteger');\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteInteger(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteInteger<T extends ColumnBaseConfig<'number int53'>> extends SQLiteBaseInteger<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteInteger';\n}\n\nexport class SQLiteTimestampBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: number;\n}, { mode: 'timestamp' | 'timestamp_ms' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTimestampBuilder';\n\n\tconstructor(name: string, mode: 'timestamp' | 'timestamp_ms') {\n\t\tsuper(name, 'object date', 'SQLiteTimestamp');\n\t\tthis.config.mode = mode;\n\t}\n\n\t/**\n\t * @deprecated Use `default()` with your own expression instead.\n\t *\n\t * Adds `DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer))` to the column, which is the current epoch timestamp in milliseconds.\n\t */\n\tdefaultNow(): HasDefault<this> {\n\t\treturn this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`) as any;\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends SQLiteBaseInteger<T, { mode: 'timestamp' | 'timestamp_ms' }>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteTimestamp';\n\n\treadonly mode: 'timestamp' | 'timestamp_ms' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): Date {\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn new Date(value * 1000);\n\t\t}\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date | number): number {\n\t\tif (typeof value === 'number') return value;\n\t\tconst unix = value.getTime();\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn Math.floor(unix / 1000);\n\t\t}\n\t\treturn unix;\n\t}\n}\n\nexport class SQLiteBooleanBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'boolean';\n\tdata: boolean;\n\tdriverParam: number;\n}, { mode: 'boolean' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBooleanBuilder';\n\n\tconstructor(name: string, mode: 'boolean') {\n\t\tsuper(name, 'boolean', 'SQLiteBoolean');\n\t\tthis.config.mode = mode;\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteBoolean(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteBoolean<T extends ColumnBaseConfig<'boolean'>> extends SQLiteBaseInteger<T, { mode: 'boolean' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBoolean';\n\n\treadonly mode: 'boolean' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): boolean {\n\t\treturn Number(value) === 1;\n\t}\n\n\toverride mapToDriverValue(value: boolean): number {\n\t\treturn value ? 1 : 0;\n\t}\n}\n\nexport interface IntegerConfig<\n\tTMode extends 'number' | 'timestamp' | 'timestamp_ms' | 'boolean' =\n\t\t| 'number'\n\t\t| 'timestamp'\n\t\t| 'timestamp_ms'\n\t\t| 'boolean',\n> {\n\tmode: TMode;\n}\n\nexport function integer<TMode extends IntegerConfig['mode']>(\n\tconfig?: IntegerConfig<TMode>,\n): Or<Equal<TMode, 'timestamp'>, Equal<TMode, 'timestamp_ms'>> extends true ? SQLiteTimestampBuilder\n\t: Equal<TMode, 'boolean'> extends true ? SQLiteBooleanBuilder\n\t: SQLiteIntegerBuilder;\nexport function integer<TMode extends IntegerConfig['mode']>(\n\tname: string,\n\tconfig?: IntegerConfig<TMode>,\n): Or<Equal<TMode, 'timestamp'>, Equal<TMode, 'timestamp_ms'>> extends true ? SQLiteTimestampBuilder\n\t: Equal<TMode, 'boolean'> extends true ? SQLiteBooleanBuilder\n\t: SQLiteIntegerBuilder;\nexport function integer(a?: string | IntegerConfig, b?: IntegerConfig) {\n\tconst { name, config } = getColumnNameAndConfig<IntegerConfig | undefined>(a, b);\n\tif (config?.mode === 'timestamp' || config?.mode === 'timestamp_ms') {\n\t\treturn new SQLiteTimestampBuilder(name, config.mode);\n\t}\n\tif (config?.mode === 'boolean') {\n\t\treturn new SQLiteBooleanBuilder(name, config.mode);\n\t}\n\treturn new SQLiteIntegerBuilder(name);\n}\n\nexport const int = integer;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/columns/integer.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnType, HasDefault, IsPrimaryKey, NotNull } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { OnConflict } from '~/sqlite-core/utils.ts';\nimport { type Equal, getColumnNameAndConfig, type Or } from '~/utils.ts';\nimport type { SQLiteTable } from '../table.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport interface PrimaryKeyConfig {\n\tautoIncrement?: boolean;\n\tonConflict?: OnConflict;\n}\n\nexport abstract class SQLiteBaseIntegerBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumnBuilder<\n\tT,\n\tTRuntimeConfig & { autoIncrement: boolean },\n\t{ primaryKeyHasDefault: true }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBaseIntegerBuilder';\n\n\tconstructor(name: string, dataType: T['dataType'], columnType: string) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\toverride primaryKey(config?: PrimaryKeyConfig): IsPrimaryKey<HasDefault<NotNull<this>>> {\n\t\tif (config?.autoIncrement) {\n\t\t\tthis.config.autoIncrement = true;\n\t\t}\n\t\tthis.config.hasDefault = true;\n\t\treturn super.primaryKey() as IsPrimaryKey<HasDefault<NotNull<this>>>;\n\t}\n}\n\nexport abstract class SQLiteBaseInteger<\n\tT extends ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumn<T, TRuntimeConfig & { autoIncrement: boolean }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBaseInteger';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n\n\tgetSQLType(): string {\n\t\treturn 'integer';\n\t}\n}\n\nexport class SQLiteIntegerBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'number int53';\n\tdata: number;\n\tdriverParam: number;\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteIntegerBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'number int53', 'SQLiteInteger');\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteInteger(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteInteger<T extends ColumnBaseConfig<'number int53'>> extends SQLiteBaseInteger<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteInteger';\n}\n\nexport class SQLiteTimestampBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: number;\n}, { mode: 'timestamp' | 'timestamp_ms' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTimestampBuilder';\n\n\tconstructor(name: string, mode: 'timestamp' | 'timestamp_ms') {\n\t\tsuper(name, 'object date', 'SQLiteTimestamp');\n\t\tthis.config.mode = mode;\n\t}\n\n\t/**\n\t * @deprecated Use `default()` with your own expression instead.\n\t *\n\t * Adds `DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer))` to the column, which is the current epoch timestamp in milliseconds.\n\t */\n\tdefaultNow(): HasDefault<this> {\n\t\treturn this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`) as any;\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends SQLiteBaseInteger<T, { mode: 'timestamp' | 'timestamp_ms' }>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteTimestamp';\n\n\treadonly mode: 'timestamp' | 'timestamp_ms' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number | string): Date {\n\t\t// legacy issue if integer had string date format\n\t\t// old kit generated defaults as quoted strings \"<string>\"\n\t\tif (typeof value === 'string') return new Date(value.replaceAll('\"', ''));\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn new Date(value * 1000);\n\t\t}\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date | number): number {\n\t\tif (typeof value === 'number') return value;\n\t\tconst unix = value.getTime();\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn Math.floor(unix / 1000);\n\t\t}\n\t\treturn unix;\n\t}\n}\n\nexport class SQLiteBooleanBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'boolean';\n\tdata: boolean;\n\tdriverParam: number;\n}, { mode: 'boolean' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBooleanBuilder';\n\n\tconstructor(name: string, mode: 'boolean') {\n\t\tsuper(name, 'boolean', 'SQLiteBoolean');\n\t\tthis.config.mode = mode;\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteBoolean(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteBoolean<T extends ColumnBaseConfig<'boolean'>> extends SQLiteBaseInteger<T, { mode: 'boolean' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBoolean';\n\n\treadonly mode: 'boolean' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): boolean {\n\t\treturn Number(value) === 1;\n\t}\n\n\toverride mapToDriverValue(value: boolean): number {\n\t\treturn value ? 1 : 0;\n\t}\n}\n\nexport interface IntegerConfig<\n\tTMode extends 'number' | 'timestamp' | 'timestamp_ms' | 'boolean' =\n\t\t| 'number'\n\t\t| 'timestamp'\n\t\t| 'timestamp_ms'\n\t\t| 'boolean',\n> {\n\tmode: TMode;\n}\n\nexport function integer<TMode extends IntegerConfig['mode']>(\n\tconfig?: IntegerConfig<TMode>,\n): Or<Equal<TMode, 'timestamp'>, Equal<TMode, 'timestamp_ms'>> extends true ? SQLiteTimestampBuilder\n\t: Equal<TMode, 'boolean'> extends true ? SQLiteBooleanBuilder\n\t: SQLiteIntegerBuilder;\nexport function integer<TMode extends IntegerConfig['mode']>(\n\tname: string,\n\tconfig?: IntegerConfig<TMode>,\n): Or<Equal<TMode, 'timestamp'>, Equal<TMode, 'timestamp_ms'>> extends true ? SQLiteTimestampBuilder\n\t: Equal<TMode, 'boolean'> extends true ? SQLiteBooleanBuilder\n\t: SQLiteIntegerBuilder;\nexport function integer(a?: string | IntegerConfig, b?: IntegerConfig) {\n\tconst { name, config } = getColumnNameAndConfig<IntegerConfig | undefined>(a, b);\n\tif (config?.mode === 'timestamp' || config?.mode === 'timestamp_ms') {\n\t\treturn new SQLiteTimestampBuilder(name, config.mode);\n\t}\n\tif (config?.mode === 'boolean') {\n\t\treturn new SQLiteBooleanBuilder(name, config.mode);\n\t}\n\treturn new SQLiteIntegerBuilder(name);\n}\n\nexport const int = integer;\n"],"mappings":"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","names":[]}
@@ -59,7 +59,7 @@ export declare class SQLiteTimestamp<T extends ColumnBaseConfig<'object date'>>
59
59
  }> {
60
60
  static readonly [entityKind]: string;
61
61
  readonly mode: 'timestamp' | 'timestamp_ms';
62
- mapFromDriverValue(value: number): Date;
62
+ mapFromDriverValue(value: number | string): Date;
63
63
  mapToDriverValue(value: Date | number): number;
64
64
  }
65
65
  export declare class SQLiteBooleanBuilder extends SQLiteBaseIntegerBuilder<{
@@ -59,7 +59,7 @@ export declare class SQLiteTimestamp<T extends ColumnBaseConfig<'object date'>>
59
59
  }> {
60
60
  static readonly [entityKind]: string;
61
61
  readonly mode: 'timestamp' | 'timestamp_ms';
62
- mapFromDriverValue(value: number): Date;
62
+ mapFromDriverValue(value: number | string): Date;
63
63
  mapToDriverValue(value: Date | number): number;
64
64
  }
65
65
  export declare class SQLiteBooleanBuilder extends SQLiteBaseIntegerBuilder<{
@@ -63,6 +63,7 @@ class SQLiteTimestamp extends SQLiteBaseInteger {
63
63
  static [entityKind] = "SQLiteTimestamp";
64
64
  mode = this.config.mode;
65
65
  mapFromDriverValue(value) {
66
+ if (typeof value === "string") return new Date(value.replaceAll('"', ""));
66
67
  if (this.config.mode === "timestamp") {
67
68
  return new Date(value * 1e3);
68
69
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/sqlite-core/columns/integer.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnType, HasDefault, IsPrimaryKey, NotNull } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { OnConflict } from '~/sqlite-core/utils.ts';\nimport { type Equal, getColumnNameAndConfig, type Or } from '~/utils.ts';\nimport type { SQLiteTable } from '../table.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport interface PrimaryKeyConfig {\n\tautoIncrement?: boolean;\n\tonConflict?: OnConflict;\n}\n\nexport abstract class SQLiteBaseIntegerBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumnBuilder<\n\tT,\n\tTRuntimeConfig & { autoIncrement: boolean },\n\t{ primaryKeyHasDefault: true }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBaseIntegerBuilder';\n\n\tconstructor(name: string, dataType: T['dataType'], columnType: string) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\toverride primaryKey(config?: PrimaryKeyConfig): IsPrimaryKey<HasDefault<NotNull<this>>> {\n\t\tif (config?.autoIncrement) {\n\t\t\tthis.config.autoIncrement = true;\n\t\t}\n\t\tthis.config.hasDefault = true;\n\t\treturn super.primaryKey() as IsPrimaryKey<HasDefault<NotNull<this>>>;\n\t}\n}\n\nexport abstract class SQLiteBaseInteger<\n\tT extends ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumn<T, TRuntimeConfig & { autoIncrement: boolean }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBaseInteger';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n\n\tgetSQLType(): string {\n\t\treturn 'integer';\n\t}\n}\n\nexport class SQLiteIntegerBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'number int53';\n\tdata: number;\n\tdriverParam: number;\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteIntegerBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'number int53', 'SQLiteInteger');\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteInteger(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteInteger<T extends ColumnBaseConfig<'number int53'>> extends SQLiteBaseInteger<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteInteger';\n}\n\nexport class SQLiteTimestampBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: number;\n}, { mode: 'timestamp' | 'timestamp_ms' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTimestampBuilder';\n\n\tconstructor(name: string, mode: 'timestamp' | 'timestamp_ms') {\n\t\tsuper(name, 'object date', 'SQLiteTimestamp');\n\t\tthis.config.mode = mode;\n\t}\n\n\t/**\n\t * @deprecated Use `default()` with your own expression instead.\n\t *\n\t * Adds `DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer))` to the column, which is the current epoch timestamp in milliseconds.\n\t */\n\tdefaultNow(): HasDefault<this> {\n\t\treturn this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`) as any;\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends SQLiteBaseInteger<T, { mode: 'timestamp' | 'timestamp_ms' }>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteTimestamp';\n\n\treadonly mode: 'timestamp' | 'timestamp_ms' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): Date {\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn new Date(value * 1000);\n\t\t}\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date | number): number {\n\t\tif (typeof value === 'number') return value;\n\t\tconst unix = value.getTime();\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn Math.floor(unix / 1000);\n\t\t}\n\t\treturn unix;\n\t}\n}\n\nexport class SQLiteBooleanBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'boolean';\n\tdata: boolean;\n\tdriverParam: number;\n}, { mode: 'boolean' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBooleanBuilder';\n\n\tconstructor(name: string, mode: 'boolean') {\n\t\tsuper(name, 'boolean', 'SQLiteBoolean');\n\t\tthis.config.mode = mode;\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteBoolean(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteBoolean<T extends ColumnBaseConfig<'boolean'>> extends SQLiteBaseInteger<T, { mode: 'boolean' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBoolean';\n\n\treadonly mode: 'boolean' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): boolean {\n\t\treturn Number(value) === 1;\n\t}\n\n\toverride mapToDriverValue(value: boolean): number {\n\t\treturn value ? 1 : 0;\n\t}\n}\n\nexport interface IntegerConfig<\n\tTMode extends 'number' | 'timestamp' | 'timestamp_ms' | 'boolean' =\n\t\t| 'number'\n\t\t| 'timestamp'\n\t\t| 'timestamp_ms'\n\t\t| 'boolean',\n> {\n\tmode: TMode;\n}\n\nexport function integer<TMode extends IntegerConfig['mode']>(\n\tconfig?: IntegerConfig<TMode>,\n): Or<Equal<TMode, 'timestamp'>, Equal<TMode, 'timestamp_ms'>> extends true ? SQLiteTimestampBuilder\n\t: Equal<TMode, 'boolean'> extends true ? SQLiteBooleanBuilder\n\t: SQLiteIntegerBuilder;\nexport function integer<TMode extends IntegerConfig['mode']>(\n\tname: string,\n\tconfig?: IntegerConfig<TMode>,\n): Or<Equal<TMode, 'timestamp'>, Equal<TMode, 'timestamp_ms'>> extends true ? SQLiteTimestampBuilder\n\t: Equal<TMode, 'boolean'> extends true ? SQLiteBooleanBuilder\n\t: SQLiteIntegerBuilder;\nexport function integer(a?: string | IntegerConfig, b?: IntegerConfig) {\n\tconst { name, config } = getColumnNameAndConfig<IntegerConfig | undefined>(a, b);\n\tif (config?.mode === 'timestamp' || config?.mode === 'timestamp_ms') {\n\t\treturn new SQLiteTimestampBuilder(name, config.mode);\n\t}\n\tif (config?.mode === 'boolean') {\n\t\treturn new SQLiteBooleanBuilder(name, config.mode);\n\t}\n\treturn new SQLiteIntegerBuilder(name);\n}\n\nexport const int = integer;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/sqlite-core/columns/integer.ts"],"sourcesContent":["import type { ColumnBuilderBaseConfig, ColumnType, HasDefault, IsPrimaryKey, NotNull } from '~/column-builder.ts';\nimport type { ColumnBaseConfig } from '~/column.ts';\nimport { entityKind } from '~/entity.ts';\nimport { sql } from '~/sql/sql.ts';\nimport type { OnConflict } from '~/sqlite-core/utils.ts';\nimport { type Equal, getColumnNameAndConfig, type Or } from '~/utils.ts';\nimport type { SQLiteTable } from '../table.ts';\nimport { SQLiteColumn, SQLiteColumnBuilder } from './common.ts';\n\nexport interface PrimaryKeyConfig {\n\tautoIncrement?: boolean;\n\tonConflict?: OnConflict;\n}\n\nexport abstract class SQLiteBaseIntegerBuilder<\n\tT extends ColumnBuilderBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumnBuilder<\n\tT,\n\tTRuntimeConfig & { autoIncrement: boolean },\n\t{ primaryKeyHasDefault: true }\n> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBaseIntegerBuilder';\n\n\tconstructor(name: string, dataType: T['dataType'], columnType: string) {\n\t\tsuper(name, dataType, columnType);\n\t\tthis.config.autoIncrement = false;\n\t}\n\n\toverride primaryKey(config?: PrimaryKeyConfig): IsPrimaryKey<HasDefault<NotNull<this>>> {\n\t\tif (config?.autoIncrement) {\n\t\t\tthis.config.autoIncrement = true;\n\t\t}\n\t\tthis.config.hasDefault = true;\n\t\treturn super.primaryKey() as IsPrimaryKey<HasDefault<NotNull<this>>>;\n\t}\n}\n\nexport abstract class SQLiteBaseInteger<\n\tT extends ColumnBaseConfig<ColumnType>,\n\tTRuntimeConfig extends object = object,\n> extends SQLiteColumn<T, TRuntimeConfig & { autoIncrement: boolean }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBaseInteger';\n\n\treadonly autoIncrement: boolean = this.config.autoIncrement;\n\n\tgetSQLType(): string {\n\t\treturn 'integer';\n\t}\n}\n\nexport class SQLiteIntegerBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'number int53';\n\tdata: number;\n\tdriverParam: number;\n}> {\n\tstatic override readonly [entityKind]: string = 'SQLiteIntegerBuilder';\n\n\tconstructor(name: string) {\n\t\tsuper(name, 'number int53', 'SQLiteInteger');\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteInteger(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteInteger<T extends ColumnBaseConfig<'number int53'>> extends SQLiteBaseInteger<T> {\n\tstatic override readonly [entityKind]: string = 'SQLiteInteger';\n}\n\nexport class SQLiteTimestampBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'object date';\n\tdata: Date;\n\tdriverParam: number;\n}, { mode: 'timestamp' | 'timestamp_ms' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteTimestampBuilder';\n\n\tconstructor(name: string, mode: 'timestamp' | 'timestamp_ms') {\n\t\tsuper(name, 'object date', 'SQLiteTimestamp');\n\t\tthis.config.mode = mode;\n\t}\n\n\t/**\n\t * @deprecated Use `default()` with your own expression instead.\n\t *\n\t * Adds `DEFAULT (cast((julianday('now') - 2440587.5)*86400000 as integer))` to the column, which is the current epoch timestamp in milliseconds.\n\t */\n\tdefaultNow(): HasDefault<this> {\n\t\treturn this.default(sql`(cast((julianday('now') - 2440587.5)*86400000 as integer))`) as any;\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteTimestamp(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteTimestamp<T extends ColumnBaseConfig<'object date'>>\n\textends SQLiteBaseInteger<T, { mode: 'timestamp' | 'timestamp_ms' }>\n{\n\tstatic override readonly [entityKind]: string = 'SQLiteTimestamp';\n\n\treadonly mode: 'timestamp' | 'timestamp_ms' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number | string): Date {\n\t\t// legacy issue if integer had string date format\n\t\t// old kit generated defaults as quoted strings \"<string>\"\n\t\tif (typeof value === 'string') return new Date(value.replaceAll('\"', ''));\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn new Date(value * 1000);\n\t\t}\n\t\treturn new Date(value);\n\t}\n\n\toverride mapToDriverValue(value: Date | number): number {\n\t\tif (typeof value === 'number') return value;\n\t\tconst unix = value.getTime();\n\t\tif (this.config.mode === 'timestamp') {\n\t\t\treturn Math.floor(unix / 1000);\n\t\t}\n\t\treturn unix;\n\t}\n}\n\nexport class SQLiteBooleanBuilder extends SQLiteBaseIntegerBuilder<{\n\tdataType: 'boolean';\n\tdata: boolean;\n\tdriverParam: number;\n}, { mode: 'boolean' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBooleanBuilder';\n\n\tconstructor(name: string, mode: 'boolean') {\n\t\tsuper(name, 'boolean', 'SQLiteBoolean');\n\t\tthis.config.mode = mode;\n\t}\n\n\toverride build(table: SQLiteTable) {\n\t\treturn new SQLiteBoolean(\n\t\t\ttable,\n\t\t\tthis.config as any,\n\t\t);\n\t}\n}\n\nexport class SQLiteBoolean<T extends ColumnBaseConfig<'boolean'>> extends SQLiteBaseInteger<T, { mode: 'boolean' }> {\n\tstatic override readonly [entityKind]: string = 'SQLiteBoolean';\n\n\treadonly mode: 'boolean' = this.config.mode;\n\n\toverride mapFromDriverValue(value: number): boolean {\n\t\treturn Number(value) === 1;\n\t}\n\n\toverride mapToDriverValue(value: boolean): number {\n\t\treturn value ? 1 : 0;\n\t}\n}\n\nexport interface IntegerConfig<\n\tTMode extends 'number' | 'timestamp' | 'timestamp_ms' | 'boolean' =\n\t\t| 'number'\n\t\t| 'timestamp'\n\t\t| 'timestamp_ms'\n\t\t| 'boolean',\n> {\n\tmode: TMode;\n}\n\nexport function integer<TMode extends IntegerConfig['mode']>(\n\tconfig?: IntegerConfig<TMode>,\n): Or<Equal<TMode, 'timestamp'>, Equal<TMode, 'timestamp_ms'>> extends true ? SQLiteTimestampBuilder\n\t: Equal<TMode, 'boolean'> extends true ? SQLiteBooleanBuilder\n\t: SQLiteIntegerBuilder;\nexport function integer<TMode extends IntegerConfig['mode']>(\n\tname: string,\n\tconfig?: IntegerConfig<TMode>,\n): Or<Equal<TMode, 'timestamp'>, Equal<TMode, 'timestamp_ms'>> extends true ? SQLiteTimestampBuilder\n\t: Equal<TMode, 'boolean'> extends true ? SQLiteBooleanBuilder\n\t: SQLiteIntegerBuilder;\nexport function integer(a?: string | IntegerConfig, b?: IntegerConfig) {\n\tconst { name, config } = getColumnNameAndConfig<IntegerConfig | undefined>(a, b);\n\tif (config?.mode === 'timestamp' || config?.mode === 'timestamp_ms') {\n\t\treturn new SQLiteTimestampBuilder(name, config.mode);\n\t}\n\tif (config?.mode === 'boolean') {\n\t\treturn new SQLiteBooleanBuilder(name, config.mode);\n\t}\n\treturn new SQLiteIntegerBuilder(name);\n}\n\nexport const int = integer;\n"],"mappings":"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","names":[]}
package/version.cjs CHANGED
@@ -26,7 +26,7 @@ __export(version_exports, {
26
26
  module.exports = __toCommonJS(version_exports);
27
27
 
28
28
  // package.json
29
- var version = "1.0.0-beta.4";
29
+ var version = "1.0.0-beta.5";
30
30
 
31
31
  // src/version.ts
32
32
  var compatibilityVersion = 12;
package/version.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.0.0-beta.4";
1
+ var version = "1.0.0-beta.5";
2
2
 
3
3
  declare const compatibilityVersion = 12;
4
4
 
package/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- var version = "1.0.0-beta.4";
1
+ var version = "1.0.0-beta.5";
2
2
 
3
3
  declare const compatibilityVersion = 12;
4
4
 
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // package.json
2
- var version = "1.0.0-beta.4";
2
+ var version = "1.0.0-beta.5";
3
3
 
4
4
  // src/version.ts
5
5
  var compatibilityVersion = 12;