Skip to content

Commit

Permalink
Set up PG client
Browse files Browse the repository at this point in the history
  • Loading branch information
ClaireNeveu committed Apr 24, 2024
1 parent 1605493 commit fafaa3c
Show file tree
Hide file tree
Showing 13 changed files with 302 additions and 11 deletions.
6 changes: 5 additions & 1 deletion packages/sij-core/src/builder/delete.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import CallableInstance from 'callable-instance';
import { lens } from 'lens.ts';

import { Expr, Ident, Lit } from '../ast/expr';
import { DefaultValue, Delete, ValuesConstructor, ValuesQuery } from '../ast/statement';
import { DefaultValue, Delete, Statement, ValuesConstructor, ValuesQuery } from '../ast/statement';
import { Functions } from './functions';
import { BuilderExtension, makeLit, TypedAst, ast } from './util';
import { QueryBuilder } from './query';
Expand Down Expand Up @@ -63,6 +63,10 @@ class DeleteBuilder<Schema, Table, Return, Ext extends BuilderExtension> extends
this.fn as Functions<Schema, any, Ext>,
);
}

build(): Statement<Ext> {
return this._statement;
}
}
// Merges with above class to provide calling as a function
interface DeleteBuilder<Schema, Table, Return, Ext extends BuilderExtension> {
Expand Down
6 changes: 5 additions & 1 deletion packages/sij-core/src/builder/insert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import CallableInstance from 'callable-instance';
import { lens } from 'lens.ts';

import { Expr, Ident, Lit } from '../ast/expr';
import { DefaultValue, Insert, ValuesConstructor, ValuesQuery } from '../ast/statement';
import { DefaultValue, Insert, Statement, ValuesConstructor, ValuesQuery } from '../ast/statement';
import { Extension, NoExtension } from '../ast/util';
import { VTagged } from '../util';
import { Functions } from './functions';
Expand Down Expand Up @@ -165,6 +165,10 @@ class InsertBuilder<Schema, Table, Return, Ext extends BuilderExtension> extends
this.fn as Functions<Schema, any, Ext>,
);
}

build(): Statement<Ext> {
return this._statement;
}
}
// Merges with above class to provide calling as a function
interface InsertBuilder<Schema, Table, Return, Ext extends BuilderExtension> {
Expand Down
3 changes: 2 additions & 1 deletion packages/sij-core/src/builder/query.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ import {
TypedAst,
ast,
} from './util';
import { Statement } from '../ast';

export type MakeJoinTable<Schema, J, Alias extends string> = J extends keyof Schema & string
? Schema[J] & QualifiedTable<Schema, J>
Expand Down Expand Up @@ -469,7 +470,7 @@ class QueryBuilder<Schema, Table, Return, Ext extends BuilderExtension> extends
return typeTag<Return>();
}

finish(): Query<Ext> {
build(): Statement<Ext> {
return this._statement;
}
}
Expand Down
5 changes: 5 additions & 0 deletions packages/sij-core/src/builder/schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import {
SchemaManipulationStatement,
SelectPrivilege,
SetDefault,
Statement,
TableConstraint,
TableDefinition,
UniqueConstraint,
Expand Down Expand Up @@ -535,6 +536,10 @@ class SchemaBuilder<Database, Return, Ext extends BuilderExtension> extends Call
schemaTag(): TypeTag<Database> {
return typeTag<Database>();
}

build(): Array<Statement<Ext>> {
return this._statements;
}
}

// Merges with above class to provide calling as a function
Expand Down
6 changes: 5 additions & 1 deletion packages/sij-core/src/builder/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import CallableInstance from 'callable-instance';
import { lens } from 'lens.ts';

import { Expr, Ident, Lit } from '../ast/expr';
import { DefaultValue, Update, ValuesConstructor, ValuesQuery } from '../ast/statement';
import { DefaultValue, Statement, Update, ValuesConstructor, ValuesQuery } from '../ast/statement';
import { Extension, NoExtension } from '../ast/util';
import { Functions } from './functions';
import { BuilderExtension, makeLit, StringKeys, TypedAst, ast } from './util';
Expand Down Expand Up @@ -121,6 +121,10 @@ class UpdateBuilder<Schema, Table, Return, Ext extends BuilderExtension> extends
this.fn as Functions<Schema, any, Ext>,
);
}

build(): Statement<Ext> {
return this._statement;
}
}
// Merges with above class to provide calling as a function
interface UpdateBuilder<Schema, Table, Return, Ext extends BuilderExtension> {
Expand Down
5 changes: 5 additions & 0 deletions packages/sij-dialect-postgresql/src/builder/functions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { Functions } from "sij-core";
import { PgExtension } from "../ast";

export class PgFunctions<Schema, Table> extends Functions<Schema, Table, PgExtension> {
}
14 changes: 13 additions & 1 deletion packages/sij-dialect-postgresql/src/builder/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,4 +87,16 @@ class PgBuilder<Schema> extends CoreBuilder<Schema, PgExtension> {
}
}

export { PgBuilder };
export { PgFunctions } from './functions';

export {
PgBuilder,
PgQueryBuilder,
PgInsertBuilder,
PgUpdateBuilder,
PgDeleteBuilder,
PgSchemaBuilder,
PgConstraintBuilder,
PgTypeBuilder,
PgDefaultBuilder,
};
16 changes: 16 additions & 0 deletions packages/sij-dialect-postgresql/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
export {
PgBuilder,
PgFunctions,
PgQueryBuilder,
PgInsertBuilder,
PgUpdateBuilder,
PgDeleteBuilder,
PgSchemaBuilder,
PgConstraintBuilder,
PgTypeBuilder,
PgDefaultBuilder,
} from './builder';

export { PgRenderer } from './render';

export * as ast from './ast';
2 changes: 1 addition & 1 deletion packages/sij-dialect-postgresql/src/render/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import { Renderer } from 'sij-core';

class PostgreSqlRenderer extends Renderer {}
export class PgRenderer extends Renderer {}
124 changes: 119 additions & 5 deletions packages/sij-pg/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions packages/sij-pg/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"author": "Claire Neveu",
"license": "BSD-3-Clause",
"devDependencies": {
"@types/pg": "^8.11.5",
"ava": "^6.1.2",
"prettier": "^3.2.5",
"ts-node": "^10.9.2",
Expand All @@ -26,6 +27,7 @@
},
"dependencies": {
"pg": "^8.11.5",
"sij-core": "file:../sij-core",
"sij-dialect-postgresql": "file:../sij-dialect-postgresql"
}
}
Loading

0 comments on commit fafaa3c

Please sign in to comment.