rado 1.0.0-preview.0 → 1.0.0-preview.1
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 +2 -2
- package/dist/src/core/Builder.d.ts +0 -36
- package/dist/src/core/Column.d.ts +0 -38
- package/dist/src/core/Constraint.d.ts +0 -39
- package/dist/src/core/Database.d.ts +0 -43
- package/dist/src/core/Dialect.d.ts +0 -6
- package/dist/src/core/Driver.d.ts +0 -28
- package/dist/src/core/Emitter.d.ts +0 -35
- package/dist/src/core/Index.d.ts +0 -28
- package/dist/src/core/Internal.d.ts +0 -67
- package/dist/src/core/MetaData.d.ts +0 -27
- package/dist/src/core/Param.d.ts +0 -9
- package/dist/src/core/Query.d.ts +0 -40
- package/dist/src/core/Resolver.d.ts +0 -23
- package/dist/src/core/Schema.d.ts +0 -4
- package/dist/src/core/Selection.d.ts +0 -27
- package/dist/src/core/Sql.d.ts +0 -49
- package/dist/src/core/Table.d.ts +0 -56
- package/dist/src/core/Types.d.ts +0 -3
- package/dist/src/core/Virtual.d.ts +0 -2
- package/dist/src/core/expr/Aggregate.d.ts +0 -10
- package/dist/src/core/expr/Conditions.d.ts +0 -40
- package/dist/src/core/expr/Field.d.ts +0 -14
- package/dist/src/core/expr/Functions.d.ts +0 -6
- package/dist/src/core/expr/Input.d.ts +0 -3
- package/dist/src/core/query/CreateTable.d.ts +0 -13
- package/dist/src/core/query/Delete.d.ts +0 -19
- package/dist/src/core/query/DropTable.d.ts +0 -13
- package/dist/src/core/query/Insert.d.ts +0 -43
- package/dist/src/core/query/Select.d.ts +0 -93
- package/dist/src/core/query/Union.d.ts +0 -27
- package/dist/src/core/query/Update.d.ts +0 -23
- package/dist/src/driver/better-sqlite3.d.ts +0 -3
- package/dist/src/driver/bun-sqlite.d.ts +0 -4
- package/dist/src/driver/pg.d.ts +0 -25
- package/dist/src/driver/pglite.d.ts +0 -24
- package/dist/src/driver/sql.js.d.ts +0 -3
- package/dist/src/index.d.ts +0 -16
- package/dist/src/migrate/Scan.d.ts +0 -1
- package/dist/src/postgres/PostgresColumns.d.ts +0 -10
- package/dist/src/postgres/PostgresDialect.d.ts +0 -2
- package/dist/src/postgres/PostgresSchema.d.ts +0 -1
- package/dist/src/postgres/PostgresTable.d.ts +0 -1
- package/dist/src/postgres.d.ts +0 -2
- package/dist/src/sqlite/SqliteColumns.d.ts +0 -9
- package/dist/src/sqlite/SqliteDialect.d.ts +0 -2
- package/dist/src/sqlite/SqliteFunctions.d.ts +0 -8
- package/dist/src/sqlite/SqliteTable.d.ts +0 -1
- package/dist/src/sqlite.d.ts +0 -3
- package/dist/src/universal/UniversalColumns.d.ts +0 -6
- package/dist/src/universal/UniversalTransaction.d.ts +0 -3
- package/dist/src/universal.d.ts +0 -2
- package/dist/test/Suite.d.ts +0 -11
- package/dist/test/TestDriver.d.ts +0 -2
- package/dist/test/TestUtils.d.ts +0 -4
- package/dist/test/core/Expr.test.d.ts +0 -1
- package/dist/test/core/Selection.test.d.ts +0 -1
- package/dist/test/core/Sql.test.d.ts +0 -1
- package/dist/test/core/SqliteFunctions.test.d.ts +0 -1
- package/dist/test/core/Table.test.d.ts +0 -1
- package/dist/test/driver/better-sqlite3.test.d.ts +0 -1
- package/dist/test/driver/bun-sqlite.test.d.ts +0 -1
- package/dist/test/driver/pg.test.d.ts +0 -1
- package/dist/test/driver/pglite.test.d.ts +0 -1
- package/dist/test/driver/sql.js.test.d.ts +0 -1
- package/dist/test/query/CreateTable.test.d.ts +0 -1
- package/dist/test/query/Delete.test.d.ts +0 -1
- package/dist/test/query/DropTable.test.d.ts +0 -1
- package/dist/test/query/Insert.test.d.ts +0 -1
- package/dist/test/query/Select.test.d.ts +0 -1
- package/dist/test/query/Union.test.d.ts +0 -1
- package/dist/test/query/Update.test.d.ts +0 -1
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "rado",
|
|
3
|
-
"version": "1.0.0-preview.
|
|
3
|
+
"version": "1.0.0-preview.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"build": "tsc -p tsconfig.build.json && bun build.ts",
|
|
8
8
|
"size": "esbuild src/index.ts --bundle --minify --format=esm --outdir=dist",
|
|
9
9
|
"profile": "cross-env PROFILE=true tsx build.ts && cd bin && (rimraf CPU*.cpuprofile || true) && node --cpu-prof --cpu-prof-interval=100 test && speedscope CPU*.cpuprofile",
|
|
10
|
-
"prepublishOnly": "bun run build",
|
|
10
|
+
"prepublishOnly": "rm -rf dist && bun run build",
|
|
11
11
|
"cycles": "madge --warning --circular src/index.ts",
|
|
12
12
|
"test:bun": "bun test",
|
|
13
13
|
"test:node": "node --test-force-exit --test-concurrency=1 --import tsx --test \"**/*.test.ts\"",
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { internalData, type HasQuery, type HasSql, type HasTable, type HasTarget } from './Internal.ts';
|
|
2
|
-
import type { IsPostgres, QueryMeta } from './MetaData.ts';
|
|
3
|
-
import type { QueryData } from './Query.ts';
|
|
4
|
-
import type { SelectionInput } from './Selection.ts';
|
|
5
|
-
import type { Table, TableDefinition } from './Table.ts';
|
|
6
|
-
import { Create } from './query/CreateTable.ts';
|
|
7
|
-
import { DeleteFrom } from './query/Delete.ts';
|
|
8
|
-
import { Drop } from './query/DropTable.ts';
|
|
9
|
-
import { InsertInto } from './query/Insert.ts';
|
|
10
|
-
import type { SelectBase, WithSelection, WithoutSelection } from './query/Select.ts';
|
|
11
|
-
import { UpdateTable } from './query/Update.ts';
|
|
12
|
-
declare class BuilderBase<Meta extends QueryMeta> {
|
|
13
|
-
readonly [internalData]: QueryData<Meta>;
|
|
14
|
-
constructor(data: QueryData<Meta>);
|
|
15
|
-
createTable<Definition extends TableDefinition>(table: Table<Definition>): Create<Meta>;
|
|
16
|
-
dropTable(table: HasTable): Drop<Meta>;
|
|
17
|
-
select(): WithoutSelection<Meta>;
|
|
18
|
-
select<Input extends SelectionInput>(selection: Input): WithSelection<Input, Meta>;
|
|
19
|
-
selectDistinct(): WithoutSelection<Meta>;
|
|
20
|
-
selectDistinct<Input extends SelectionInput>(selection: Input): WithSelection<Input, Meta>;
|
|
21
|
-
selectDistinctOn(this: Builder<IsPostgres>, columns: Array<HasSql>): WithoutSelection<Meta>;
|
|
22
|
-
selectDistinctOn<Input extends SelectionInput>(this: Builder<IsPostgres>, columns: Array<HasSql>, selection: Input): WithSelection<Input, Meta>;
|
|
23
|
-
update<Definition extends TableDefinition>(table: Table<Definition>): UpdateTable<Definition, Meta>;
|
|
24
|
-
insert<Definition extends TableDefinition>(into: Table<Definition>): InsertInto<Definition, Meta>;
|
|
25
|
-
delete(from: HasTable): DeleteFrom<Meta>;
|
|
26
|
-
}
|
|
27
|
-
export type CTE<Input = unknown> = Input & HasTarget & HasQuery;
|
|
28
|
-
export declare class Builder<Meta extends QueryMeta> extends BuilderBase<Meta> {
|
|
29
|
-
$with(cteName: string): {
|
|
30
|
-
as<Input extends SelectionInput>(query: SelectBase<Input, Meta>): CTE<Input>;
|
|
31
|
-
};
|
|
32
|
-
with(...cte: Array<CTE>): BuilderBase<Meta>;
|
|
33
|
-
createTable<Definition extends TableDefinition>(table: Table<Definition>): Create<Meta>;
|
|
34
|
-
dropTable(table: HasTable): Drop<Meta>;
|
|
35
|
-
}
|
|
36
|
-
export {};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import type { HasColumn, HasSql } from './Internal.ts';
|
|
2
|
-
import { internalColumn } from './Internal.ts';
|
|
3
|
-
import type { Sql } from './Sql.ts';
|
|
4
|
-
import type { Field, FieldData } from './expr/Field.ts';
|
|
5
|
-
import { type Input } from './expr/Input.ts';
|
|
6
|
-
export declare class ColumnData {
|
|
7
|
-
type: Sql;
|
|
8
|
-
name?: string;
|
|
9
|
-
json?: boolean;
|
|
10
|
-
primary?: boolean;
|
|
11
|
-
notNull?: boolean;
|
|
12
|
-
isUnique?: boolean;
|
|
13
|
-
autoIncrement?: boolean;
|
|
14
|
-
defaultValue?(): HasSql;
|
|
15
|
-
references?(): FieldData;
|
|
16
|
-
onUpdate?: HasSql;
|
|
17
|
-
onDelete?: HasSql;
|
|
18
|
-
mapFromDriverValue?(value: unknown): unknown;
|
|
19
|
-
mapToDriverValue?(value: unknown): unknown;
|
|
20
|
-
}
|
|
21
|
-
export declare class Column<Value = unknown> implements HasColumn {
|
|
22
|
-
readonly [internalColumn]: ColumnData;
|
|
23
|
-
constructor(data: ColumnData);
|
|
24
|
-
notNull(): RequiredColumn<NonNullable<Value>>;
|
|
25
|
-
default(value: Input<NonNullable<Value>> | (() => Input<NonNullable<Value>>)): Column<NonNullable<Value>>;
|
|
26
|
-
primaryKey(): Column<NonNullable<Value>>;
|
|
27
|
-
unique(name?: string): Column<Value>;
|
|
28
|
-
references(foreignField: Field | (() => Field)): Column<Value>;
|
|
29
|
-
}
|
|
30
|
-
export declare class JsonColumn<Value = unknown> extends Column<Value> {
|
|
31
|
-
private brand;
|
|
32
|
-
constructor(data: ColumnData);
|
|
33
|
-
}
|
|
34
|
-
declare const required: unique symbol;
|
|
35
|
-
export interface RequiredColumn<Value = unknown> extends Column<Value> {
|
|
36
|
-
[required]: true;
|
|
37
|
-
}
|
|
38
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { internalConstraint, internalData, type HasConstraint, type HasData } from './Internal.ts';
|
|
2
|
-
import type { Field, FieldData } from './expr/Field.ts';
|
|
3
|
-
export interface UniqueConstraintData {
|
|
4
|
-
fields: Array<FieldData>;
|
|
5
|
-
nullsNotDistinct?: boolean;
|
|
6
|
-
}
|
|
7
|
-
export declare class UniqueConstraint<TableName extends string = string> implements HasData<UniqueConstraintData>, HasConstraint {
|
|
8
|
-
private brand;
|
|
9
|
-
[internalData]: UniqueConstraintData;
|
|
10
|
-
constructor(data: UniqueConstraintData);
|
|
11
|
-
on<TableName extends string>(...columns: Array<Field<unknown, TableName>>): UniqueConstraint<TableName>;
|
|
12
|
-
nullsNotDistinct(): UniqueConstraint<string>;
|
|
13
|
-
get [internalConstraint](): import("./Sql.ts").Sql<unknown>;
|
|
14
|
-
}
|
|
15
|
-
export declare function unique(): UniqueConstraint<string>;
|
|
16
|
-
export interface PrimaryKeyConstraintData {
|
|
17
|
-
fields: Array<FieldData>;
|
|
18
|
-
}
|
|
19
|
-
export declare class PrimaryKeyConstraint<TableName extends string = string> implements HasData<PrimaryKeyConstraintData>, HasConstraint {
|
|
20
|
-
data: PrimaryKeyConstraintData;
|
|
21
|
-
private brand;
|
|
22
|
-
[internalData]: PrimaryKeyConstraintData;
|
|
23
|
-
constructor(data: PrimaryKeyConstraintData);
|
|
24
|
-
get [internalConstraint](): import("./Sql.ts").Sql<unknown>;
|
|
25
|
-
}
|
|
26
|
-
export declare function primaryKey<TableName extends string = string>(...fields: Array<Field<unknown, TableName>>): PrimaryKeyConstraint<TableName>;
|
|
27
|
-
export interface ForeignKeyConstraintData {
|
|
28
|
-
fields: Array<FieldData>;
|
|
29
|
-
references: Array<FieldData>;
|
|
30
|
-
}
|
|
31
|
-
export declare class ForeignKeyConstraint<TableName extends string = string> implements HasData<ForeignKeyConstraintData>, HasConstraint {
|
|
32
|
-
private brand;
|
|
33
|
-
[internalData]: ForeignKeyConstraintData;
|
|
34
|
-
constructor(data: ForeignKeyConstraintData);
|
|
35
|
-
references<ForeignTable extends string>(...fields: Array<Field<unknown, ForeignTable>>): ForeignKeyConstraint<TableName>;
|
|
36
|
-
get [internalConstraint](): import("./Sql.ts").Sql<unknown>;
|
|
37
|
-
}
|
|
38
|
-
export declare function foreignKey<TableName extends string = string>(...fields: Array<Field<unknown, TableName>>): ForeignKeyConstraint<TableName>;
|
|
39
|
-
export type Constraint = UniqueConstraint | PrimaryKeyConstraint | ForeignKeyConstraint;
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { Builder } from './Builder.ts';
|
|
2
|
-
import type { Dialect } from './Dialect.ts';
|
|
3
|
-
import type { Driver } from './Driver.ts';
|
|
4
|
-
import { internalResolver, type HasResolver } from './Internal.ts';
|
|
5
|
-
import type { Async, Either, QueryDialect, QueryMeta, Sync } from './MetaData.ts';
|
|
6
|
-
import { Resolver } from './Resolver.ts';
|
|
7
|
-
export declare class Database<Meta extends QueryMeta = Either> extends Builder<Meta> implements HasResolver<Meta> {
|
|
8
|
-
#private;
|
|
9
|
-
readonly [internalResolver]: Resolver<Meta>;
|
|
10
|
-
constructor(driver: Driver, dialect: Dialect, transactionDepth?: number);
|
|
11
|
-
close(this: Database<Async>): Promise<void>;
|
|
12
|
-
close(this: Database<Sync>): void;
|
|
13
|
-
[Symbol.dispose](this: Database<Sync>): void;
|
|
14
|
-
[Symbol.asyncDispose](this: Database<Async>): Promise<void>;
|
|
15
|
-
transaction<T>(this: Database<Sync>, run: (tx: Transaction<Meta>) => T, options?: TransactionOptions[Meta['dialect']]): T;
|
|
16
|
-
transaction<T>(this: Database<Async>, run: (tx: Transaction<Meta>) => Promise<T>, options?: TransactionOptions[Meta['dialect']]): Promise<T>;
|
|
17
|
-
transaction<T>(run: (tx: Transaction<Meta>) => T | Promise<T>, options?: TransactionOptions[Meta['dialect']]): T | Promise<T>;
|
|
18
|
-
}
|
|
19
|
-
export interface TransactionOptions {
|
|
20
|
-
universal: never;
|
|
21
|
-
sqlite: {
|
|
22
|
-
behavior?: 'deferred' | 'immediate' | 'exclusive';
|
|
23
|
-
};
|
|
24
|
-
postgres: {
|
|
25
|
-
isolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';
|
|
26
|
-
accessMode?: 'read only' | 'read write';
|
|
27
|
-
deferrable?: boolean;
|
|
28
|
-
};
|
|
29
|
-
mysql: {
|
|
30
|
-
isolationLevel?: 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';
|
|
31
|
-
accessMode?: 'read only' | 'read write';
|
|
32
|
-
withConsistentSnapshot?: boolean;
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
export declare class Rollback extends Error {
|
|
36
|
-
}
|
|
37
|
-
export declare class Transaction<Meta extends QueryMeta> extends Database<Meta> {
|
|
38
|
-
rollback(): never;
|
|
39
|
-
}
|
|
40
|
-
export declare class SyncDatabase<Dialect extends QueryDialect> extends Database<Sync<Dialect>> {
|
|
41
|
-
}
|
|
42
|
-
export declare class AsyncDatabase<Dialect extends QueryDialect> extends Database<Async<Dialect>> {
|
|
43
|
-
}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Emitter } from './Emitter.ts';
|
|
2
|
-
import { type HasQuery, type HasSql } from './Internal.ts';
|
|
3
|
-
export declare function dialect(createEmitter: {
|
|
4
|
-
new (): Emitter;
|
|
5
|
-
}): (input: HasSql | HasQuery) => Emitter;
|
|
6
|
-
export type Dialect = ReturnType<typeof dialect>;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
export type Driver = SyncDriver | AsyncDriver;
|
|
2
|
-
export type Statement = SyncStatement | AsyncStatement;
|
|
3
|
-
export interface SyncDriver {
|
|
4
|
-
close(): void;
|
|
5
|
-
exec(query: string): void;
|
|
6
|
-
prepare(query: string, name?: string): SyncStatement;
|
|
7
|
-
transaction<T>(run: (inner: SyncDriver) => T, options: unknown, depth: number): T;
|
|
8
|
-
}
|
|
9
|
-
export interface SyncStatement {
|
|
10
|
-
all(params: Array<unknown>): Array<object>;
|
|
11
|
-
run(params: Array<unknown>): void;
|
|
12
|
-
get(params: Array<unknown>): object | null;
|
|
13
|
-
values(params: Array<unknown>): Array<Array<unknown>>;
|
|
14
|
-
free(): void;
|
|
15
|
-
}
|
|
16
|
-
export interface AsyncDriver {
|
|
17
|
-
close(): Promise<void>;
|
|
18
|
-
exec(query: string): Promise<void>;
|
|
19
|
-
prepare(query: string, name?: string): AsyncStatement;
|
|
20
|
-
transaction<T>(run: (inner: AsyncDriver) => Promise<T>, options: unknown, depth: number): Promise<T>;
|
|
21
|
-
}
|
|
22
|
-
export interface AsyncStatement {
|
|
23
|
-
all(params: Array<unknown>): Promise<Array<object>>;
|
|
24
|
-
run(params: Array<unknown>): Promise<void>;
|
|
25
|
-
get(params: Array<unknown>): Promise<object | null>;
|
|
26
|
-
values(params: Array<unknown>): Promise<Array<Array<unknown>>>;
|
|
27
|
-
free(): void;
|
|
28
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import type { ColumnData } from './Column.ts';
|
|
2
|
-
import { type HasQuery, type HasTarget } from './Internal.ts';
|
|
3
|
-
import { type Param } from './Param.ts';
|
|
4
|
-
import type { FieldData } from './expr/Field.ts';
|
|
5
|
-
import type { Create } from './query/CreateTable.ts';
|
|
6
|
-
import type { Delete } from './query/Delete.ts';
|
|
7
|
-
import type { Drop } from './query/DropTable.ts';
|
|
8
|
-
import type { Insert } from './query/Insert.ts';
|
|
9
|
-
import type { Select } from './query/Select.ts';
|
|
10
|
-
import type { Union } from './query/Union.ts';
|
|
11
|
-
import type { Update } from './query/Update.ts';
|
|
12
|
-
export declare abstract class Emitter {
|
|
13
|
-
sql: string;
|
|
14
|
-
params: Array<Param>;
|
|
15
|
-
bind(inputs?: Record<string, unknown>): Array<unknown>;
|
|
16
|
-
abstract emitIdentifier(value: string): void;
|
|
17
|
-
abstract emitValue(value: unknown): void;
|
|
18
|
-
abstract emitInline(value: unknown): void;
|
|
19
|
-
abstract emitJsonPath(value: Array<number | string>): void;
|
|
20
|
-
abstract emitPlaceholder(value: string): void;
|
|
21
|
-
abstract emitDefaultValue(): void;
|
|
22
|
-
emitUnsafe(value: string): void;
|
|
23
|
-
emitField(field: FieldData): void;
|
|
24
|
-
emitCreateTable(create: Create): void;
|
|
25
|
-
emitDrop(drop: Drop): void;
|
|
26
|
-
emitColumn(column: ColumnData): void;
|
|
27
|
-
emitReferences(fields: Array<FieldData>): void;
|
|
28
|
-
emitDelete(deleteOp: Delete<unknown>): void;
|
|
29
|
-
emitInsert(insert: Insert<unknown>): void;
|
|
30
|
-
emitSelect(select: Select<unknown>): void;
|
|
31
|
-
emitUnion(union: Union<unknown>): void;
|
|
32
|
-
emitUpdate(update: Update<unknown>): void;
|
|
33
|
-
abstract emitIdColumn(): void;
|
|
34
|
-
emitWith(cte: Array<HasQuery & HasTarget>): void;
|
|
35
|
-
}
|
package/dist/src/core/Index.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { internalData, type HasData, type HasSql } from './Internal.ts';
|
|
2
|
-
import type { Field, FieldData } from './expr/Field.ts';
|
|
3
|
-
export interface IndexData {
|
|
4
|
-
fields: Array<FieldData>;
|
|
5
|
-
unique?: boolean;
|
|
6
|
-
concurrently?: boolean;
|
|
7
|
-
only?: boolean;
|
|
8
|
-
using?: HasSql;
|
|
9
|
-
order?: 'asc' | 'desc';
|
|
10
|
-
nulls?: 'first' | 'last';
|
|
11
|
-
where?: HasSql;
|
|
12
|
-
}
|
|
13
|
-
export declare class Index<TableName extends string = string> implements HasData<IndexData> {
|
|
14
|
-
private brand;
|
|
15
|
-
[internalData]: IndexData;
|
|
16
|
-
constructor(data: IndexData);
|
|
17
|
-
on<TableName extends string>(...columns: Array<Field<unknown, TableName>>): Index<TableName>;
|
|
18
|
-
concurrently(): Index<string>;
|
|
19
|
-
only(): Index<string>;
|
|
20
|
-
using<Sql>(using: HasSql<Sql>): Index<string>;
|
|
21
|
-
asc(): Index<string>;
|
|
22
|
-
desc(): Index<string>;
|
|
23
|
-
nullsFirst(): Index<string>;
|
|
24
|
-
nullsLast(): Index<string>;
|
|
25
|
-
where(where: HasSql<boolean>): Index<string>;
|
|
26
|
-
}
|
|
27
|
-
export declare function index(): Index<string>;
|
|
28
|
-
export declare function uniqueIndex(): Index<string>;
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
import type { ColumnData } from './Column.ts';
|
|
2
|
-
import type { QueryMeta } from './MetaData.ts';
|
|
3
|
-
import type { Resolver } from './Resolver.ts';
|
|
4
|
-
import type { Selection } from './Selection.ts';
|
|
5
|
-
import type { Sql } from './Sql.ts';
|
|
6
|
-
import type { TableApi, TableDefinition } from './Table.ts';
|
|
7
|
-
import type { FieldData } from './expr/Field.ts';
|
|
8
|
-
export declare const internalData: unique symbol;
|
|
9
|
-
export declare const internalSql: unique symbol;
|
|
10
|
-
export declare const internalSelection: unique symbol;
|
|
11
|
-
export declare const internalTarget: unique symbol;
|
|
12
|
-
export declare const internalQuery: unique symbol;
|
|
13
|
-
export declare const internalTable: unique symbol;
|
|
14
|
-
export declare const internalColumn: unique symbol;
|
|
15
|
-
export declare const internalField: unique symbol;
|
|
16
|
-
export declare const internalResolver: unique symbol;
|
|
17
|
-
export declare const internalConstraint: unique symbol;
|
|
18
|
-
export declare class HasData<Data> {
|
|
19
|
-
get [internalData](): Data;
|
|
20
|
-
}
|
|
21
|
-
export declare class HasSql<Value = unknown> {
|
|
22
|
-
get [internalSql](): Sql<Value>;
|
|
23
|
-
}
|
|
24
|
-
export declare class HasSelection {
|
|
25
|
-
get [internalSelection](): Selection;
|
|
26
|
-
}
|
|
27
|
-
export declare class HasTarget {
|
|
28
|
-
get [internalTarget](): Sql;
|
|
29
|
-
}
|
|
30
|
-
export declare class HasQuery {
|
|
31
|
-
get [internalQuery](): Sql;
|
|
32
|
-
}
|
|
33
|
-
export declare class HasTable<Definition extends TableDefinition = TableDefinition, Name extends string = string> {
|
|
34
|
-
get [internalTable](): TableApi<Definition, Name>;
|
|
35
|
-
}
|
|
36
|
-
export declare class HasColumn {
|
|
37
|
-
get [internalColumn](): ColumnData;
|
|
38
|
-
}
|
|
39
|
-
export declare class HasField {
|
|
40
|
-
get [internalField](): FieldData;
|
|
41
|
-
}
|
|
42
|
-
export declare class HasResolver<Meta extends QueryMeta = QueryMeta> {
|
|
43
|
-
get [internalResolver](): Resolver<Meta>;
|
|
44
|
-
}
|
|
45
|
-
export declare class HasConstraint {
|
|
46
|
-
get [internalConstraint](): Sql;
|
|
47
|
-
}
|
|
48
|
-
export declare const hasData: <Data>(obj: object) => obj is HasData<Data>;
|
|
49
|
-
export declare const getData: <Data>(obj: HasData<Data>) => Data;
|
|
50
|
-
export declare const hasSql: <Value>(obj: object) => obj is HasSql<Value>;
|
|
51
|
-
export declare const getSql: <Value>(obj: HasSql<Value>) => Sql<Value>;
|
|
52
|
-
export declare const hasSelection: (obj: object) => obj is HasSelection;
|
|
53
|
-
export declare const getSelection: (obj: HasSelection) => Selection;
|
|
54
|
-
export declare const hasTarget: (obj: object) => obj is HasTarget;
|
|
55
|
-
export declare const getTarget: (obj: HasTarget) => Sql<unknown>;
|
|
56
|
-
export declare const hasQuery: (obj: object) => obj is HasQuery;
|
|
57
|
-
export declare const getQuery: (obj: HasQuery) => Sql<unknown>;
|
|
58
|
-
export declare const hasTable: (obj: object) => obj is HasTable<TableDefinition, string>;
|
|
59
|
-
export declare const getTable: (obj: HasTable) => TableApi<TableDefinition, string>;
|
|
60
|
-
export declare const hasColumn: (obj: object) => obj is HasColumn;
|
|
61
|
-
export declare const getColumn: (obj: HasColumn) => ColumnData;
|
|
62
|
-
export declare const hasField: (obj: object) => obj is HasField;
|
|
63
|
-
export declare const getField: (obj: HasField) => FieldData;
|
|
64
|
-
export declare const hasResolver: <Meta extends QueryMeta>(obj: object) => obj is HasResolver<Meta>;
|
|
65
|
-
export declare const getResolver: <Meta extends QueryMeta>(obj: HasResolver<Meta>) => Resolver<Meta>;
|
|
66
|
-
export declare const hasConstraint: (obj: object) => obj is HasConstraint;
|
|
67
|
-
export declare const getConstraint: (obj: HasConstraint) => Sql<unknown>;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export type QueryMode = 'sync' | 'async' | undefined;
|
|
2
|
-
export type QueryDialect = 'universal' | 'sqlite' | 'mysql' | 'postgres';
|
|
3
|
-
export interface QueryMeta {
|
|
4
|
-
mode: QueryMode;
|
|
5
|
-
dialect: QueryDialect;
|
|
6
|
-
}
|
|
7
|
-
export interface Sync<Dialect extends QueryDialect = QueryDialect> extends QueryMeta {
|
|
8
|
-
mode: 'sync';
|
|
9
|
-
dialect: Dialect;
|
|
10
|
-
}
|
|
11
|
-
export interface Async<Dialect extends QueryDialect = QueryDialect> extends QueryMeta {
|
|
12
|
-
mode: 'async';
|
|
13
|
-
dialect: Dialect;
|
|
14
|
-
}
|
|
15
|
-
export interface IsPostgres extends QueryMeta {
|
|
16
|
-
dialect: 'postgres';
|
|
17
|
-
}
|
|
18
|
-
export interface IsMysql extends QueryMeta {
|
|
19
|
-
dialect: 'mysql';
|
|
20
|
-
}
|
|
21
|
-
export interface IsSqlite extends QueryMeta {
|
|
22
|
-
dialect: 'sqlite';
|
|
23
|
-
}
|
|
24
|
-
export interface Either extends QueryMeta {
|
|
25
|
-
mode: 'sync' | 'async';
|
|
26
|
-
dialect: QueryDialect;
|
|
27
|
-
}
|
package/dist/src/core/Param.d.ts
DELETED
package/dist/src/core/Query.d.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { internalData, internalQuery, type HasQuery, type HasResolver, type HasTarget } from './Internal.ts';
|
|
2
|
-
import type { Async, QueryMeta, Sync } from './MetaData.ts';
|
|
3
|
-
import type { PreparedStatement, Resolver } from './Resolver.ts';
|
|
4
|
-
import type { Sql } from './Sql.ts';
|
|
5
|
-
export declare class QueryData<Meta extends QueryMeta> {
|
|
6
|
-
resolver?: Resolver<Meta>;
|
|
7
|
-
cte?: Array<HasQuery & HasTarget>;
|
|
8
|
-
}
|
|
9
|
-
export declare abstract class Query<Result, Meta extends QueryMeta> implements PromiseLike<Array<Result>> {
|
|
10
|
-
#private;
|
|
11
|
-
readonly [internalData]: QueryData<Meta>;
|
|
12
|
-
abstract [internalQuery]: Sql;
|
|
13
|
-
constructor(data: QueryData<Meta>);
|
|
14
|
-
[Symbol.iterator](): Generator<Promise<unknown>, Array<Result>, unknown>;
|
|
15
|
-
prepare<Inputs extends Record<string, unknown>>(name: string): PreparedQuery<Result, Inputs, Meta>;
|
|
16
|
-
all(this: Query<Result, Sync>): Array<Result>;
|
|
17
|
-
all(this: Query<Result, Async>): Promise<Array<Result>>;
|
|
18
|
-
all(db: HasResolver<Sync> | Resolver<Sync>): Array<Result>;
|
|
19
|
-
all(db: HasResolver<Async> | Resolver<Async>): Promise<Array<Result>>;
|
|
20
|
-
get(this: Query<Result, Sync>): Result;
|
|
21
|
-
get(this: Query<Result, Async>): Promise<Result>;
|
|
22
|
-
get(db: HasResolver<Sync> | Resolver<Sync>): Result;
|
|
23
|
-
get(db: HasResolver<Async> | Resolver<Async>): Promise<Result>;
|
|
24
|
-
run(this: Query<Result, Sync>): void;
|
|
25
|
-
run(this: Query<Result, Async>): Promise<void>;
|
|
26
|
-
run(db: HasResolver<Sync> | Resolver<Sync>): void;
|
|
27
|
-
run(db: HasResolver<Async> | Resolver<Async>): Promise<void>;
|
|
28
|
-
then<TResult1 = Array<Result>, TResult2 = never>(this: Query<Result, Sync | Async>, onfulfilled?: ((value: Array<Result>) => TResult1 | PromiseLike<TResult1>) | undefined | null, onrejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | undefined | null): Promise<TResult1 | TResult2>;
|
|
29
|
-
catch<TResult = never>(this: Query<Result, Async>, onrejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | undefined | null): Promise<Array<Result> | TResult>;
|
|
30
|
-
finally(this: Query<Result, Async>, onfinally?: (() => void) | undefined | null): Promise<Array<Result>>;
|
|
31
|
-
}
|
|
32
|
-
export interface PreparedQuery<Result, Inputs extends Record<string, unknown>, Meta extends QueryMeta> extends PreparedStatement<Meta> {
|
|
33
|
-
all(this: PreparedQuery<Result, Inputs, Sync>, inputs?: Inputs): Array<Result>;
|
|
34
|
-
all(this: PreparedQuery<Result, Inputs, Async>, inputs?: Inputs): Promise<Array<Result>>;
|
|
35
|
-
get(this: PreparedQuery<Result, Inputs, Sync>, inputs?: Inputs): Result;
|
|
36
|
-
get(this: PreparedQuery<Result, Inputs, Async>, inputs?: Inputs): Promise<Result>;
|
|
37
|
-
run(this: PreparedQuery<Result, Inputs, Sync>, inputs?: Inputs): void;
|
|
38
|
-
run(this: PreparedQuery<Result, Inputs, Async>, inputs?: Inputs): Promise<void>;
|
|
39
|
-
execute(inputs?: Inputs): Promise<Array<Result>>;
|
|
40
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { Dialect } from './Dialect.ts';
|
|
2
|
-
import type { Driver, Statement } from './Driver.ts';
|
|
3
|
-
import type { Emitter } from './Emitter.ts';
|
|
4
|
-
import { type HasQuery } from './Internal.ts';
|
|
5
|
-
import type { QueryMeta } from './MetaData.ts';
|
|
6
|
-
export declare class Resolver<Meta extends QueryMeta = QueryMeta> {
|
|
7
|
-
#private;
|
|
8
|
-
private brand;
|
|
9
|
-
constructor(driver: Driver, dialect: Dialect);
|
|
10
|
-
prepare(query: HasQuery, name: string): PreparedStatement<Meta>;
|
|
11
|
-
}
|
|
12
|
-
type RowMapper = ((values: Array<unknown>) => unknown) | undefined;
|
|
13
|
-
export declare class PreparedStatement<Meta extends QueryMeta> {
|
|
14
|
-
#private;
|
|
15
|
-
private brand;
|
|
16
|
-
constructor(emitter: Emitter, stmt: Statement, mapRow: RowMapper);
|
|
17
|
-
all(inputs?: Record<string, unknown>): Array<unknown> | Promise<Array<unknown>>;
|
|
18
|
-
get(inputs?: Record<string, unknown>): unknown | Promise<unknown>;
|
|
19
|
-
run(inputs?: Record<string, unknown>): unknown;
|
|
20
|
-
execute(inputs?: Record<string, unknown>): Promise<unknown>;
|
|
21
|
-
free(): void;
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import { type Table, type TableConfig, type TableDefinition } from './Table.ts';
|
|
2
|
-
export declare function schema<SchemaName extends string>(schemaName: SchemaName): {
|
|
3
|
-
table<Definition extends TableDefinition, TableName extends string>(tableName: TableName, columns: Definition, config?: ((self: Table<Definition>) => TableConfig<`${SchemaName}.${TableName}`>) | undefined): Table<Definition, `${SchemaName}.${TableName}`>;
|
|
4
|
-
};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { internalSql, type HasSql, type HasTable } from './Internal.ts';
|
|
2
|
-
import { type Sql } from './Sql.ts';
|
|
3
|
-
import type { Table, TableRow } from './Table.ts';
|
|
4
|
-
import type { Expand } from './Types.ts';
|
|
5
|
-
declare const nullable: unique symbol;
|
|
6
|
-
export interface SelectionRecord extends Record<string, SelectionInput> {
|
|
7
|
-
}
|
|
8
|
-
export type IsNullable = {
|
|
9
|
-
[nullable]: true;
|
|
10
|
-
};
|
|
11
|
-
export type MakeNullable<T> = Expand<{
|
|
12
|
-
[K in keyof T]: T[K] & IsNullable;
|
|
13
|
-
}>;
|
|
14
|
-
export type SelectionInput = HasSql | HasTable | SelectionRecord;
|
|
15
|
-
export type RowOfRecord<Input> = Expand<{
|
|
16
|
-
[Key in keyof Input as Key extends string ? Key : never]: SelectionRow<Input[Key]>;
|
|
17
|
-
}>;
|
|
18
|
-
export type SelectionRow<Input> = Input extends HasSql<infer Value> ? Value : Input extends IsNullable ? RowOfRecord<Input> | null : Input extends SelectionRecord ? RowOfRecord<Input> : Input extends Table<infer Definition> ? TableRow<Definition> : never;
|
|
19
|
-
export declare class Selection implements HasSql {
|
|
20
|
-
#private;
|
|
21
|
-
constructor(input: SelectionInput, nullable: Set<string>);
|
|
22
|
-
makeVirtual(name: string): SelectionRecord | HasSql<unknown> | HasTable<import("./Table.ts").TableDefinition, string>;
|
|
23
|
-
mapRow: (values: Array<unknown>) => unknown;
|
|
24
|
-
get [internalSql](): Sql<unknown>;
|
|
25
|
-
}
|
|
26
|
-
export declare function selection(input: SelectionInput, nullable?: Set<string>): Selection;
|
|
27
|
-
export {};
|
package/dist/src/core/Sql.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import type { Emitter } from './Emitter.ts';
|
|
2
|
-
import { internalSql, type HasSql } from './Internal.ts';
|
|
3
|
-
import type { FieldData } from './expr/Field.ts';
|
|
4
|
-
type EmitMethods = {
|
|
5
|
-
[K in keyof Emitter as K extends `emit${string}` ? K : never]: Emitter[K];
|
|
6
|
-
};
|
|
7
|
-
declare class Chunk<Type = keyof EmitMethods, Inner = unknown> {
|
|
8
|
-
type: Type;
|
|
9
|
-
inner: Inner;
|
|
10
|
-
constructor(type: Type, inner: Inner);
|
|
11
|
-
}
|
|
12
|
-
export type Decoder<T> = ((value: unknown) => T) | {
|
|
13
|
-
mapFromDriverValue?(value: unknown): T;
|
|
14
|
-
};
|
|
15
|
-
export declare class Sql<Value = unknown> implements HasSql<Value> {
|
|
16
|
-
#private;
|
|
17
|
-
private brand;
|
|
18
|
-
alias?: string;
|
|
19
|
-
mapFromDriverValue?: (input: unknown) => Value;
|
|
20
|
-
readonly [internalSql]: this;
|
|
21
|
-
constructor(chunks?: Array<Chunk>);
|
|
22
|
-
as(name: string): Sql<Value>;
|
|
23
|
-
mapWith<T = Value>(decoder: Decoder<T>): Sql<T>;
|
|
24
|
-
chunk<Type extends keyof EmitMethods>(type: Type, inner: Parameters<EmitMethods[Type]>[0]): Sql<Value>;
|
|
25
|
-
unsafe(sql: string): Sql<Value>;
|
|
26
|
-
field(field: FieldData): Sql<Value>;
|
|
27
|
-
add(sql: HasSql): Sql<Value>;
|
|
28
|
-
value(value: unknown): Sql<Value>;
|
|
29
|
-
inline(value: unknown): Sql<Value>;
|
|
30
|
-
jsonPath(path: Array<string | number>): Sql<Value>;
|
|
31
|
-
placeholder(name: string): Sql<Value>;
|
|
32
|
-
identifier(identifier: string): Sql<Value>;
|
|
33
|
-
inlineFields(withTableName: boolean): Sql<Value>;
|
|
34
|
-
emit(emitter: Emitter): void;
|
|
35
|
-
}
|
|
36
|
-
export declare function sql<T>(strings: TemplateStringsArray, ...inner: Array<HasSql>): Sql<T>;
|
|
37
|
-
export declare namespace sql {
|
|
38
|
-
function empty<T>(): Sql<T>;
|
|
39
|
-
function unsafe<T>(directSql: string): Sql<T>;
|
|
40
|
-
function value<T>(value: T): Sql<T>;
|
|
41
|
-
function inline<T>(value: T): Sql<T>;
|
|
42
|
-
function placeholder<T>(name: string): Sql<T>;
|
|
43
|
-
function identifier<T>(identifier: string): Sql<T>;
|
|
44
|
-
function field<T>(field: FieldData): Sql<T>;
|
|
45
|
-
function chunk<Type extends keyof EmitMethods>(type: Type, inner: Parameters<EmitMethods[Type]>[0]): Sql;
|
|
46
|
-
function query(ast: Record<string, HasSql | undefined>): Sql;
|
|
47
|
-
function join<T>(items: Array<Sql | HasSql | undefined | false>, separator?: Sql): Sql<T>;
|
|
48
|
-
}
|
|
49
|
-
export {};
|
package/dist/src/core/Table.d.ts
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { Column, JsonColumn, RequiredColumn } from './Column.ts';
|
|
2
|
-
import type { ForeignKeyConstraint, PrimaryKeyConstraint, UniqueConstraint } from './Constraint.ts';
|
|
3
|
-
import type { Index } from './Index.ts';
|
|
4
|
-
import { type HasSql, type HasTable, type HasTarget } from './Internal.ts';
|
|
5
|
-
import { type Sql } from './Sql.ts';
|
|
6
|
-
import { type JsonExpr } from './expr/Conditions.ts';
|
|
7
|
-
import { Field } from './expr/Field.ts';
|
|
8
|
-
import type { Input } from './expr/Input.ts';
|
|
9
|
-
export type TableDefinition = {
|
|
10
|
-
[name: string]: Column;
|
|
11
|
-
};
|
|
12
|
-
declare class TableData {
|
|
13
|
-
name: string;
|
|
14
|
-
alias?: string;
|
|
15
|
-
schemaName?: string;
|
|
16
|
-
columns: TableDefinition;
|
|
17
|
-
config?: TableConfig;
|
|
18
|
-
}
|
|
19
|
-
export declare class TableApi<Definition extends TableDefinition = TableDefinition, Name extends string = string> extends TableData {
|
|
20
|
-
private brand;
|
|
21
|
-
get aliased(): string;
|
|
22
|
-
target(): Sql;
|
|
23
|
-
createDefinition(): Sql;
|
|
24
|
-
listColumns(): Sql;
|
|
25
|
-
fields(): Record<string, HasSql>;
|
|
26
|
-
}
|
|
27
|
-
export type Table<Definition extends TableDefinition = TableDefinition, Name extends string = string> = TableFields<Definition, Name> & HasTable<Definition, Name> & HasTarget;
|
|
28
|
-
export type TableFields<Definition extends TableDefinition, TableName extends string = string> = {
|
|
29
|
-
[K in keyof Definition]: Definition[K] extends JsonColumn<infer T> ? JsonExpr<T> : Definition[K] extends Column<infer T> ? Field<T, TableName> : never;
|
|
30
|
-
};
|
|
31
|
-
export type TableRow<Definition extends TableDefinition> = {
|
|
32
|
-
[K in keyof Definition]: Definition[K] extends Column<infer T> ? T : never;
|
|
33
|
-
} & {};
|
|
34
|
-
type IsReq<Col> = Col extends RequiredColumn ? true : false;
|
|
35
|
-
type Required<D> = {
|
|
36
|
-
[K in keyof D as true extends IsReq<D[K]> ? K : never]: D[K];
|
|
37
|
-
};
|
|
38
|
-
type Optional<D> = {
|
|
39
|
-
[K in keyof D as false extends IsReq<D[K]> ? K : never]: D[K];
|
|
40
|
-
};
|
|
41
|
-
type RequiredInput<D> = {
|
|
42
|
-
readonly [K in keyof Required<D>]: D[K] extends Column<infer V> ? Input<V> : never;
|
|
43
|
-
};
|
|
44
|
-
type OptionalInput<D> = {
|
|
45
|
-
readonly [K in keyof Optional<D>]?: D[K] extends Column<infer V> ? Input<V> : never;
|
|
46
|
-
};
|
|
47
|
-
export type TableInsert<Definition extends TableDefinition> = RequiredInput<Definition> & OptionalInput<Definition>;
|
|
48
|
-
export type TableUpdate<Definition extends TableDefinition> = {
|
|
49
|
-
readonly [K in keyof Definition]?: Definition[K] extends Column<infer T> ? Input<T> : never;
|
|
50
|
-
};
|
|
51
|
-
export type TableConfigSetting<Name extends string> = UniqueConstraint<Name> | PrimaryKeyConstraint<Name> | ForeignKeyConstraint<Name> | Index<Name>;
|
|
52
|
-
export interface TableConfig<Name extends string = string> extends Record<string, TableConfigSetting<Name>> {
|
|
53
|
-
}
|
|
54
|
-
export declare function table<Definition extends TableDefinition, Name extends string>(name: Name, columns: Definition, config?: (self: Table<Definition, Name>) => TableConfig<Name>, schemaName?: string): Table<Definition, Name>;
|
|
55
|
-
export declare function alias<Definition extends TableDefinition, Alias extends string>(table: Table<Definition>, alias: Alias): Table<Definition, Alias>;
|
|
56
|
-
export {};
|
package/dist/src/core/Types.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { type HasSql } from '../Internal.ts';
|
|
2
|
-
import { type Sql } from '../Sql.ts';
|
|
3
|
-
export declare function count(input?: HasSql): Sql<number>;
|
|
4
|
-
export declare function countDistinct(input: HasSql): Sql<number>;
|
|
5
|
-
export declare function avg(input: HasSql): Sql<string | null>;
|
|
6
|
-
export declare function avgDistinct(input: HasSql): Sql<string | null>;
|
|
7
|
-
export declare function sum(input: HasSql): HasSql<string | null>;
|
|
8
|
-
export declare function sumDistinct(input: HasSql): HasSql<string | null>;
|
|
9
|
-
export declare function max<T>(input: HasSql<T>): Sql<T>;
|
|
10
|
-
export declare function min<T>(input: HasSql<T>): Sql<T>;
|