@effect/sql-pg 0.0.0-snapshot-189d4cae80e186661241002ad9d729628096520f

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.
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/Client.js",
3
+ "module": "../dist/esm/Client.js",
4
+ "types": "../dist/dts/Client.d.ts",
5
+ "sideEffects": []
6
+ }
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023-present The Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/Migrator.js",
3
+ "module": "../dist/esm/Migrator.js",
4
+ "types": "../dist/dts/Migrator.d.ts",
5
+ "sideEffects": []
6
+ }
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # Effect SQL - Postgresql
2
+
3
+ An @effect/sql implementation using the `postgres.js` library.
4
+
5
+ See here for more information: https://github.com/Effect-TS/effect/tree/main/packages/sql
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeCompiler = exports.make = exports.layer = exports.PgClient = void 0;
7
+ var Client = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Client"));
8
+ var _Error = /*#__PURE__*/require("@effect/sql/Error");
9
+ var Statement = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Statement"));
10
+ var Chunk = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Chunk"));
11
+ var Config = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Config"));
12
+ var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Context"));
13
+ var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Duration"));
14
+ var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
15
+ var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
16
+ var Secret = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Secret"));
17
+ var Stream = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Stream"));
18
+ var _postgres = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("postgres"));
19
+ function _interopRequireDefault(obj) {
20
+ return obj && obj.__esModule ? obj : {
21
+ default: obj
22
+ };
23
+ }
24
+ function _getRequireWildcardCache(e) {
25
+ if ("function" != typeof WeakMap) return null;
26
+ var r = new WeakMap(),
27
+ t = new WeakMap();
28
+ return (_getRequireWildcardCache = function (e) {
29
+ return e ? t : r;
30
+ })(e);
31
+ }
32
+ function _interopRequireWildcard(e, r) {
33
+ if (!r && e && e.__esModule) return e;
34
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
35
+ default: e
36
+ };
37
+ var t = _getRequireWildcardCache(r);
38
+ if (t && t.has(e)) return t.get(e);
39
+ var n = {
40
+ __proto__: null
41
+ },
42
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
43
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
44
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
45
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
46
+ }
47
+ return n.default = e, t && t.set(e, n), n;
48
+ }
49
+ /**
50
+ * @since 1.0.0
51
+ */
52
+
53
+ /**
54
+ * @category tags
55
+ * @since 1.0.0
56
+ */
57
+ const PgClient = exports.PgClient = /*#__PURE__*/Context.GenericTag("@effect/sql-pg/PgClient");
58
+ const escape = /*#__PURE__*/Statement.defaultEscape("\"");
59
+ /**
60
+ * @category constructors
61
+ * @since 1.0.0
62
+ */
63
+ const make = options => Effect.gen(function* (_) {
64
+ const compiler = makeCompiler(options.transformQueryNames, options.transformJson);
65
+ const transformRows = Client.defaultTransforms(options.transformResultNames, options.transformJson).array;
66
+ const opts = {
67
+ max: options.maxConnections ?? 10,
68
+ max_lifetime: options.connectionTTL ? Math.round(Duration.toMillis(Duration.decode(options.connectionTTL)) / 1000) : undefined,
69
+ idle_timeout: options.idleTimeout ? Math.round(Duration.toMillis(Duration.decode(options.idleTimeout)) / 1000) : undefined,
70
+ connect_timeout: options.connectTimeout ? Math.round(Duration.toMillis(Duration.decode(options.connectTimeout)) / 1000) : undefined,
71
+ host: options.host,
72
+ port: options.port,
73
+ ssl: options.ssl,
74
+ path: options.path,
75
+ database: options.database,
76
+ username: options.username,
77
+ password: options.password ? Secret.value(options.password) : undefined,
78
+ fetch_types: options.fetchTypes ?? true,
79
+ debug: options.debug
80
+ };
81
+ const client = options.url ? (0, _postgres.default)(Secret.value(options.url), opts) : (0, _postgres.default)(opts);
82
+ yield* _(Effect.addFinalizer(() => Effect.promise(() => client.end())));
83
+ class ConnectionImpl {
84
+ pg;
85
+ constructor(pg) {
86
+ this.pg = pg;
87
+ }
88
+ run(query) {
89
+ return Effect.async(resume => {
90
+ query.then(_ => resume(Effect.succeed(_)), error => resume(new _Error.SqlError({
91
+ error
92
+ })));
93
+ return Effect.sync(() => query.cancel());
94
+ });
95
+ }
96
+ runTransform(query) {
97
+ return options.transformResultNames ? Effect.map(this.run(query), transformRows) : this.run(query);
98
+ }
99
+ execute(sql, params) {
100
+ return this.runTransform(this.pg.unsafe(sql, params));
101
+ }
102
+ executeWithoutTransform(sql, params) {
103
+ return this.run(this.pg.unsafe(sql, params));
104
+ }
105
+ executeValues(sql, params) {
106
+ return this.run(this.pg.unsafe(sql, params).values());
107
+ }
108
+ executeRaw(sql, params) {
109
+ return this.runTransform(this.pg.unsafe(sql, params));
110
+ }
111
+ executeStream(sql, params) {
112
+ return Stream.mapChunks(Stream.fromAsyncIterable(this.pg.unsafe(sql, params).cursor(16), error => new _Error.SqlError({
113
+ error
114
+ })), Chunk.flatMap(rows => Chunk.unsafeFromArray(options.transformResultNames ? transformRows(rows) : rows)));
115
+ }
116
+ }
117
+ return Object.assign(Client.make({
118
+ acquirer: Effect.succeed(new ConnectionImpl(client)),
119
+ transactionAcquirer: Effect.map(Effect.acquireRelease(Effect.tryPromise({
120
+ try: () => client.reserve(),
121
+ catch: error => new _Error.SqlError({
122
+ error
123
+ })
124
+ }), pg => Effect.sync(() => pg.release())), _ => new ConnectionImpl(_)),
125
+ compiler
126
+ }), {
127
+ config: options,
128
+ json: _ => PgJson(_),
129
+ array: _ => PgArray(_)
130
+ });
131
+ });
132
+ /**
133
+ * @category constructor
134
+ * @since 1.0.0
135
+ */
136
+ exports.make = make;
137
+ const layer = config => Layer.scoped(PgClient, Effect.flatMap(Config.unwrap(config), make));
138
+ /**
139
+ * @category constructor
140
+ * @since 1.0.0
141
+ */
142
+ exports.layer = layer;
143
+ const makeCompiler = (transform, transformJson = true) => {
144
+ const pg = (0, _postgres.default)({
145
+ max: 0
146
+ });
147
+ const transformValue = transformJson && transform ? Client.defaultTransforms(transform).value : undefined;
148
+ return Statement.makeCompiler({
149
+ placeholder: _ => `$${_}`,
150
+ onIdentifier: transform ? _ => escape(transform(_)) : escape,
151
+ onRecordUpdate: (placeholders, valueAlias, valueColumns, values) => [`(values ${placeholders}) AS ${valueAlias}${valueColumns}`, values.flat()],
152
+ onCustom: (type, placeholder) => {
153
+ switch (type.kind) {
154
+ case "PgJson":
155
+ {
156
+ return [placeholder(), [pg.json(transformValue !== undefined ? transformValue(type.i0) : type.i0)]];
157
+ }
158
+ case "PgArray":
159
+ {
160
+ const param = pg.array(type.i0);
161
+ const first = type.i0[0];
162
+ switch (typeof first) {
163
+ case "boolean":
164
+ {
165
+ param.type = 1000;
166
+ break;
167
+ }
168
+ case "number":
169
+ {
170
+ param.type = 1022;
171
+ break;
172
+ }
173
+ default:
174
+ {
175
+ param.type = 1009;
176
+ break;
177
+ }
178
+ }
179
+ return [placeholder(), [param]];
180
+ }
181
+ }
182
+ }
183
+ });
184
+ };
185
+ /**
186
+ * @category custom types
187
+ * @since 1.0.0
188
+ */
189
+ exports.makeCompiler = makeCompiler;
190
+ const PgJson = /*#__PURE__*/Statement.custom("PgJson");
191
+ /**
192
+ * @category custom types
193
+ * @since 1.0.0
194
+ */
195
+ const PgArray = /*#__PURE__*/Statement.custom("PgArray");
196
+ //# sourceMappingURL=Client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.js","names":["Client","_interopRequireWildcard","require","_Error","Statement","Chunk","Config","Context","Duration","Effect","Layer","Secret","Stream","_postgres","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","PgClient","exports","GenericTag","escape","defaultEscape","make","options","gen","_","compiler","makeCompiler","transformQueryNames","transformJson","transformRows","defaultTransforms","transformResultNames","array","opts","max","maxConnections","max_lifetime","connectionTTL","Math","round","toMillis","decode","undefined","idle_timeout","idleTimeout","connect_timeout","connectTimeout","host","port","ssl","path","database","username","password","value","fetch_types","fetchTypes","debug","client","url","addFinalizer","promise","end","ConnectionImpl","pg","constructor","run","query","async","resume","then","succeed","error","SqlError","sync","cancel","runTransform","map","execute","sql","params","unsafe","executeWithoutTransform","executeValues","values","executeRaw","executeStream","mapChunks","fromAsyncIterable","cursor","flatMap","rows","unsafeFromArray","assign","acquirer","transactionAcquirer","acquireRelease","tryPromise","try","reserve","catch","release","config","json","PgJson","PgArray","layer","scoped","unwrap","transform","transformValue","placeholder","onIdentifier","onRecordUpdate","placeholders","valueAlias","valueColumns","flat","onCustom","type","kind","i0","param","first","custom"],"sources":["../../src/Client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ run: true,
8
+ layer: true
9
+ };
10
+ exports.run = exports.layer = void 0;
11
+ var Command = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/platform/Command"));
12
+ var _FileSystem = /*#__PURE__*/require("@effect/platform/FileSystem");
13
+ var _Path = /*#__PURE__*/require("@effect/platform/Path");
14
+ var Migrator = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Migrator"));
15
+ Object.keys(Migrator).forEach(function (key) {
16
+ if (key === "default" || key === "__esModule") return;
17
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
18
+ if (key in exports && exports[key] === Migrator[key]) return;
19
+ Object.defineProperty(exports, key, {
20
+ enumerable: true,
21
+ get: function () {
22
+ return Migrator[key];
23
+ }
24
+ });
25
+ });
26
+ var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
27
+ var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
28
+ var Secret = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Secret"));
29
+ var Client = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Client.js"));
30
+ function _getRequireWildcardCache(e) {
31
+ if ("function" != typeof WeakMap) return null;
32
+ var r = new WeakMap(),
33
+ t = new WeakMap();
34
+ return (_getRequireWildcardCache = function (e) {
35
+ return e ? t : r;
36
+ })(e);
37
+ }
38
+ function _interopRequireWildcard(e, r) {
39
+ if (!r && e && e.__esModule) return e;
40
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
41
+ default: e
42
+ };
43
+ var t = _getRequireWildcardCache(r);
44
+ if (t && t.has(e)) return t.get(e);
45
+ var n = {
46
+ __proto__: null
47
+ },
48
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
49
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
50
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
51
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
52
+ }
53
+ return n.default = e, t && t.set(e, n), n;
54
+ }
55
+ /**
56
+ * @since 1.0.0
57
+ */
58
+
59
+ /**
60
+ * @since 1.0.0
61
+ */
62
+
63
+ /**
64
+ * @category constructor
65
+ * @since 1.0.0
66
+ */
67
+ const run = exports.run = /*#__PURE__*/Migrator.make({
68
+ getClient: Client.PgClient,
69
+ ensureTable(sql, table) {
70
+ return Effect.catchAll(sql`select ${table}::regclass`, () => sql`
71
+ CREATE TABLE ${sql(table)} (
72
+ migration_id integer primary key,
73
+ created_at timestamp with time zone not null default now(),
74
+ name text not null
75
+ )
76
+ `);
77
+ },
78
+ lockTable(sql, table) {
79
+ return sql`
80
+ LOCK TABLE ${sql(table)} IN ACCESS EXCLUSIVE MODE
81
+ `;
82
+ },
83
+ dumpSchema(sql, path, table) {
84
+ const pgDump = args => Effect.gen(function* (_) {
85
+ const dump = yield* _(Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"), Command.env({
86
+ PATH: globalThis.process?.env.PATH,
87
+ PGHOST: sql.config.host,
88
+ PGPORT: sql.config.port?.toString(),
89
+ PGUSER: sql.config.username,
90
+ PGPASSWORD: sql.config.password ? Secret.value(sql.config.password) : undefined,
91
+ PGDATABASE: sql.config.database,
92
+ PGSSLMODE: sql.config.ssl ? "require" : "prefer"
93
+ }), Command.string);
94
+ return dump.replace(/^--.*$/gm, "").replace(/^SET .*$/gm, "").replace(/^SELECT pg_catalog\..*$/gm, "").replace(/\n{2,}/gm, "\n\n").trim();
95
+ }).pipe(Effect.mapError(error => new Migrator.MigrationError({
96
+ reason: "failed",
97
+ message: error.message
98
+ })));
99
+ const pgDumpSchema = pgDump(["--schema-only"]);
100
+ const pgDumpMigrations = pgDump(["--column-inserts", "--data-only", `--table=${table}`]);
101
+ const pgDumpAll = Effect.map(Effect.all([pgDumpSchema, pgDumpMigrations], {
102
+ concurrency: 2
103
+ }), ([schema, migrations]) => schema + "\n\n" + migrations);
104
+ const pgDumpFile = path => Effect.gen(function* (_) {
105
+ const fs = yield* _(_FileSystem.FileSystem);
106
+ const path_ = yield* _(_Path.Path);
107
+ const dump = yield* _(pgDumpAll);
108
+ yield* _(fs.makeDirectory(path_.dirname(path), {
109
+ recursive: true
110
+ }));
111
+ yield* _(fs.writeFileString(path, dump));
112
+ }).pipe(Effect.mapError(error => new Migrator.MigrationError({
113
+ reason: "failed",
114
+ message: error.message
115
+ })));
116
+ return pgDumpFile(path);
117
+ }
118
+ });
119
+ /**
120
+ * @category layers
121
+ * @since 1.0.0
122
+ */
123
+ const layer = options => Layer.effectDiscard(run(options));
124
+ exports.layer = layer;
125
+ //# sourceMappingURL=Migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migrator.js","names":["Command","_interopRequireWildcard","require","_FileSystem","_Path","Migrator","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","Effect","Layer","Secret","Client","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","run","make","getClient","PgClient","ensureTable","sql","table","catchAll","lockTable","dumpSchema","path","pgDump","args","gen","_","dump","env","PATH","globalThis","process","PGHOST","config","host","PGPORT","port","toString","PGUSER","username","PGPASSWORD","password","value","undefined","PGDATABASE","database","PGSSLMODE","ssl","string","replace","trim","pipe","mapError","error","MigrationError","reason","message","pgDumpSchema","pgDumpMigrations","pgDumpAll","map","all","concurrency","schema","migrations","pgDumpFile","fs","FileSystem","path_","Path","makeDirectory","dirname","recursive","writeFileString","layer","options","effectDiscard"],"sources":["../../src/Migrator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.statement = exports.schema = exports.resolver = exports.migrator = exports.error = exports.client = void 0;
7
+ var _client = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Client.js"));
8
+ exports.client = _client;
9
+ var _error = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Error"));
10
+ exports.error = _error;
11
+ var _migrator = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Migrator.js"));
12
+ exports.migrator = _migrator;
13
+ var _resolver = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Resolver"));
14
+ exports.resolver = _resolver;
15
+ var _schema = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Schema"));
16
+ exports.schema = _schema;
17
+ var _statement = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Statement"));
18
+ exports.statement = _statement;
19
+ function _getRequireWildcardCache(e) {
20
+ if ("function" != typeof WeakMap) return null;
21
+ var r = new WeakMap(),
22
+ t = new WeakMap();
23
+ return (_getRequireWildcardCache = function (e) {
24
+ return e ? t : r;
25
+ })(e);
26
+ }
27
+ function _interopRequireWildcard(e, r) {
28
+ if (!r && e && e.__esModule) return e;
29
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
30
+ default: e
31
+ };
32
+ var t = _getRequireWildcardCache(r);
33
+ if (t && t.has(e)) return t.get(e);
34
+ var n = {
35
+ __proto__: null
36
+ },
37
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
38
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
39
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
40
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
41
+ }
42
+ return n.default = e, t && t.set(e, n), n;
43
+ }
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Client from "@effect/sql/Client";
5
+ import type { Custom, Fragment, Primitive } from "@effect/sql/Statement";
6
+ import * as Statement from "@effect/sql/Statement";
7
+ import * as Config from "effect/Config";
8
+ import type { ConfigError } from "effect/ConfigError";
9
+ import * as Context from "effect/Context";
10
+ import * as Duration from "effect/Duration";
11
+ import * as Effect from "effect/Effect";
12
+ import * as Layer from "effect/Layer";
13
+ import type { Scope } from "effect/Scope";
14
+ import * as Secret from "effect/Secret";
15
+ import postgres from "postgres";
16
+ /**
17
+ * @category models
18
+ * @since 1.0.0
19
+ */
20
+ export interface PgClient extends Client.Client {
21
+ readonly config: PgClientConfig;
22
+ readonly json: (_: unknown) => Fragment;
23
+ readonly array: (_: ReadonlyArray<Primitive>) => Fragment;
24
+ }
25
+ /**
26
+ * @category tags
27
+ * @since 1.0.0
28
+ */
29
+ export declare const PgClient: Context.Tag<PgClient, PgClient>;
30
+ /**
31
+ * @category constructors
32
+ * @since 1.0.0
33
+ */
34
+ export interface PgClientConfig {
35
+ readonly url?: Secret.Secret | undefined;
36
+ readonly host?: string | undefined;
37
+ readonly port?: number | undefined;
38
+ readonly path?: string | undefined;
39
+ readonly ssl?: boolean | undefined;
40
+ readonly database?: string | undefined;
41
+ readonly username?: string | undefined;
42
+ readonly password?: Secret.Secret | undefined;
43
+ readonly idleTimeout?: Duration.DurationInput | undefined;
44
+ readonly connectTimeout?: Duration.DurationInput | undefined;
45
+ readonly maxConnections?: number | undefined;
46
+ readonly connectionTTL?: Duration.DurationInput | undefined;
47
+ readonly transformResultNames?: ((str: string) => string) | undefined;
48
+ readonly transformQueryNames?: ((str: string) => string) | undefined;
49
+ readonly transformJson?: boolean | undefined;
50
+ readonly fetchTypes?: boolean | undefined;
51
+ readonly debug?: postgres.Options<{}>["debug"] | undefined;
52
+ }
53
+ /**
54
+ * @category constructors
55
+ * @since 1.0.0
56
+ */
57
+ export declare const make: (options: PgClientConfig) => Effect.Effect<PgClient, never, Scope>;
58
+ /**
59
+ * @category constructor
60
+ * @since 1.0.0
61
+ */
62
+ export declare const layer: (config: Config.Config.Wrap<PgClientConfig>) => Layer.Layer<PgClient, ConfigError>;
63
+ /**
64
+ * @category constructor
65
+ * @since 1.0.0
66
+ */
67
+ export declare const makeCompiler: (transform?: ((_: string) => string) | undefined, transformJson?: boolean) => Statement.Compiler;
68
+ /**
69
+ * @category custom types
70
+ * @since 1.0.0
71
+ */
72
+ export type PgCustom = PgJson | PgArray;
73
+ /**
74
+ * @category custom types
75
+ * @since 1.0.0
76
+ */
77
+ interface PgJson extends Custom<"PgJson", unknown> {
78
+ }
79
+ /**
80
+ * @category custom types
81
+ * @since 1.0.0
82
+ */
83
+ declare const PgJson: (i0: unknown, i1: void, i2: void) => Fragment;
84
+ /**
85
+ * @category custom types
86
+ * @since 1.0.0
87
+ */
88
+ interface PgArray extends Custom<"PgArray", ReadonlyArray<Primitive>> {
89
+ }
90
+ /**
91
+ * @category custom types
92
+ * @since 1.0.0
93
+ */
94
+ declare const PgArray: (i0: readonly Primitive[], i1: void, i2: void) => Fragment;
95
+ export {};
96
+ //# sourceMappingURL=Client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/Client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { CommandExecutor } from "@effect/platform/CommandExecutor";
2
+ import { FileSystem } from "@effect/platform/FileSystem";
3
+ import { Path } from "@effect/platform/Path";
4
+ import type { SqlError } from "@effect/sql/Error";
5
+ import * as Migrator from "@effect/sql/Migrator";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Layer from "effect/Layer";
8
+ import * as Client from "./Client.js";
9
+ /**
10
+ * @since 1.0.0
11
+ */
12
+ export * from "@effect/sql/Migrator";
13
+ /**
14
+ * @category constructor
15
+ * @since 1.0.0
16
+ */
17
+ export declare const run: <R>(options: Migrator.MigratorOptions<R>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, SqlError | Migrator.MigrationError, Client.PgClient | FileSystem | Path | CommandExecutor | R>;
18
+ /**
19
+ * @category layers
20
+ * @since 1.0.0
21
+ */
22
+ export declare const layer: (options: Migrator.MigratorOptions) => Layer.Layer<never, SqlError | Migrator.MigrationError, Client.PgClient | FileSystem | Path | CommandExecutor>;
23
+ //# sourceMappingURL=Migrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migrator.d.ts","sourceRoot":"","sources":["../../src/Migrator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAA;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,cAAc,sBAAsB,CAAA;AAEpC;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,CAAC,EAClB,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,KACjC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,GAAG,QAAQ,CAAC,cAAc,EAClC,MAAM,CAAC,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,eAAe,GAAG,CAAC,CA2EzD,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,YACP,SAAS,eAAe,KAChC,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,cAAc,EAAE,OAAO,QAAQ,GAAG,UAAU,GAAG,IAAI,GAAG,eAAe,CAC5E,CAAA"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ /**
5
+ * @since 1.0.0
6
+ */
7
+ export * as client from "./Client.js";
8
+ /**
9
+ * @since 1.0.0
10
+ */
11
+ export * as error from "@effect/sql/Error";
12
+ /**
13
+ * @since 1.0.0
14
+ */
15
+ export * as migrator from "./Migrator.js";
16
+ /**
17
+ * @since 1.0.0
18
+ */
19
+ export * as resolver from "@effect/sql/Resolver";
20
+ /**
21
+ * @since 1.0.0
22
+ */
23
+ export * as schema from "@effect/sql/Schema";
24
+ /**
25
+ * @since 1.0.0
26
+ */
27
+ export * as statement from "@effect/sql/Statement";
28
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,KAAK,MAAM,mBAAmB,CAAA;AAE1C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAA;AAEhD;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAE5C;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA"}