@flumens/models 0.13.0 → 0.14.0

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.
@@ -1,5 +1,5 @@
1
1
  import { BuildColumns, ColumnBuilderBase, ColumnBuilderBaseConfig, ColumnDataType, InferModelFromColumns, SQL } from 'drizzle-orm';
2
- import { SQLiteSelect, SQLiteDelete, SQLiteTable } from 'drizzle-orm/sqlite-core';
2
+ import { SQLiteSelect, SQLiteDelete, SQLiteTable, SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core';
3
3
  import { Deferred } from '@flumens/utils';
4
4
  import SQLiteDatabase from './SQLiteDatabase';
5
5
  import Store from './Store';
@@ -12,12 +12,6 @@ export declare const jsonb: <TData>(name: string) => import("drizzle-orm/sqlite-
12
12
  driverParam: string;
13
13
  enumValues: undefined;
14
14
  }>;
15
- type SQLiteStoreOptions = {
16
- db: SQLiteDatabase;
17
- name: string;
18
- debug?: boolean;
19
- columns?: any;
20
- };
21
15
  export declare const defaultCols: () => {
22
16
  id: import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"", [string, ...string[]], undefined>;
23
17
  cid: import("drizzle-orm").HasDefault<import("drizzle-orm").NotNull<import("drizzle-orm").IsPrimaryKey<import("drizzle-orm").NotNull<import("drizzle-orm/sqlite-core").SQLiteTextBuilderInitial<"", [string, ...string[]], undefined>>>>>;
@@ -36,14 +30,25 @@ export declare const defaultCols: () => {
36
30
  type SelectQueryFn = (q: SQLiteSelect) => SQLiteSelect;
37
31
  type DeleteQueryFn = (q: SQLiteDelete) => SQLiteDelete;
38
32
  export type ColumnMap<T extends Record<string, ColumnBuilderBase<ColumnBuilderBaseConfig<ColumnDataType, string>, object>>> = InferModelFromColumns<BuildColumns<'', T, 'sqlite'>>;
39
- type DefaultCols = ColumnMap<ReturnType<typeof defaultCols>>;
40
- export default class SQLiteStore<T = DefaultCols> implements Store {
41
- private readonly name;
42
- private readonly db;
43
- private readonly debug;
44
- readonly table: SQLiteTable;
33
+ export type InferSelectModel<T extends SQLiteTable<any>> = T['$inferSelect'];
34
+ type SQLiteStoreOptions<TColumns = ReturnType<typeof defaultCols>> = {
35
+ db: SQLiteDatabase;
36
+ name: string;
37
+ debug?: boolean;
38
+ columns?: TColumns;
39
+ };
40
+ export default class SQLiteStore<TColumns extends Record<string, ColumnBuilderBase<ColumnBuilderBaseConfig<ColumnDataType, string>, object>> = ReturnType<typeof defaultCols>, T = ColumnMap<TColumns>> implements Store {
41
+ readonly name: string;
42
+ readonly db: SQLiteDatabase;
43
+ readonly table: SQLiteTableWithColumns<{
44
+ name: string;
45
+ schema: undefined;
46
+ columns: BuildColumns<string, TColumns, 'sqlite'>;
47
+ dialect: 'sqlite';
48
+ }>;
45
49
  readonly ready: Deferred<boolean>;
46
- constructor({ db, name, debug, columns, }: SQLiteStoreOptions);
50
+ private readonly debug;
51
+ constructor({ db, name, debug, columns, }: SQLiteStoreOptions<TColumns>);
47
52
  private init;
48
53
  save(values: T | T[]): Promise<void>;
49
54
  find(q: string | Partial<T> | SelectQueryFn): Promise<T>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flumens/models",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "scripts": {