@zyraxon-ai/effect-drizzle-sqlite 19.0.5
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/dist/effect-sqlite/driver.d.ts +44 -0
- package/dist/effect-sqlite/driver.d.ts.map +1 -0
- package/dist/effect-sqlite/driver.js +55 -0
- package/dist/effect-sqlite/driver.js.map +1 -0
- package/dist/effect-sqlite/index.d.ts +4 -0
- package/dist/effect-sqlite/index.d.ts.map +1 -0
- package/dist/effect-sqlite/index.js +5 -0
- package/dist/effect-sqlite/index.js.map +1 -0
- package/dist/effect-sqlite/migrator.d.ts +5 -0
- package/dist/effect-sqlite/migrator.d.ts.map +1 -0
- package/dist/effect-sqlite/migrator.js +7 -0
- package/dist/effect-sqlite/migrator.js.map +1 -0
- package/dist/effect-sqlite/session.d.ts +48 -0
- package/dist/effect-sqlite/session.d.ts.map +1 -0
- package/dist/effect-sqlite/session.js +78 -0
- package/dist/effect-sqlite/session.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/drizzle-utils.d.ts +21 -0
- package/dist/internal/drizzle-utils.d.ts.map +1 -0
- package/dist/internal/drizzle-utils.js +96 -0
- package/dist/internal/drizzle-utils.js.map +1 -0
- package/dist/sqlite-core/effect/count.d.ts +21 -0
- package/dist/sqlite-core/effect/count.d.ts.map +1 -0
- package/dist/sqlite-core/effect/count.js +31 -0
- package/dist/sqlite-core/effect/count.js.map +1 -0
- package/dist/sqlite-core/effect/db.d.ts +83 -0
- package/dist/sqlite-core/effect/db.d.ts.map +1 -0
- package/dist/sqlite-core/effect/db.js +168 -0
- package/dist/sqlite-core/effect/db.js.map +1 -0
- package/dist/sqlite-core/effect/delete.d.ts +70 -0
- package/dist/sqlite-core/effect/delete.d.ts.map +1 -0
- package/dist/sqlite-core/effect/delete.js +77 -0
- package/dist/sqlite-core/effect/delete.js.map +1 -0
- package/dist/sqlite-core/effect/index.d.ts +10 -0
- package/dist/sqlite-core/effect/index.d.ts.map +1 -0
- package/dist/sqlite-core/effect/index.js +11 -0
- package/dist/sqlite-core/effect/index.js.map +1 -0
- package/dist/sqlite-core/effect/insert.d.ts +96 -0
- package/dist/sqlite-core/effect/insert.d.ts.map +1 -0
- package/dist/sqlite-core/effect/insert.js +124 -0
- package/dist/sqlite-core/effect/insert.js.map +1 -0
- package/dist/sqlite-core/effect/query.d.ts +64 -0
- package/dist/sqlite-core/effect/query.d.ts.map +1 -0
- package/dist/sqlite-core/effect/query.js +105 -0
- package/dist/sqlite-core/effect/query.js.map +1 -0
- package/dist/sqlite-core/effect/raw.d.ts +33 -0
- package/dist/sqlite-core/effect/raw.d.ts.map +1 -0
- package/dist/sqlite-core/effect/raw.js +30 -0
- package/dist/sqlite-core/effect/raw.js.map +1 -0
- package/dist/sqlite-core/effect/select.d.ts +65 -0
- package/dist/sqlite-core/effect/select.d.ts.map +1 -0
- package/dist/sqlite-core/effect/select.js +106 -0
- package/dist/sqlite-core/effect/select.js.map +1 -0
- package/dist/sqlite-core/effect/session.d.ts +89 -0
- package/dist/sqlite-core/effect/session.d.ts.map +1 -0
- package/dist/sqlite-core/effect/session.js +280 -0
- package/dist/sqlite-core/effect/session.js.map +1 -0
- package/dist/sqlite-core/effect/update.d.ts +91 -0
- package/dist/sqlite-core/effect/update.d.ts.map +1 -0
- package/dist/sqlite-core/effect/update.js +125 -0
- package/dist/sqlite-core/effect/update.js.map +1 -0
- package/dist/up-migrations/effect-sqlite.d.ts +9 -0
- package/dist/up-migrations/effect-sqlite.d.ts.map +1 -0
- package/dist/up-migrations/effect-sqlite.js +50 -0
- package/dist/up-migrations/effect-sqlite.js.map +1 -0
- package/dist/up-migrations/sqlite.d.ts +54 -0
- package/dist/up-migrations/sqlite.d.ts.map +1 -0
- package/dist/up-migrations/sqlite.js +152 -0
- package/dist/up-migrations/sqlite.js.map +1 -0
- package/dist/up-migrations/utils.d.ts +22 -0
- package/dist/up-migrations/utils.d.ts.map +1 -0
- package/dist/up-migrations/utils.js +47 -0
- package/dist/up-migrations/utils.js.map +1 -0
- package/package.json +37 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { applyEffectWrapper } from "drizzle-orm/effect-core/query-effect";
|
|
2
|
+
import { entityKind, is } from "drizzle-orm/entity";
|
|
3
|
+
import { Param, SQL, sql } from "drizzle-orm/sql/sql";
|
|
4
|
+
import { extractUsedTable } from "drizzle-orm/sqlite-core/utils";
|
|
5
|
+
import { haveSameKeys } from "drizzle-orm/utils";
|
|
6
|
+
import { QueryBuilder } from "drizzle-orm/sqlite-core/query-builders/query-builder";
|
|
7
|
+
import { getTableColumnsRuntime, mapUpdateSet, orderSelectedFields } from "../../internal/drizzle-utils";
|
|
8
|
+
export class SQLiteEffectInsertBuilder {
|
|
9
|
+
table;
|
|
10
|
+
session;
|
|
11
|
+
dialect;
|
|
12
|
+
withList;
|
|
13
|
+
static [entityKind] = "SQLiteEffectInsertBuilder";
|
|
14
|
+
constructor(table, session, dialect, withList) {
|
|
15
|
+
this.table = table;
|
|
16
|
+
this.session = session;
|
|
17
|
+
this.dialect = dialect;
|
|
18
|
+
this.withList = withList;
|
|
19
|
+
}
|
|
20
|
+
values(values) {
|
|
21
|
+
values = Array.isArray(values) ? values : [values];
|
|
22
|
+
if (values.length === 0) {
|
|
23
|
+
throw new Error("values() must be called with at least one value");
|
|
24
|
+
}
|
|
25
|
+
const mappedValues = values.map((entry) => {
|
|
26
|
+
const result = {};
|
|
27
|
+
const cols = getTableColumnsRuntime(this.table);
|
|
28
|
+
for (const colKey of Object.keys(entry)) {
|
|
29
|
+
const colValue = entry[colKey];
|
|
30
|
+
result[colKey] = is(colValue, SQL) ? colValue : new Param(colValue, cols[colKey]);
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
});
|
|
34
|
+
return new SQLiteEffectInsertBase(this.table, mappedValues, this.session, this.dialect, this.withList);
|
|
35
|
+
}
|
|
36
|
+
select(selectQuery) {
|
|
37
|
+
const select = typeof selectQuery === "function" ? selectQuery(new QueryBuilder()) : selectQuery;
|
|
38
|
+
if (!is(select, SQL) && !haveSameKeys(getTableColumnsRuntime(this.table), select._.selectedFields)) {
|
|
39
|
+
throw new Error("Insert select error: selected fields are not the same or are in a different order compared to the table definition");
|
|
40
|
+
}
|
|
41
|
+
return new SQLiteEffectInsertBase(this.table, select, this.session, this.dialect, this.withList, true);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export class SQLiteEffectInsertBase {
|
|
45
|
+
table;
|
|
46
|
+
effectSession;
|
|
47
|
+
effectDialect;
|
|
48
|
+
static [entityKind] = "SQLiteEffectInsert";
|
|
49
|
+
/** @internal */
|
|
50
|
+
config;
|
|
51
|
+
constructor(table, values, effectSession, effectDialect, withList, select) {
|
|
52
|
+
this.table = table;
|
|
53
|
+
this.effectSession = effectSession;
|
|
54
|
+
this.effectDialect = effectDialect;
|
|
55
|
+
this.config = { table, values: values, withList, select };
|
|
56
|
+
}
|
|
57
|
+
returning(fields = getTableColumnsRuntime(this.config.table)) {
|
|
58
|
+
this.config.returning = orderSelectedFields(fields);
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
onConflictDoNothing(config = {}) {
|
|
62
|
+
if (!this.config.onConflict)
|
|
63
|
+
this.config.onConflict = [];
|
|
64
|
+
if (config.target === undefined) {
|
|
65
|
+
this.config.onConflict.push(sql ` on conflict do nothing`);
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
const targetSql = Array.isArray(config.target) ? sql `${config.target}` : sql `${[config.target]}`;
|
|
69
|
+
const whereSql = config.where ? sql ` where ${config.where}` : sql ``;
|
|
70
|
+
this.config.onConflict.push(sql ` on conflict ${targetSql} do nothing${whereSql}`);
|
|
71
|
+
return this;
|
|
72
|
+
}
|
|
73
|
+
onConflictDoUpdate(config) {
|
|
74
|
+
if (config.where && (config.targetWhere || config.setWhere)) {
|
|
75
|
+
throw new Error('You cannot use both "where" and "targetWhere"/"setWhere" at the same time - "where" is deprecated, use "targetWhere" or "setWhere" instead.');
|
|
76
|
+
}
|
|
77
|
+
if (!this.config.onConflict)
|
|
78
|
+
this.config.onConflict = [];
|
|
79
|
+
const whereSql = config.where ? sql ` where ${config.where}` : undefined;
|
|
80
|
+
const targetWhereSql = config.targetWhere ? sql ` where ${config.targetWhere}` : undefined;
|
|
81
|
+
const setWhereSql = config.setWhere ? sql ` where ${config.setWhere}` : undefined;
|
|
82
|
+
const targetSql = Array.isArray(config.target) ? sql `${config.target}` : sql `${[config.target]}`;
|
|
83
|
+
const setSql = this.effectDialect.buildUpdateSet(this.config.table, mapUpdateSet(this.config.table, config.set));
|
|
84
|
+
this.config.onConflict.push(sql ` on conflict ${targetSql}${targetWhereSql} do update set ${setSql}${whereSql}${setWhereSql}`);
|
|
85
|
+
return this;
|
|
86
|
+
}
|
|
87
|
+
/** @internal */
|
|
88
|
+
getSQL() {
|
|
89
|
+
return this.effectDialect.buildInsertQuery(this.config);
|
|
90
|
+
}
|
|
91
|
+
toSQL() {
|
|
92
|
+
return this.effectDialect.sqlToQuery(this.getSQL());
|
|
93
|
+
}
|
|
94
|
+
/** @internal */
|
|
95
|
+
_prepare(isOneTimeQuery = true) {
|
|
96
|
+
return this.effectSession[isOneTimeQuery ? "prepareOneTimeQuery" : "prepareQuery"](this.effectDialect.sqlToQuery(this.getSQL()), this.config.returning, this.config.returning ? "all" : "run", undefined, {
|
|
97
|
+
type: "insert",
|
|
98
|
+
tables: extractUsedTable(this.config.table),
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
prepare() {
|
|
102
|
+
return this._prepare(false);
|
|
103
|
+
}
|
|
104
|
+
run = (placeholderValues) => {
|
|
105
|
+
return this._prepare().run(placeholderValues);
|
|
106
|
+
};
|
|
107
|
+
all = (placeholderValues) => {
|
|
108
|
+
return this._prepare().all(placeholderValues);
|
|
109
|
+
};
|
|
110
|
+
get = (placeholderValues) => {
|
|
111
|
+
return this._prepare().get(placeholderValues);
|
|
112
|
+
};
|
|
113
|
+
values = (placeholderValues) => {
|
|
114
|
+
return this._prepare().values(placeholderValues);
|
|
115
|
+
};
|
|
116
|
+
execute = (placeholderValues) => {
|
|
117
|
+
return this._prepare().execute(placeholderValues);
|
|
118
|
+
};
|
|
119
|
+
$dynamic() {
|
|
120
|
+
return this;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
applyEffectWrapper(SQLiteEffectInsertBase);
|
|
124
|
+
//# sourceMappingURL=insert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"insert.js","sourceRoot":"","sources":["../../../src/sqlite-core/effect/insert.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type * as Effect from "effect/Effect";
|
|
2
|
+
import { type QueryEffectHKTBase } from "drizzle-orm/effect-core/query-effect";
|
|
3
|
+
import { entityKind } from "drizzle-orm/entity";
|
|
4
|
+
import { type BuildQueryResult, type DBQueryConfig, type TableRelationalConfig, type TablesRelationalConfig } from "drizzle-orm/relations";
|
|
5
|
+
import type { RunnableQuery } from "drizzle-orm/runnable-query";
|
|
6
|
+
import { type Query, type SQL, type SQLWrapper } from "drizzle-orm/sql/sql";
|
|
7
|
+
import type { KnownKeysOnly } from "drizzle-orm/utils";
|
|
8
|
+
import type { SQLiteDialect } from "drizzle-orm/sqlite-core/dialect";
|
|
9
|
+
import type { PreparedQueryConfig } from "drizzle-orm/sqlite-core/session";
|
|
10
|
+
import type { SQLiteTable } from "drizzle-orm/sqlite-core/table";
|
|
11
|
+
import type { SQLiteEffectPreparedQuery, SQLiteEffectSession } from "./session";
|
|
12
|
+
export declare class SQLiteEffectRelationalQueryBuilder<TSchema extends TablesRelationalConfig, TFields extends TableRelationalConfig, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> {
|
|
13
|
+
private schema;
|
|
14
|
+
private table;
|
|
15
|
+
private tableConfig;
|
|
16
|
+
private dialect;
|
|
17
|
+
private session;
|
|
18
|
+
private rowMode?;
|
|
19
|
+
private forbidJsonb?;
|
|
20
|
+
static readonly [entityKind]: string;
|
|
21
|
+
constructor(schema: TSchema, table: SQLiteTable, tableConfig: TableRelationalConfig, dialect: SQLiteDialect, session: SQLiteEffectSession<TEffectHKT, any, any>, rowMode?: boolean, forbidJsonb?: boolean);
|
|
22
|
+
findMany<TConfig extends DBQueryConfig<"many", TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<"many", TSchema, TFields>>): SQLiteEffectRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig>[], TEffectHKT>;
|
|
23
|
+
findFirst<TConfig extends DBQueryConfig<"one", TSchema, TFields>>(config?: KnownKeysOnly<TConfig, DBQueryConfig<"one", TSchema, TFields>>): SQLiteEffectRelationalQuery<BuildQueryResult<TSchema, TFields, TConfig> | undefined, TEffectHKT>;
|
|
24
|
+
}
|
|
25
|
+
export interface SQLiteEffectRelationalQuery<TResult, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends Effect.Effect<TResult, TEffectHKT["error"], TEffectHKT["context"]>, RunnableQuery<TResult, "sqlite">, SQLWrapper {
|
|
26
|
+
}
|
|
27
|
+
export declare class SQLiteEffectRelationalQuery<TResult, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> implements RunnableQuery<TResult, "sqlite">, SQLWrapper {
|
|
28
|
+
private schema;
|
|
29
|
+
private tableConfig;
|
|
30
|
+
private dialect;
|
|
31
|
+
private session;
|
|
32
|
+
private config;
|
|
33
|
+
private rowMode?;
|
|
34
|
+
private forbidJsonb?;
|
|
35
|
+
static readonly [entityKind]: string;
|
|
36
|
+
readonly _: {
|
|
37
|
+
readonly dialect: "sqlite";
|
|
38
|
+
readonly type: "async";
|
|
39
|
+
readonly result: TResult;
|
|
40
|
+
};
|
|
41
|
+
/** @internal */
|
|
42
|
+
mode: "many" | "first";
|
|
43
|
+
/** @internal */
|
|
44
|
+
table: SQLiteTable;
|
|
45
|
+
constructor(schema: TablesRelationalConfig, table: SQLiteTable, tableConfig: TableRelationalConfig, dialect: SQLiteDialect, session: SQLiteEffectSession<TEffectHKT, any, any>, config: DBQueryConfig<"many" | "one"> | true, mode: "many" | "first", rowMode?: boolean, forbidJsonb?: boolean);
|
|
46
|
+
/** @internal */
|
|
47
|
+
getSQL(): SQL;
|
|
48
|
+
/** @internal */
|
|
49
|
+
_prepare(isOneTimeQuery?: boolean): SQLiteEffectPreparedQuery<PreparedQueryConfig & {
|
|
50
|
+
all: TResult;
|
|
51
|
+
get: TResult;
|
|
52
|
+
execute: TResult;
|
|
53
|
+
}, TEffectHKT, true>;
|
|
54
|
+
prepare(): SQLiteEffectPreparedQuery<PreparedQueryConfig & {
|
|
55
|
+
all: TResult;
|
|
56
|
+
get: TResult;
|
|
57
|
+
execute: TResult;
|
|
58
|
+
}, TEffectHKT, true>;
|
|
59
|
+
private _getQuery;
|
|
60
|
+
private _toSQL;
|
|
61
|
+
toSQL(): Query;
|
|
62
|
+
execute(placeholderValues?: Record<string, unknown>): import("drizzle-orm/effect-core").QueryEffectKind<TEffectHKT, TResult>;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/sqlite-core/effect/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { applyEffectWrapper } from "drizzle-orm/effect-core/query-effect";
|
|
2
|
+
import { entityKind } from "drizzle-orm/entity";
|
|
3
|
+
import { makeDefaultRqbMapper, } from "drizzle-orm/relations";
|
|
4
|
+
import { sql } from "drizzle-orm/sql/sql";
|
|
5
|
+
export class SQLiteEffectRelationalQueryBuilder {
|
|
6
|
+
schema;
|
|
7
|
+
table;
|
|
8
|
+
tableConfig;
|
|
9
|
+
dialect;
|
|
10
|
+
session;
|
|
11
|
+
rowMode;
|
|
12
|
+
forbidJsonb;
|
|
13
|
+
static [entityKind] = "SQLiteEffectRelationalQueryBuilderV2";
|
|
14
|
+
constructor(schema, table, tableConfig, dialect, session, rowMode, forbidJsonb) {
|
|
15
|
+
this.schema = schema;
|
|
16
|
+
this.table = table;
|
|
17
|
+
this.tableConfig = tableConfig;
|
|
18
|
+
this.dialect = dialect;
|
|
19
|
+
this.session = session;
|
|
20
|
+
this.rowMode = rowMode;
|
|
21
|
+
this.forbidJsonb = forbidJsonb;
|
|
22
|
+
}
|
|
23
|
+
findMany(config) {
|
|
24
|
+
return new SQLiteEffectRelationalQuery(this.schema, this.table, this.tableConfig, this.dialect, this.session, config ?? true, "many", this.rowMode, this.forbidJsonb);
|
|
25
|
+
}
|
|
26
|
+
findFirst(config) {
|
|
27
|
+
return new SQLiteEffectRelationalQuery(this.schema, this.table, this.tableConfig, this.dialect, this.session, config ?? true, "first", this.rowMode, this.forbidJsonb);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class SQLiteEffectRelationalQuery {
|
|
31
|
+
schema;
|
|
32
|
+
tableConfig;
|
|
33
|
+
dialect;
|
|
34
|
+
session;
|
|
35
|
+
config;
|
|
36
|
+
rowMode;
|
|
37
|
+
forbidJsonb;
|
|
38
|
+
static [entityKind] = "SQLiteEffectRelationalQueryV2";
|
|
39
|
+
/** @internal */
|
|
40
|
+
mode;
|
|
41
|
+
/** @internal */
|
|
42
|
+
table;
|
|
43
|
+
constructor(schema, table, tableConfig, dialect, session, config, mode, rowMode, forbidJsonb) {
|
|
44
|
+
this.schema = schema;
|
|
45
|
+
this.tableConfig = tableConfig;
|
|
46
|
+
this.dialect = dialect;
|
|
47
|
+
this.session = session;
|
|
48
|
+
this.config = config;
|
|
49
|
+
this.rowMode = rowMode;
|
|
50
|
+
this.forbidJsonb = forbidJsonb;
|
|
51
|
+
this.mode = mode;
|
|
52
|
+
this.table = table;
|
|
53
|
+
}
|
|
54
|
+
/** @internal */
|
|
55
|
+
getSQL() {
|
|
56
|
+
return this._getQuery().sql;
|
|
57
|
+
}
|
|
58
|
+
/** @internal */
|
|
59
|
+
_prepare(isOneTimeQuery = true) {
|
|
60
|
+
const { query, builtQuery } = this._toSQL();
|
|
61
|
+
const mapperConfig = {
|
|
62
|
+
isFirst: this.mode === "first",
|
|
63
|
+
parseJson: !this.rowMode,
|
|
64
|
+
parseJsonIfString: false,
|
|
65
|
+
rootJsonMappers: true,
|
|
66
|
+
selection: query.selection,
|
|
67
|
+
};
|
|
68
|
+
return this.session[isOneTimeQuery ? "prepareOneTimeRelationalQuery" : "prepareRelationalQuery"](builtQuery, undefined, this.mode === "first" ? "get" : "all", makeDefaultRqbMapper(mapperConfig), mapperConfig);
|
|
69
|
+
}
|
|
70
|
+
prepare() {
|
|
71
|
+
return this._prepare(false);
|
|
72
|
+
}
|
|
73
|
+
_getQuery() {
|
|
74
|
+
const jsonb = this.forbidJsonb ? sql `json` : sql `jsonb`;
|
|
75
|
+
const query = this.dialect.buildRelationalQuery({
|
|
76
|
+
schema: this.schema,
|
|
77
|
+
table: this.table,
|
|
78
|
+
tableConfig: this.tableConfig,
|
|
79
|
+
queryConfig: this.config,
|
|
80
|
+
mode: this.mode,
|
|
81
|
+
isNested: this.rowMode,
|
|
82
|
+
jsonb,
|
|
83
|
+
});
|
|
84
|
+
if (this.rowMode) {
|
|
85
|
+
const jsonColumns = sql.join(query.selection.map((s) => {
|
|
86
|
+
return sql `${sql.raw(this.dialect.escapeString(s.key))}, ${s.selection ? sql `${jsonb}(${sql.identifier(s.key)})` : sql.identifier(s.key)}`;
|
|
87
|
+
}), sql `, `);
|
|
88
|
+
query.sql = sql `select json_object(${jsonColumns}) as ${sql.identifier("r")} from (${query.sql}) as ${sql.identifier("t")}`;
|
|
89
|
+
}
|
|
90
|
+
return query;
|
|
91
|
+
}
|
|
92
|
+
_toSQL() {
|
|
93
|
+
const query = this._getQuery();
|
|
94
|
+
const builtQuery = this.dialect.sqlToQuery(query.sql);
|
|
95
|
+
return { query, builtQuery };
|
|
96
|
+
}
|
|
97
|
+
toSQL() {
|
|
98
|
+
return this._toSQL().builtQuery;
|
|
99
|
+
}
|
|
100
|
+
execute(placeholderValues) {
|
|
101
|
+
return this.mode === "first" ? this._prepare().get(placeholderValues) : this._prepare().all(placeholderValues);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
applyEffectWrapper(SQLiteEffectRelationalQuery);
|
|
105
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/sqlite-core/effect/query.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type * as Effect from "effect/Effect";
|
|
2
|
+
import { type QueryEffectHKTBase } from "drizzle-orm/effect-core/query-effect";
|
|
3
|
+
import { entityKind } from "drizzle-orm/entity";
|
|
4
|
+
import type { RunnableQuery } from "drizzle-orm/runnable-query";
|
|
5
|
+
import type { PreparedQuery } from "drizzle-orm/session";
|
|
6
|
+
import type { Query, SQL, SQLWrapper } from "drizzle-orm/sql/sql";
|
|
7
|
+
import type { SQLiteAsyncDialect } from "drizzle-orm/sqlite-core/dialect";
|
|
8
|
+
type SQLiteEffectRawAction = "all" | "get" | "values" | "run";
|
|
9
|
+
export interface SQLiteEffectRaw<TResult, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends Effect.Effect<TResult, TEffectHKT["error"], TEffectHKT["context"]>, RunnableQuery<TResult, "sqlite">, SQLWrapper {
|
|
10
|
+
}
|
|
11
|
+
export declare class SQLiteEffectRaw<TResult, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> implements RunnableQuery<TResult, "sqlite">, SQLWrapper, PreparedQuery {
|
|
12
|
+
execute: () => Effect.Effect<TResult, TEffectHKT["error"], TEffectHKT["context"]>;
|
|
13
|
+
/** @internal */
|
|
14
|
+
getSQL: () => SQL;
|
|
15
|
+
private action;
|
|
16
|
+
private dialect;
|
|
17
|
+
private mapBatchResult;
|
|
18
|
+
static readonly [entityKind]: string;
|
|
19
|
+
readonly _: {
|
|
20
|
+
readonly dialect: "sqlite";
|
|
21
|
+
readonly result: TResult;
|
|
22
|
+
};
|
|
23
|
+
constructor(execute: () => Effect.Effect<TResult, TEffectHKT["error"], TEffectHKT["context"]>,
|
|
24
|
+
/** @internal */
|
|
25
|
+
getSQL: () => SQL, action: SQLiteEffectRawAction, dialect: SQLiteAsyncDialect, mapBatchResult: (result: unknown) => unknown);
|
|
26
|
+
getQuery(): Query & {
|
|
27
|
+
method: SQLiteEffectRawAction;
|
|
28
|
+
};
|
|
29
|
+
mapResult(result: unknown, isFromBatch?: boolean): unknown;
|
|
30
|
+
_prepare(): PreparedQuery;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=raw.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../../../src/sqlite-core/effect/raw.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,EAAsB,KAAK,kBAAkB,EAAE,MAAM,sCAAsC,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAEzE,KAAK,qBAAqB,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,CAAA;AAE7D,MAAM,WAAW,eAAe,CAAC,OAAO,EAAE,UAAU,SAAS,kBAAkB,GAAG,kBAAkB,CAClG,SAAQ,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,EACxE,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAChC,UAAU;CAAG;AAEjB,qBAAa,eAAe,CAAC,OAAO,EAAE,UAAU,SAAS,kBAAkB,GAAG,kBAAkB,CAC9F,YAAW,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,aAAa;IAU7D,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACxF,gBAAgB;IACT,MAAM,EAAE,MAAM,GAAG;IACxB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,cAAc;IAbxB,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,CAAoB;IAExD,SAAiB,CAAC,EAAE;QAClB,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAA;QAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;KACzB,CAAA;gBAGQ,OAAO,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACxF,gBAAgB;IACT,MAAM,EAAE,MAAM,GAAG,EAChB,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,kBAAkB,EAC3B,cAAc,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO;IAGtD,QAAQ,IAAI,KAAK,GAAG;QAAE,MAAM,EAAE,qBAAqB,CAAA;KAAE;IAIrD,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO;IAIhD,QAAQ,IAAI,aAAa;CAG1B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { applyEffectWrapper } from "drizzle-orm/effect-core/query-effect";
|
|
2
|
+
import { entityKind } from "drizzle-orm/entity";
|
|
3
|
+
export class SQLiteEffectRaw {
|
|
4
|
+
execute;
|
|
5
|
+
getSQL;
|
|
6
|
+
action;
|
|
7
|
+
dialect;
|
|
8
|
+
mapBatchResult;
|
|
9
|
+
static [entityKind] = "SQLiteEffectRaw";
|
|
10
|
+
constructor(execute,
|
|
11
|
+
/** @internal */
|
|
12
|
+
getSQL, action, dialect, mapBatchResult) {
|
|
13
|
+
this.execute = execute;
|
|
14
|
+
this.getSQL = getSQL;
|
|
15
|
+
this.action = action;
|
|
16
|
+
this.dialect = dialect;
|
|
17
|
+
this.mapBatchResult = mapBatchResult;
|
|
18
|
+
}
|
|
19
|
+
getQuery() {
|
|
20
|
+
return { ...this.dialect.sqlToQuery(this.getSQL()), method: this.action };
|
|
21
|
+
}
|
|
22
|
+
mapResult(result, isFromBatch) {
|
|
23
|
+
return isFromBatch ? this.mapBatchResult(result) : result;
|
|
24
|
+
}
|
|
25
|
+
_prepare() {
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
applyEffectWrapper(SQLiteEffectRaw);
|
|
30
|
+
//# sourceMappingURL=raw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw.js","sourceRoot":"","sources":["../../../src/sqlite-core/effect/raw.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,sCAAsC,CAAA;AAClG,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAa/C,MAAM,OAAO,eAAe;IAWjB;IAEA;IACC;IACA;IACA;IAbV,MAAM,CAAU,CAAC,UAAU,CAAC,GAAW,iBAAiB,CAAA;IAOxD,YACS,OAAiF;IACxF,gBAAgB;IACT,MAAiB,EAChB,MAA6B,EAC7B,OAA2B,EAC3B,cAA4C;QAL7C,YAAO,GAAP,OAAO,CAA0E;QAEjF,WAAM,GAAN,MAAM,CAAW;QAChB,WAAM,GAAN,MAAM,CAAuB;QAC7B,YAAO,GAAP,OAAO,CAAoB;QAC3B,mBAAc,GAAd,cAAc,CAA8B;IACnD,CAAC;IAEJ,QAAQ;QACN,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAA;IAC3E,CAAC;IAED,SAAS,CAAC,MAAe,EAAE,WAAqB;QAC9C,OAAO,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;IAC3D,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAA;IACb,CAAC;;AAGH,kBAAkB,CAAC,eAAe,CAAC,CAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type * as Effect from "effect/Effect";
|
|
2
|
+
import type { CacheConfig } from "drizzle-orm/cache/core/types";
|
|
3
|
+
import { type QueryEffectHKTBase } from "drizzle-orm/effect-core/query-effect";
|
|
4
|
+
import { entityKind } from "drizzle-orm/entity";
|
|
5
|
+
import type { BuildSubquerySelection, GetSelectTableName, GetSelectTableSelection, JoinNullability, SelectMode, SelectResult } from "drizzle-orm/query-builders/select.types";
|
|
6
|
+
import { SQL } from "drizzle-orm/sql/sql";
|
|
7
|
+
import type { ColumnsSelection, SQLWrapper } from "drizzle-orm/sql/sql";
|
|
8
|
+
import type { SQLiteDialect } from "drizzle-orm/sqlite-core/dialect";
|
|
9
|
+
import { SQLiteSelectQueryBuilderBase } from "drizzle-orm/sqlite-core/query-builders/select";
|
|
10
|
+
import type { CreateSQLiteSelectFromBuilderMode, SelectedFields, SQLiteSelectHKTBase } from "drizzle-orm/sqlite-core/query-builders/select.types";
|
|
11
|
+
import type { SQLiteTable } from "drizzle-orm/sqlite-core/table";
|
|
12
|
+
import { SQLiteViewBase } from "drizzle-orm/sqlite-core/view-base";
|
|
13
|
+
import { Subquery } from "drizzle-orm/subquery";
|
|
14
|
+
import { type Assume } from "drizzle-orm/utils";
|
|
15
|
+
import type { SQLiteEffectPreparedQuery, SQLiteEffectSession } from "./session";
|
|
16
|
+
export type SQLiteEffectSelectPrepare<T extends AnySQLiteEffectSelect, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> = SQLiteEffectPreparedQuery<{
|
|
17
|
+
type: "async";
|
|
18
|
+
run: T["_"]["runResult"];
|
|
19
|
+
all: T["_"]["result"];
|
|
20
|
+
get: T["_"]["result"][number] | undefined;
|
|
21
|
+
values: any[][];
|
|
22
|
+
execute: T["_"]["result"];
|
|
23
|
+
}, TEffectHKT>;
|
|
24
|
+
export declare class SQLiteEffectSelectBuilder<TSelection extends SelectedFields | undefined, TRunResult, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase, TBuilderMode extends "db" | "qb" = "db"> {
|
|
25
|
+
static readonly [entityKind]: string;
|
|
26
|
+
private fields;
|
|
27
|
+
private session;
|
|
28
|
+
private dialect;
|
|
29
|
+
private withList;
|
|
30
|
+
private distinct;
|
|
31
|
+
constructor(config: {
|
|
32
|
+
fields: TSelection;
|
|
33
|
+
session: SQLiteEffectSession<TEffectHKT, TRunResult, any> | undefined;
|
|
34
|
+
dialect: SQLiteDialect;
|
|
35
|
+
withList?: Subquery[];
|
|
36
|
+
distinct?: boolean;
|
|
37
|
+
});
|
|
38
|
+
from<TFrom extends SQLiteTable | Subquery | SQLiteViewBase | SQL>(source: TFrom): TBuilderMode extends "db" ? SQLiteEffectSelectBase<GetSelectTableName<TFrom>, TRunResult, TSelection extends undefined ? GetSelectTableSelection<TFrom> : TSelection, TSelection extends undefined ? "single" : "partial", GetSelectTableName<TFrom> extends string ? Record<GetSelectTableName<TFrom>, "not-null"> : {}, false, never, SelectResult<TSelection extends undefined ? GetSelectTableSelection<TFrom> : TSelection, TSelection extends undefined ? "single" : "partial", GetSelectTableName<TFrom> extends string ? Record<GetSelectTableName<TFrom>, "not-null"> : {}>[], BuildSubquerySelection<TSelection extends undefined ? GetSelectTableSelection<TFrom> : TSelection, GetSelectTableName<TFrom> extends string ? Record<GetSelectTableName<TFrom>, "not-null"> : {}>, TEffectHKT> : CreateSQLiteSelectFromBuilderMode<TBuilderMode, GetSelectTableName<TFrom>, "async", TRunResult, TSelection extends undefined ? GetSelectTableSelection<TFrom> : TSelection, TSelection extends undefined ? "single" : "partial">;
|
|
39
|
+
}
|
|
40
|
+
export interface SQLiteEffectSelectHKT<TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends SQLiteSelectHKTBase {
|
|
41
|
+
_type: SQLiteEffectSelectBase<this["tableName"], this["runResult"], Assume<this["selection"], ColumnsSelection>, this["selectMode"], Assume<this["nullabilityMap"], Record<string, JoinNullability>>, this["dynamic"], this["excludedMethods"], Assume<this["result"], any[]>, Assume<this["selectedFields"], ColumnsSelection>, TEffectHKT>;
|
|
42
|
+
}
|
|
43
|
+
export interface SQLiteEffectSelectBase<TTableName extends string | undefined, TRunResult, TSelection extends ColumnsSelection, TSelectMode extends SelectMode = "single", TNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, "not-null"> : {}, TDynamic extends boolean = false, TExcludedMethods extends string = never, TResult extends any[] = SelectResult<TSelection, TSelectMode, TNullabilityMap>[], TSelectedFields extends ColumnsSelection = BuildSubquerySelection<TSelection, TNullabilityMap>, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends SQLiteSelectQueryBuilderBase<SQLiteEffectSelectHKT<TEffectHKT>, TTableName, "async", TRunResult, TSelection, TSelectMode, TNullabilityMap, TDynamic, TExcludedMethods, TResult, TSelectedFields>, Effect.Effect<TResult, TEffectHKT["error"], TEffectHKT["context"]> {
|
|
44
|
+
}
|
|
45
|
+
export declare class SQLiteEffectSelectBase<TTableName extends string | undefined, TRunResult, TSelection extends ColumnsSelection, TSelectMode extends SelectMode = "single", TNullabilityMap extends Record<string, JoinNullability> = TTableName extends string ? Record<TTableName, "not-null"> : {}, TDynamic extends boolean = false, TExcludedMethods extends string = never, TResult extends any[] = SelectResult<TSelection, TSelectMode, TNullabilityMap>[], TSelectedFields extends ColumnsSelection = BuildSubquerySelection<TSelection, TNullabilityMap>, TEffectHKT extends QueryEffectHKTBase = QueryEffectHKTBase> extends SQLiteSelectQueryBuilderBase<SQLiteEffectSelectHKT<TEffectHKT>, TTableName, "async", TRunResult, TSelection, TSelectMode, TNullabilityMap, TDynamic, TExcludedMethods, TResult, TSelectedFields> implements SQLWrapper {
|
|
46
|
+
static readonly [entityKind]: string;
|
|
47
|
+
private get effectConfig();
|
|
48
|
+
/** @internal */
|
|
49
|
+
getSQL(): SQL;
|
|
50
|
+
/** @internal */
|
|
51
|
+
_prepare(isOneTimeQuery?: boolean): SQLiteEffectSelectPrepare<this, TEffectHKT>;
|
|
52
|
+
$withCache(config?: {
|
|
53
|
+
config?: CacheConfig;
|
|
54
|
+
tag?: string;
|
|
55
|
+
autoInvalidate?: boolean;
|
|
56
|
+
} | false): this;
|
|
57
|
+
prepare(): SQLiteEffectSelectPrepare<this, TEffectHKT>;
|
|
58
|
+
run: ReturnType<this["prepare"]>["run"];
|
|
59
|
+
all: ReturnType<this["prepare"]>["all"];
|
|
60
|
+
get: ReturnType<this["prepare"]>["get"];
|
|
61
|
+
values: ReturnType<this["prepare"]>["values"];
|
|
62
|
+
execute: ReturnType<this["prepare"]>["execute"];
|
|
63
|
+
}
|
|
64
|
+
export type AnySQLiteEffectSelect = SQLiteEffectSelectBase<any, any, any, any, any, any, any, any, any, any>;
|
|
65
|
+
//# sourceMappingURL=select.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../../../src/sqlite-core/effect/select.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { applyEffectWrapper } from "drizzle-orm/effect-core/query-effect";
|
|
2
|
+
import { entityKind, is } from "drizzle-orm/entity";
|
|
3
|
+
import { SQL } from "drizzle-orm/sql/sql";
|
|
4
|
+
import { SQLiteSelectQueryBuilderBase } from "drizzle-orm/sqlite-core/query-builders/select";
|
|
5
|
+
import { SQLiteViewBase } from "drizzle-orm/sqlite-core/view-base";
|
|
6
|
+
import { Subquery } from "drizzle-orm/subquery";
|
|
7
|
+
import { getTableColumns } from "drizzle-orm/utils";
|
|
8
|
+
import { getViewSelectedFieldsRuntime, orderSelectedFields } from "../../internal/drizzle-utils";
|
|
9
|
+
export class SQLiteEffectSelectBuilder {
|
|
10
|
+
static [entityKind] = "SQLiteEffectSelectBuilder";
|
|
11
|
+
fields;
|
|
12
|
+
session;
|
|
13
|
+
dialect;
|
|
14
|
+
withList;
|
|
15
|
+
distinct;
|
|
16
|
+
constructor(config) {
|
|
17
|
+
this.fields = config.fields;
|
|
18
|
+
this.session = config.session;
|
|
19
|
+
this.dialect = config.dialect;
|
|
20
|
+
this.withList = config.withList;
|
|
21
|
+
this.distinct = config.distinct;
|
|
22
|
+
}
|
|
23
|
+
from(source) {
|
|
24
|
+
const isPartialSelect = !!this.fields;
|
|
25
|
+
let fields;
|
|
26
|
+
if (this.fields) {
|
|
27
|
+
fields = this.fields;
|
|
28
|
+
}
|
|
29
|
+
else if (is(source, Subquery)) {
|
|
30
|
+
fields = Object.fromEntries(Object.keys(source._.selectedFields).map((key) => [
|
|
31
|
+
key,
|
|
32
|
+
source[key],
|
|
33
|
+
]));
|
|
34
|
+
}
|
|
35
|
+
else if (is(source, SQLiteViewBase)) {
|
|
36
|
+
fields = getViewSelectedFieldsRuntime(source).selectedFields;
|
|
37
|
+
}
|
|
38
|
+
else if (is(source, SQL)) {
|
|
39
|
+
fields = {};
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
fields = getTableColumns(source);
|
|
43
|
+
}
|
|
44
|
+
return new SQLiteEffectSelectBase({
|
|
45
|
+
table: source,
|
|
46
|
+
fields,
|
|
47
|
+
isPartialSelect,
|
|
48
|
+
session: this.session,
|
|
49
|
+
dialect: this.dialect,
|
|
50
|
+
withList: this.withList,
|
|
51
|
+
distinct: this.distinct,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export class SQLiteEffectSelectBase extends SQLiteSelectQueryBuilderBase {
|
|
56
|
+
static [entityKind] = "SQLiteEffectSelect";
|
|
57
|
+
get effectConfig() {
|
|
58
|
+
return this.config;
|
|
59
|
+
}
|
|
60
|
+
/** @internal */
|
|
61
|
+
getSQL() {
|
|
62
|
+
return this.dialect.buildSelectQuery(this.effectConfig);
|
|
63
|
+
}
|
|
64
|
+
/** @internal */
|
|
65
|
+
_prepare(isOneTimeQuery = true) {
|
|
66
|
+
if (!this.session) {
|
|
67
|
+
throw new Error("Cannot execute a query on a query builder. Please use a database instance instead.");
|
|
68
|
+
}
|
|
69
|
+
const session = this.session;
|
|
70
|
+
const query = session[isOneTimeQuery ? "prepareOneTimeQuery" : "prepareQuery"](this.dialect.sqlToQuery(this.getSQL()), orderSelectedFields(this.effectConfig.fields), "all", undefined, {
|
|
71
|
+
type: "select",
|
|
72
|
+
tables: [...this.usedTables],
|
|
73
|
+
}, this.cacheConfig);
|
|
74
|
+
query.joinsNotNullableMap = this.joinsNotNullableMap;
|
|
75
|
+
return query;
|
|
76
|
+
}
|
|
77
|
+
$withCache(config) {
|
|
78
|
+
this.cacheConfig =
|
|
79
|
+
config === undefined
|
|
80
|
+
? { config: {}, enabled: true, autoInvalidate: true }
|
|
81
|
+
: config === false
|
|
82
|
+
? { enabled: false }
|
|
83
|
+
: { enabled: true, autoInvalidate: true, ...config };
|
|
84
|
+
return this;
|
|
85
|
+
}
|
|
86
|
+
prepare() {
|
|
87
|
+
return this._prepare(false);
|
|
88
|
+
}
|
|
89
|
+
run = (placeholderValues) => {
|
|
90
|
+
return this._prepare().run(placeholderValues);
|
|
91
|
+
};
|
|
92
|
+
all = (placeholderValues) => {
|
|
93
|
+
return this._prepare().all(placeholderValues);
|
|
94
|
+
};
|
|
95
|
+
get = (placeholderValues) => {
|
|
96
|
+
return this._prepare().get(placeholderValues);
|
|
97
|
+
};
|
|
98
|
+
values = (placeholderValues) => {
|
|
99
|
+
return this._prepare().values(placeholderValues);
|
|
100
|
+
};
|
|
101
|
+
execute = (placeholderValues) => {
|
|
102
|
+
return this._prepare().execute(placeholderValues);
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
applyEffectWrapper(SQLiteEffectSelectBase);
|
|
106
|
+
//# sourceMappingURL=select.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../../src/sqlite-core/effect/select.ts"],"names":[],"mappings":"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"}
|