@effect/sql-pg 0.1.17 → 0.2.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/dist/cjs/Client.js +25 -12
- package/dist/cjs/Client.js.map +1 -1
- package/dist/cjs/Migrator.js +3 -17
- package/dist/cjs/Migrator.js.map +1 -1
- package/dist/cjs/index.js +1 -9
- package/dist/dts/Client.d.ts +12 -1
- package/dist/dts/Client.d.ts.map +1 -1
- package/dist/dts/Migrator.d.ts +4 -3
- package/dist/dts/Migrator.d.ts.map +1 -1
- package/dist/dts/index.d.ts +0 -16
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/Client.js +23 -10
- package/dist/esm/Client.js.map +1 -1
- package/dist/esm/Migrator.js +3 -17
- package/dist/esm/Migrator.js.map +1 -1
- package/dist/esm/index.js +0 -16
- package/dist/esm/index.js.map +1 -1
- package/package.json +3 -3
- package/src/Client.ts +52 -20
- package/src/Migrator.ts +13 -27
- package/src/index.ts +0 -20
package/dist/cjs/Client.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.makeCompiler = exports.make = exports.layer = exports.PgClient = void 0;
|
|
6
|
+
exports.makeCompiler = exports.make = exports.layer = exports.TypeId = exports.PgClient = void 0;
|
|
7
7
|
var Client = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Client"));
|
|
8
8
|
var _Error = /*#__PURE__*/require("@effect/sql/Error");
|
|
9
9
|
var Statement = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Statement"));
|
|
@@ -50,19 +50,23 @@ function _interopRequireWildcard(e, r) {
|
|
|
50
50
|
* @since 1.0.0
|
|
51
51
|
*/
|
|
52
52
|
|
|
53
|
+
/**
|
|
54
|
+
* @category type ids
|
|
55
|
+
* @since 1.0.0
|
|
56
|
+
*/
|
|
57
|
+
const TypeId = exports.TypeId = /*#__PURE__*/Symbol.for("@effect/sql-pg/Client");
|
|
53
58
|
/**
|
|
54
59
|
* @category tags
|
|
55
60
|
* @since 1.0.0
|
|
56
61
|
*/
|
|
57
|
-
const PgClient = exports.PgClient = /*#__PURE__*/Context.GenericTag("@effect/sql-pg/
|
|
58
|
-
const escape = /*#__PURE__*/Statement.defaultEscape("\"");
|
|
62
|
+
const PgClient = exports.PgClient = /*#__PURE__*/Context.GenericTag("@effect/sql-pg/Client");
|
|
59
63
|
/**
|
|
60
64
|
* @category constructors
|
|
61
65
|
* @since 1.0.0
|
|
62
66
|
*/
|
|
63
67
|
const make = options => Effect.gen(function* (_) {
|
|
64
68
|
const compiler = makeCompiler(options.transformQueryNames, options.transformJson);
|
|
65
|
-
const transformRows =
|
|
69
|
+
const transformRows = Statement.defaultTransforms(options.transformResultNames, options.transformJson).array;
|
|
66
70
|
const opts = {
|
|
67
71
|
max: options.maxConnections ?? 10,
|
|
68
72
|
max_lifetime: options.connectionTTL ? Math.round(Duration.toMillis(Duration.decode(options.connectionTTL)) / 1000) : undefined,
|
|
@@ -127,6 +131,7 @@ const make = options => Effect.gen(function* (_) {
|
|
|
127
131
|
compiler,
|
|
128
132
|
spanAttributes: [["db.system", "postgresql"], ["db.name", opts.database ?? options.username ?? "postgres"], ["server.address", opts.host ?? "localhost"], ["server.port", opts.port ?? 5432]]
|
|
129
133
|
}), {
|
|
134
|
+
[TypeId]: TypeId,
|
|
130
135
|
config: options,
|
|
131
136
|
json: _ => PgJson(_),
|
|
132
137
|
array: _ => PgArray(_)
|
|
@@ -137,7 +142,7 @@ const make = options => Effect.gen(function* (_) {
|
|
|
137
142
|
* @since 1.0.0
|
|
138
143
|
*/
|
|
139
144
|
exports.make = make;
|
|
140
|
-
const layer = config => Layer.
|
|
145
|
+
const layer = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(PgClient, client).pipe(Context.add(Client.Client, client)))));
|
|
141
146
|
/**
|
|
142
147
|
* @category constructor
|
|
143
148
|
* @since 1.0.0
|
|
@@ -147,16 +152,23 @@ const makeCompiler = (transform, transformJson = true) => {
|
|
|
147
152
|
const pg = (0, _postgres.default)({
|
|
148
153
|
max: 0
|
|
149
154
|
});
|
|
150
|
-
const transformValue = transformJson && transform ?
|
|
155
|
+
const transformValue = transformJson && transform ? Statement.defaultTransforms(transform).value : undefined;
|
|
151
156
|
return Statement.makeCompiler({
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
157
|
+
dialect: "pg",
|
|
158
|
+
placeholder(_) {
|
|
159
|
+
return `$${_}`;
|
|
160
|
+
},
|
|
161
|
+
onIdentifier: transform ? function (value, withoutTransform) {
|
|
162
|
+
return withoutTransform ? escape(value) : escape(transform(value));
|
|
163
|
+
} : escape,
|
|
164
|
+
onRecordUpdate(placeholders, valueAlias, valueColumns, values, returning) {
|
|
165
|
+
return [`(values ${placeholders}) AS ${valueAlias}${valueColumns}${returning ? ` RETURNING ${returning[0]}` : ""}`, returning ? values.flat().concat(returning[1]) : values.flat()];
|
|
166
|
+
},
|
|
167
|
+
onCustom(type, placeholder, withoutTransform) {
|
|
156
168
|
switch (type.kind) {
|
|
157
169
|
case "PgJson":
|
|
158
170
|
{
|
|
159
|
-
return [placeholder(), [pg.json(transformValue
|
|
171
|
+
return [placeholder(), [pg.json(withoutTransform || transformValue === undefined ? type.i0 : transformValue(type.i0))]];
|
|
160
172
|
}
|
|
161
173
|
case "PgArray":
|
|
162
174
|
{
|
|
@@ -185,11 +197,12 @@ const makeCompiler = (transform, transformJson = true) => {
|
|
|
185
197
|
}
|
|
186
198
|
});
|
|
187
199
|
};
|
|
200
|
+
exports.makeCompiler = makeCompiler;
|
|
201
|
+
const escape = /*#__PURE__*/Statement.defaultEscape("\"");
|
|
188
202
|
/**
|
|
189
203
|
* @category custom types
|
|
190
204
|
* @since 1.0.0
|
|
191
205
|
*/
|
|
192
|
-
exports.makeCompiler = makeCompiler;
|
|
193
206
|
const PgJson = /*#__PURE__*/Statement.custom("PgJson");
|
|
194
207
|
/**
|
|
195
208
|
* @category custom types
|
package/dist/cjs/Client.js.map
CHANGED
|
@@ -1 +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","
|
|
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","TypeId","exports","Symbol","for","PgClient","GenericTag","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","prepare","types","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","spanAttributes","config","json","PgJson","PgArray","layer","scopedContext","unwrap","pipe","add","transform","transformValue","dialect","placeholder","onIdentifier","withoutTransform","escape","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","flat","concat","onCustom","type","kind","i0","param","first","defaultEscape","custom"],"sources":["../../src/Client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/cjs/Migrator.js
CHANGED
|
@@ -26,7 +26,7 @@ Object.keys(Migrator).forEach(function (key) {
|
|
|
26
26
|
var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
|
|
27
27
|
var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
|
|
28
28
|
var Secret = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Secret"));
|
|
29
|
-
var
|
|
29
|
+
var _Client = /*#__PURE__*/require("./Client.js");
|
|
30
30
|
function _getRequireWildcardCache(e) {
|
|
31
31
|
if ("function" != typeof WeakMap) return null;
|
|
32
32
|
var r = new WeakMap(),
|
|
@@ -65,23 +65,9 @@ function _interopRequireWildcard(e, r) {
|
|
|
65
65
|
* @since 1.0.0
|
|
66
66
|
*/
|
|
67
67
|
const run = exports.run = /*#__PURE__*/Migrator.make({
|
|
68
|
-
|
|
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) {
|
|
68
|
+
dumpSchema(path, table) {
|
|
84
69
|
const pgDump = args => Effect.gen(function* (_) {
|
|
70
|
+
const sql = yield* _Client.PgClient;
|
|
85
71
|
const dump = yield* _(Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"), Command.env({
|
|
86
72
|
PATH: globalThis.process?.env.PATH,
|
|
87
73
|
PGHOST: sql.config.host,
|
package/dist/cjs/Migrator.js.map
CHANGED
|
@@ -1 +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","
|
|
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","dumpSchema","path","table","pgDump","args","gen","_","sql","PgClient","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":";;;;;;;;;;AAGA,IAAAA,OAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAEA,IAAAC,WAAA,gBAAAD,OAAA;AACA,IAAAE,KAAA,gBAAAF,OAAA;AAGA,IAAAG,QAAA,gBAAAJ,uBAAA,eAAAC,OAAA;AASAI,MAAA,CAAAC,IAAA,CAAAF,QAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,QAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,QAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AARA,IAAAS,MAAA,gBAAAjB,uBAAA,eAAAC,OAAA;AACA,IAAAiB,KAAA,gBAAAlB,uBAAA,eAAAC,OAAA;AACA,IAAAkB,MAAA,gBAAAnB,uBAAA,eAAAC,OAAA;AACA,IAAAmB,OAAA,gBAAAnB,OAAA;AAAsC,SAAAoB,yBAAAC,CAAA;EAAA,yBAAAC,OAAA;EAAA,IAAAC,CAAA,OAAAD,OAAA;IAAAE,CAAA,OAAAF,OAAA;EAAA,QAAAF,wBAAA,YAAAA,CAAAC,CAAA;IAAA,OAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA;EAAA,GAAAF,CAAA;AAAA;AAAA,SAAAtB,wBAAAsB,CAAA,EAAAE,CAAA;EAAA,KAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA;EAAA,aAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA;IAAAK,OAAA,EAAAL;EAAA;EAAA,IAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA;EAAA,IAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAT,GAAA,CAAAM,CAAA;EAAA,IAAAO,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAA1B,MAAA,CAAAS,cAAA,IAAAT,MAAA,CAAA2B,wBAAA;EAAA,SAAAC,CAAA,IAAAX,CAAA,oBAAAW,CAAA,OAAAvB,cAAA,CAAAC,IAAA,CAAAW,CAAA,EAAAW,CAAA;IAAA,IAAAC,CAAA,GAAAH,CAAA,GAAA1B,MAAA,CAAA2B,wBAAA,CAAAV,CAAA,EAAAW,CAAA;IAAAC,CAAA,KAAAA,CAAA,CAAAlB,GAAA,IAAAkB,CAAA,CAAAC,GAAA,IAAA9B,MAAA,CAAAS,cAAA,CAAAe,CAAA,EAAAI,CAAA,EAAAC,CAAA,IAAAL,CAAA,CAAAI,CAAA,IAAAX,CAAA,CAAAW,CAAA;EAAA;EAAA,OAAAJ,CAAA,CAAAF,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAU,GAAA,CAAAb,CAAA,EAAAO,CAAA,GAAAA,CAAA;AAAA;AAbtC;;;;AAeA;;;;AAKA;;;;AAIO,MAAMO,GAAG,GAAAvB,OAAA,CAAAuB,GAAA,gBAMZhC,QAAQ,CAACiC,IAAI,CAAC;EAChBC,UAAUA,CAACC,IAAI,EAAEC,KAAK;IACpB,MAAMC,MAAM,GAAIC,IAAmB,IACjCzB,MAAM,CAAC0B,GAAG,CAAC,WAAUC,CAAC;MACpB,MAAMC,GAAG,GAAG,OAAOzB,OAAA,CAAA0B,QAAQ;MAC3B,MAAMC,IAAI,GAAG,OAAOH,CAAC,CACnB7C,OAAO,CAACsC,IAAI,CAAC,SAAS,EAAE,GAAGK,IAAI,EAAE,YAAY,EAAE,iBAAiB,CAAC,EACjE3C,OAAO,CAACiD,GAAG,CAAC;QACVC,IAAI,EAAGC,UAAkB,CAACC,OAAO,EAAEH,GAAG,CAACC,IAAI;QAC3CG,MAAM,EAAEP,GAAG,CAACQ,MAAM,CAACC,IAAI;QACvBC,MAAM,EAAEV,GAAG,CAACQ,MAAM,CAACG,IAAI,EAAEC,QAAQ,EAAE;QACnCC,MAAM,EAAEb,GAAG,CAACQ,MAAM,CAACM,QAAQ;QAC3BC,UAAU,EAAEf,GAAG,CAACQ,MAAM,CAACQ,QAAQ,GAC3B1C,MAAM,CAAC2C,KAAK,CAACjB,GAAG,CAACQ,MAAM,CAACQ,QAAQ,CAAC,GACjCE,SAAS;QACbC,UAAU,EAAEnB,GAAG,CAACQ,MAAM,CAACY,QAAQ;QAC/BC,SAAS,EAAErB,GAAG,CAACQ,MAAM,CAACc,GAAG,GAAG,SAAS,GAAG;OACzC,CAAC,EACFpE,OAAO,CAACqE,MAAM,CACf;MAED,OAAOrB,IAAI,CAACsB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAChCA,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CACzBA,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC,CACxCA,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC,CAC3BC,IAAI,EAAE;IACX,CAAC,CAAC,CAACC,IAAI,CACLtD,MAAM,CAACuD,QAAQ,CAAEC,KAAK,IAAK,IAAIrE,QAAQ,CAACsE,cAAc,CAAC;MAAEC,MAAM,EAAE,QAAQ;MAAEC,OAAO,EAAEH,KAAK,CAACG;IAAO,CAAE,CAAC,CAAC,CACtG;IAEH,MAAMC,YAAY,GAAGpC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC;IAE9C,MAAMqC,gBAAgB,GAAGrC,MAAM,CAAC,CAC9B,kBAAkB,EAClB,aAAa,EACb,WAAWD,KAAK,EAAE,CACnB,CAAC;IAEF,MAAMuC,SAAS,GAAG9D,MAAM,CAAC+D,GAAG,CAC1B/D,MAAM,CAACgE,GAAG,CAAC,CAACJ,YAAY,EAAEC,gBAAgB,CAAC,EAAE;MAAEI,WAAW,EAAE;IAAC,CAAE,CAAC,EAChE,CAAC,CAACC,MAAM,EAAEC,UAAU,CAAC,KAAKD,MAAM,GAAG,MAAM,GAAGC,UAAU,CACvD;IAED,MAAMC,UAAU,GAAI9C,IAAY,IAC9BtB,MAAM,CAAC0B,GAAG,CAAC,WAAUC,CAAC;MACpB,MAAM0C,EAAE,GAAG,OAAO1C,CAAC,CAAC1C,WAAA,CAAAqF,UAAU,CAAC;MAC/B,MAAMC,KAAK,GAAG,OAAO5C,CAAC,CAACzC,KAAA,CAAAsF,IAAI,CAAC;MAC5B,MAAM1C,IAAI,GAAG,OAAOH,CAAC,CAACmC,SAAS,CAAC;MAChC,OAAOnC,CAAC,CAAC0C,EAAE,CAACI,aAAa,CAACF,KAAK,CAACG,OAAO,CAACpD,IAAI,CAAC,EAAE;QAAEqD,SAAS,EAAE;MAAI,CAAE,CAAC,CAAC;MACpE,OAAOhD,CAAC,CAAC0C,EAAE,CAACO,eAAe,CAACtD,IAAI,EAAEQ,IAAI,CAAC,CAAC;IAC1C,CAAC,CAAC,CAACwB,IAAI,CACLtD,MAAM,CAACuD,QAAQ,CAAEC,KAAK,IAAK,IAAIrE,QAAQ,CAACsE,cAAc,CAAC;MAAEC,MAAM,EAAE,QAAQ;MAAEC,OAAO,EAAEH,KAAK,CAACG;IAAO,CAAE,CAAC,CAAC,CACtG;IAEH,OAAOS,UAAU,CAAC9C,IAAI,CAAC;EACzB;CACD,CAAC;AAEF;;;;AAIO,MAAMuD,KAAK,GAChBC,OAAoC,IAKjC7E,KAAK,CAAC8E,aAAa,CAAC5D,GAAG,CAAC2D,OAAO,CAAC,CAAC;AAAAlF,OAAA,CAAAiF,KAAA,GAAAA,KAAA","ignoreList":[]}
|
package/dist/cjs/index.js
CHANGED
|
@@ -3,19 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.migrator = exports.client = void 0;
|
|
7
7
|
var _client = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Client.js"));
|
|
8
8
|
exports.client = _client;
|
|
9
|
-
var _error = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Error"));
|
|
10
|
-
exports.error = _error;
|
|
11
9
|
var _migrator = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Migrator.js"));
|
|
12
10
|
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
11
|
function _getRequireWildcardCache(e) {
|
|
20
12
|
if ("function" != typeof WeakMap) return null;
|
|
21
13
|
var r = new WeakMap(),
|
package/dist/dts/Client.d.ts
CHANGED
|
@@ -13,11 +13,22 @@ import * as Layer from "effect/Layer";
|
|
|
13
13
|
import type { Scope } from "effect/Scope";
|
|
14
14
|
import * as Secret from "effect/Secret";
|
|
15
15
|
import postgres from "postgres";
|
|
16
|
+
/**
|
|
17
|
+
* @category type ids
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*/
|
|
20
|
+
export declare const TypeId: unique symbol;
|
|
21
|
+
/**
|
|
22
|
+
* @category type ids
|
|
23
|
+
* @since 1.0.0
|
|
24
|
+
*/
|
|
25
|
+
export type TypeId = typeof TypeId;
|
|
16
26
|
/**
|
|
17
27
|
* @category models
|
|
18
28
|
* @since 1.0.0
|
|
19
29
|
*/
|
|
20
30
|
export interface PgClient extends Client.Client {
|
|
31
|
+
readonly [TypeId]: TypeId;
|
|
21
32
|
readonly config: PgClientConfig;
|
|
22
33
|
readonly json: (_: unknown) => Fragment;
|
|
23
34
|
readonly array: (_: ReadonlyArray<Primitive>) => Fragment;
|
|
@@ -61,7 +72,7 @@ export declare const make: (options: PgClientConfig) => Effect.Effect<PgClient,
|
|
|
61
72
|
* @category constructor
|
|
62
73
|
* @since 1.0.0
|
|
63
74
|
*/
|
|
64
|
-
export declare const layer: (config: Config.Config.Wrap<PgClientConfig>) => Layer.Layer<PgClient, ConfigError>;
|
|
75
|
+
export declare const layer: (config: Config.Config.Wrap<PgClientConfig>) => Layer.Layer<PgClient | Client.Client, ConfigError>;
|
|
65
76
|
/**
|
|
66
77
|
* @category constructor
|
|
67
78
|
* @since 1.0.0
|
package/dist/dts/Client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/Client.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAA;AAG5C,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACxE,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAElD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,QAAQ,MAAM,UAAU,CAAA;AAE/B;;;GAGG;AACH,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,MAAM;IAC7C,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAA;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,QAAQ,CAAA;IACvC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAA;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../src/Client.ts"],"names":[],"mappings":"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"}
|
package/dist/dts/Migrator.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import type { CommandExecutor } from "@effect/platform/CommandExecutor";
|
|
2
2
|
import { FileSystem } from "@effect/platform/FileSystem";
|
|
3
3
|
import { Path } from "@effect/platform/Path";
|
|
4
|
+
import type * as Client from "@effect/sql/Client";
|
|
4
5
|
import type { SqlError } from "@effect/sql/Error";
|
|
5
6
|
import * as Migrator from "@effect/sql/Migrator";
|
|
6
7
|
import * as Effect from "effect/Effect";
|
|
7
8
|
import * as Layer from "effect/Layer";
|
|
8
|
-
import
|
|
9
|
+
import { PgClient } from "./Client.js";
|
|
9
10
|
/**
|
|
10
11
|
* @since 1.0.0
|
|
11
12
|
*/
|
|
@@ -14,10 +15,10 @@ export * from "@effect/sql/Migrator";
|
|
|
14
15
|
* @category constructor
|
|
15
16
|
* @since 1.0.0
|
|
16
17
|
*/
|
|
17
|
-
export declare const run: <
|
|
18
|
+
export declare const run: <R2 = never>(options: Migrator.MigratorOptions<R2>) => Effect.Effect<ReadonlyArray<readonly [id: number, name: string]>, Migrator.MigrationError | SqlError, FileSystem | Path | PgClient | Client.Client | CommandExecutor | R2>;
|
|
18
19
|
/**
|
|
19
20
|
* @category layers
|
|
20
21
|
* @since 1.0.0
|
|
21
22
|
*/
|
|
22
|
-
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never,
|
|
23
|
+
export declare const layer: <R>(options: Migrator.MigratorOptions<R>) => Layer.Layer<never, Migrator.MigrationError | SqlError, PgClient | Client.Client | CommandExecutor | FileSystem | Path | R>;
|
|
23
24
|
//# sourceMappingURL=Migrator.d.ts.map
|
|
@@ -1 +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,
|
|
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,KAAK,MAAM,MAAM,oBAAoB,CAAA;AACjD,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,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAEtC;;GAEG;AACH,cAAc,sBAAsB,CAAA;AAEpC;;;GAGG;AACH,eAAO,MAAM,GAAG,EAAE,CAAC,EAAE,GAAG,KAAK,EAC3B,OAAO,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC,KAClC,MAAM,CAAC,MAAM,CAChB,aAAa,CAAC,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,EAClD,QAAQ,CAAC,cAAc,GAAG,QAAQ,EAClC,UAAU,GAAG,IAAI,GAAG,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,eAAe,GAAG,EAAE,CAyDnE,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,eACP,SAAS,eAAe,CAAC,CAAC,CAAC,KACnC,MAAM,KAAK,CACZ,KAAK,EACL,SAAS,cAAc,GAAG,QAAQ,EAClC,QAAQ,GAAG,OAAO,MAAM,GAAG,eAAe,GAAG,UAAU,GAAG,IAAI,GAAG,CAAC,CAC9B,CAAA"}
|
package/dist/dts/index.d.ts
CHANGED
|
@@ -5,24 +5,8 @@
|
|
|
5
5
|
* @since 1.0.0
|
|
6
6
|
*/
|
|
7
7
|
export * as client from "./Client.js";
|
|
8
|
-
/**
|
|
9
|
-
* @since 1.0.0
|
|
10
|
-
*/
|
|
11
|
-
export * as error from "@effect/sql/Error";
|
|
12
8
|
/**
|
|
13
9
|
* @since 1.0.0
|
|
14
10
|
*/
|
|
15
11
|
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
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/dts/index.d.ts.map
CHANGED
|
@@ -1 +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,
|
|
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,QAAQ,MAAM,eAAe,CAAA"}
|
package/dist/esm/Client.js
CHANGED
|
@@ -13,19 +13,23 @@ import * as Layer from "effect/Layer";
|
|
|
13
13
|
import * as Secret from "effect/Secret";
|
|
14
14
|
import * as Stream from "effect/Stream";
|
|
15
15
|
import postgres from "postgres";
|
|
16
|
+
/**
|
|
17
|
+
* @category type ids
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
*/
|
|
20
|
+
export const TypeId = /*#__PURE__*/Symbol.for("@effect/sql-pg/Client");
|
|
16
21
|
/**
|
|
17
22
|
* @category tags
|
|
18
23
|
* @since 1.0.0
|
|
19
24
|
*/
|
|
20
|
-
export const PgClient = /*#__PURE__*/Context.GenericTag("@effect/sql-pg/
|
|
21
|
-
const escape = /*#__PURE__*/Statement.defaultEscape("\"");
|
|
25
|
+
export const PgClient = /*#__PURE__*/Context.GenericTag("@effect/sql-pg/Client");
|
|
22
26
|
/**
|
|
23
27
|
* @category constructors
|
|
24
28
|
* @since 1.0.0
|
|
25
29
|
*/
|
|
26
30
|
export const make = options => Effect.gen(function* (_) {
|
|
27
31
|
const compiler = makeCompiler(options.transformQueryNames, options.transformJson);
|
|
28
|
-
const transformRows =
|
|
32
|
+
const transformRows = Statement.defaultTransforms(options.transformResultNames, options.transformJson).array;
|
|
29
33
|
const opts = {
|
|
30
34
|
max: options.maxConnections ?? 10,
|
|
31
35
|
max_lifetime: options.connectionTTL ? Math.round(Duration.toMillis(Duration.decode(options.connectionTTL)) / 1000) : undefined,
|
|
@@ -90,6 +94,7 @@ export const make = options => Effect.gen(function* (_) {
|
|
|
90
94
|
compiler,
|
|
91
95
|
spanAttributes: [["db.system", "postgresql"], ["db.name", opts.database ?? options.username ?? "postgres"], ["server.address", opts.host ?? "localhost"], ["server.port", opts.port ?? 5432]]
|
|
92
96
|
}), {
|
|
97
|
+
[TypeId]: TypeId,
|
|
93
98
|
config: options,
|
|
94
99
|
json: _ => PgJson(_),
|
|
95
100
|
array: _ => PgArray(_)
|
|
@@ -99,7 +104,7 @@ export const make = options => Effect.gen(function* (_) {
|
|
|
99
104
|
* @category constructor
|
|
100
105
|
* @since 1.0.0
|
|
101
106
|
*/
|
|
102
|
-
export const layer = config => Layer.
|
|
107
|
+
export const layer = config => Layer.scopedContext(Config.unwrap(config).pipe(Effect.flatMap(make), Effect.map(client => Context.make(PgClient, client).pipe(Context.add(Client.Client, client)))));
|
|
103
108
|
/**
|
|
104
109
|
* @category constructor
|
|
105
110
|
* @since 1.0.0
|
|
@@ -108,16 +113,23 @@ export const makeCompiler = (transform, transformJson = true) => {
|
|
|
108
113
|
const pg = postgres({
|
|
109
114
|
max: 0
|
|
110
115
|
});
|
|
111
|
-
const transformValue = transformJson && transform ?
|
|
116
|
+
const transformValue = transformJson && transform ? Statement.defaultTransforms(transform).value : undefined;
|
|
112
117
|
return Statement.makeCompiler({
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
118
|
+
dialect: "pg",
|
|
119
|
+
placeholder(_) {
|
|
120
|
+
return `$${_}`;
|
|
121
|
+
},
|
|
122
|
+
onIdentifier: transform ? function (value, withoutTransform) {
|
|
123
|
+
return withoutTransform ? escape(value) : escape(transform(value));
|
|
124
|
+
} : escape,
|
|
125
|
+
onRecordUpdate(placeholders, valueAlias, valueColumns, values, returning) {
|
|
126
|
+
return [`(values ${placeholders}) AS ${valueAlias}${valueColumns}${returning ? ` RETURNING ${returning[0]}` : ""}`, returning ? values.flat().concat(returning[1]) : values.flat()];
|
|
127
|
+
},
|
|
128
|
+
onCustom(type, placeholder, withoutTransform) {
|
|
117
129
|
switch (type.kind) {
|
|
118
130
|
case "PgJson":
|
|
119
131
|
{
|
|
120
|
-
return [placeholder(), [pg.json(transformValue
|
|
132
|
+
return [placeholder(), [pg.json(withoutTransform || transformValue === undefined ? type.i0 : transformValue(type.i0))]];
|
|
121
133
|
}
|
|
122
134
|
case "PgArray":
|
|
123
135
|
{
|
|
@@ -146,6 +158,7 @@ export const makeCompiler = (transform, transformJson = true) => {
|
|
|
146
158
|
}
|
|
147
159
|
});
|
|
148
160
|
};
|
|
161
|
+
const escape = /*#__PURE__*/Statement.defaultEscape("\"");
|
|
149
162
|
/**
|
|
150
163
|
* @category custom types
|
|
151
164
|
* @since 1.0.0
|
package/dist/esm/Client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Client.js","names":["Client","SqlError","Statement","Chunk","Config","Context","Duration","Effect","Layer","Secret","Stream","postgres","
|
|
1
|
+
{"version":3,"file":"Client.js","names":["Client","SqlError","Statement","Chunk","Config","Context","Duration","Effect","Layer","Secret","Stream","postgres","TypeId","Symbol","for","PgClient","GenericTag","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","prepare","types","debug","client","url","addFinalizer","promise","end","ConnectionImpl","pg","constructor","run","query","async","resume","then","succeed","error","sync","cancel","runTransform","map","execute","sql","params","unsafe","executeWithoutTransform","executeValues","values","executeRaw","executeStream","mapChunks","fromAsyncIterable","cursor","flatMap","rows","unsafeFromArray","Object","assign","acquirer","transactionAcquirer","acquireRelease","tryPromise","try","reserve","catch","release","spanAttributes","config","json","PgJson","PgArray","layer","scopedContext","unwrap","pipe","add","transform","transformValue","dialect","placeholder","onIdentifier","withoutTransform","escape","onRecordUpdate","placeholders","valueAlias","valueColumns","returning","flat","concat","onCustom","type","kind","i0","param","first","defaultEscape","custom"],"sources":["../../src/Client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/Migrator.js
CHANGED
|
@@ -8,7 +8,7 @@ import * as Migrator from "@effect/sql/Migrator";
|
|
|
8
8
|
import * as Effect from "effect/Effect";
|
|
9
9
|
import * as Layer from "effect/Layer";
|
|
10
10
|
import * as Secret from "effect/Secret";
|
|
11
|
-
import
|
|
11
|
+
import { PgClient } from "./Client.js";
|
|
12
12
|
/**
|
|
13
13
|
* @since 1.0.0
|
|
14
14
|
*/
|
|
@@ -18,23 +18,9 @@ export * from "@effect/sql/Migrator";
|
|
|
18
18
|
* @since 1.0.0
|
|
19
19
|
*/
|
|
20
20
|
export const run = /*#__PURE__*/Migrator.make({
|
|
21
|
-
|
|
22
|
-
ensureTable(sql, table) {
|
|
23
|
-
return Effect.catchAll(sql`select ${table}::regclass`, () => sql`
|
|
24
|
-
CREATE TABLE ${sql(table)} (
|
|
25
|
-
migration_id integer primary key,
|
|
26
|
-
created_at timestamp with time zone not null default now(),
|
|
27
|
-
name text not null
|
|
28
|
-
)
|
|
29
|
-
`);
|
|
30
|
-
},
|
|
31
|
-
lockTable(sql, table) {
|
|
32
|
-
return sql`
|
|
33
|
-
LOCK TABLE ${sql(table)} IN ACCESS EXCLUSIVE MODE
|
|
34
|
-
`;
|
|
35
|
-
},
|
|
36
|
-
dumpSchema(sql, path, table) {
|
|
21
|
+
dumpSchema(path, table) {
|
|
37
22
|
const pgDump = args => Effect.gen(function* (_) {
|
|
23
|
+
const sql = yield* PgClient;
|
|
38
24
|
const dump = yield* _(Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"), Command.env({
|
|
39
25
|
PATH: globalThis.process?.env.PATH,
|
|
40
26
|
PGHOST: sql.config.host,
|
package/dist/esm/Migrator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Migrator.js","names":["Command","FileSystem","Path","Migrator","Effect","Layer","Secret","
|
|
1
|
+
{"version":3,"file":"Migrator.js","names":["Command","FileSystem","Path","Migrator","Effect","Layer","Secret","PgClient","run","make","dumpSchema","path","table","pgDump","args","gen","_","sql","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","path_","makeDirectory","dirname","recursive","writeFileString","layer","options","effectDiscard"],"sources":["../../src/Migrator.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
|
@@ -5,24 +5,8 @@
|
|
|
5
5
|
* @since 1.0.0
|
|
6
6
|
*/
|
|
7
7
|
export * as client from "./Client.js";
|
|
8
|
-
/**
|
|
9
|
-
* @since 1.0.0
|
|
10
|
-
*/
|
|
11
|
-
export * as error from "@effect/sql/Error";
|
|
12
8
|
/**
|
|
13
9
|
* @since 1.0.0
|
|
14
10
|
*/
|
|
15
11
|
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
12
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["client","
|
|
1
|
+
{"version":3,"file":"index.js","names":["client","migrator"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/sql-pg",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "A PostgreSQL toolkit for Effect",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"postgres": "^3.4.4"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|
|
16
|
-
"@effect/platform": "^0.52.
|
|
17
|
-
"@effect/sql": "^0.1
|
|
16
|
+
"@effect/platform": "^0.52.3",
|
|
17
|
+
"@effect/sql": "^0.2.1",
|
|
18
18
|
"effect": "^3.1.2"
|
|
19
19
|
},
|
|
20
20
|
"publishConfig": {
|
package/src/Client.ts
CHANGED
|
@@ -19,11 +19,24 @@ import * as Stream from "effect/Stream"
|
|
|
19
19
|
import type { PendingQuery, PendingValuesQuery } from "postgres"
|
|
20
20
|
import postgres from "postgres"
|
|
21
21
|
|
|
22
|
+
/**
|
|
23
|
+
* @category type ids
|
|
24
|
+
* @since 1.0.0
|
|
25
|
+
*/
|
|
26
|
+
export const TypeId: unique symbol = Symbol.for("@effect/sql-pg/Client")
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @category type ids
|
|
30
|
+
* @since 1.0.0
|
|
31
|
+
*/
|
|
32
|
+
export type TypeId = typeof TypeId
|
|
33
|
+
|
|
22
34
|
/**
|
|
23
35
|
* @category models
|
|
24
36
|
* @since 1.0.0
|
|
25
37
|
*/
|
|
26
38
|
export interface PgClient extends Client.Client {
|
|
39
|
+
readonly [TypeId]: TypeId
|
|
27
40
|
readonly config: PgClientConfig
|
|
28
41
|
readonly json: (_: unknown) => Fragment
|
|
29
42
|
readonly array: (_: ReadonlyArray<Primitive>) => Fragment
|
|
@@ -33,7 +46,7 @@ export interface PgClient extends Client.Client {
|
|
|
33
46
|
* @category tags
|
|
34
47
|
* @since 1.0.0
|
|
35
48
|
*/
|
|
36
|
-
export const PgClient
|
|
49
|
+
export const PgClient = Context.GenericTag<PgClient>("@effect/sql-pg/Client")
|
|
37
50
|
|
|
38
51
|
/**
|
|
39
52
|
* @category constructors
|
|
@@ -66,8 +79,6 @@ export interface PgClientConfig {
|
|
|
66
79
|
readonly debug?: postgres.Options<{}>["debug"] | undefined
|
|
67
80
|
}
|
|
68
81
|
|
|
69
|
-
const escape = Statement.defaultEscape("\"")
|
|
70
|
-
|
|
71
82
|
type PartialWithUndefined<T> = { [K in keyof T]?: T[K] | undefined }
|
|
72
83
|
|
|
73
84
|
/**
|
|
@@ -82,8 +93,7 @@ export const make = (
|
|
|
82
93
|
options.transformQueryNames,
|
|
83
94
|
options.transformJson
|
|
84
95
|
)
|
|
85
|
-
|
|
86
|
-
const transformRows = Client.defaultTransforms(
|
|
96
|
+
const transformRows = Statement.defaultTransforms(
|
|
87
97
|
options.transformResultNames!,
|
|
88
98
|
options.transformJson
|
|
89
99
|
).array
|
|
@@ -195,6 +205,7 @@ export const make = (
|
|
|
195
205
|
]
|
|
196
206
|
}),
|
|
197
207
|
{
|
|
208
|
+
[TypeId]: TypeId as TypeId,
|
|
198
209
|
config: options,
|
|
199
210
|
json: (_: unknown) => PgJson(_),
|
|
200
211
|
array: (_: ReadonlyArray<Primitive>) => PgArray(_)
|
|
@@ -206,11 +217,19 @@ export const make = (
|
|
|
206
217
|
* @category constructor
|
|
207
218
|
* @since 1.0.0
|
|
208
219
|
*/
|
|
209
|
-
export const layer
|
|
210
|
-
config: Config.Config.Wrap<PgClientConfig>
|
|
211
|
-
) => Layer.Layer<PgClient, ConfigError> = (
|
|
220
|
+
export const layer = (
|
|
212
221
|
config: Config.Config.Wrap<PgClientConfig>
|
|
213
|
-
)
|
|
222
|
+
): Layer.Layer<PgClient | Client.Client, ConfigError> =>
|
|
223
|
+
Layer.scopedContext(
|
|
224
|
+
Config.unwrap(config).pipe(
|
|
225
|
+
Effect.flatMap(make),
|
|
226
|
+
Effect.map((client) =>
|
|
227
|
+
Context.make(PgClient, client).pipe(
|
|
228
|
+
Context.add(Client.Client, client)
|
|
229
|
+
)
|
|
230
|
+
)
|
|
231
|
+
)
|
|
232
|
+
)
|
|
214
233
|
|
|
215
234
|
/**
|
|
216
235
|
* @category constructor
|
|
@@ -223,26 +242,37 @@ export const makeCompiler = (
|
|
|
223
242
|
const pg = postgres({ max: 0 })
|
|
224
243
|
|
|
225
244
|
const transformValue = transformJson && transform
|
|
226
|
-
?
|
|
245
|
+
? Statement.defaultTransforms(transform).value
|
|
227
246
|
: undefined
|
|
228
247
|
|
|
229
248
|
return Statement.makeCompiler<PgCustom>({
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
249
|
+
dialect: "pg",
|
|
250
|
+
placeholder(_) {
|
|
251
|
+
return `$${_}`
|
|
252
|
+
},
|
|
253
|
+
onIdentifier: transform ?
|
|
254
|
+
function(value, withoutTransform) {
|
|
255
|
+
return withoutTransform ? escape(value) : escape(transform(value))
|
|
256
|
+
} :
|
|
257
|
+
escape,
|
|
258
|
+
onRecordUpdate(placeholders, valueAlias, valueColumns, values, returning) {
|
|
259
|
+
return [
|
|
260
|
+
`(values ${placeholders}) AS ${valueAlias}${valueColumns}${returning ? ` RETURNING ${returning[0]}` : ""}`,
|
|
261
|
+
returning ?
|
|
262
|
+
values.flat().concat(returning[1]) :
|
|
263
|
+
values.flat()
|
|
264
|
+
]
|
|
265
|
+
},
|
|
266
|
+
onCustom(type, placeholder, withoutTransform) {
|
|
237
267
|
switch (type.kind) {
|
|
238
268
|
case "PgJson": {
|
|
239
269
|
return [
|
|
240
270
|
placeholder(),
|
|
241
271
|
[
|
|
242
272
|
pg.json(
|
|
243
|
-
transformValue
|
|
244
|
-
?
|
|
245
|
-
: type.i0
|
|
273
|
+
withoutTransform || transformValue === undefined
|
|
274
|
+
? type.i0
|
|
275
|
+
: transformValue(type.i0)
|
|
246
276
|
) as any
|
|
247
277
|
]
|
|
248
278
|
]
|
|
@@ -271,6 +301,8 @@ export const makeCompiler = (
|
|
|
271
301
|
})
|
|
272
302
|
}
|
|
273
303
|
|
|
304
|
+
const escape = Statement.defaultEscape("\"")
|
|
305
|
+
|
|
274
306
|
/**
|
|
275
307
|
* @category custom types
|
|
276
308
|
* @since 1.0.0
|
package/src/Migrator.ts
CHANGED
|
@@ -5,12 +5,13 @@ import * as Command from "@effect/platform/Command"
|
|
|
5
5
|
import type { CommandExecutor } from "@effect/platform/CommandExecutor"
|
|
6
6
|
import { FileSystem } from "@effect/platform/FileSystem"
|
|
7
7
|
import { Path } from "@effect/platform/Path"
|
|
8
|
+
import type * as Client from "@effect/sql/Client"
|
|
8
9
|
import type { SqlError } from "@effect/sql/Error"
|
|
9
10
|
import * as Migrator from "@effect/sql/Migrator"
|
|
10
11
|
import * as Effect from "effect/Effect"
|
|
11
12
|
import * as Layer from "effect/Layer"
|
|
12
13
|
import * as Secret from "effect/Secret"
|
|
13
|
-
import
|
|
14
|
+
import { PgClient } from "./Client.js"
|
|
14
15
|
|
|
15
16
|
/**
|
|
16
17
|
* @since 1.0.0
|
|
@@ -21,35 +22,17 @@ export * from "@effect/sql/Migrator"
|
|
|
21
22
|
* @category constructor
|
|
22
23
|
* @since 1.0.0
|
|
23
24
|
*/
|
|
24
|
-
export const run: <
|
|
25
|
-
options: Migrator.MigratorOptions<
|
|
25
|
+
export const run: <R2 = never>(
|
|
26
|
+
options: Migrator.MigratorOptions<R2>
|
|
26
27
|
) => Effect.Effect<
|
|
27
28
|
ReadonlyArray<readonly [id: number, name: string]>,
|
|
28
|
-
|
|
29
|
-
|
|
29
|
+
Migrator.MigrationError | SqlError,
|
|
30
|
+
FileSystem | Path | PgClient | Client.Client | CommandExecutor | R2
|
|
30
31
|
> = Migrator.make({
|
|
31
|
-
|
|
32
|
-
ensureTable(sql, table) {
|
|
33
|
-
return Effect.catchAll(
|
|
34
|
-
sql`select ${table}::regclass`,
|
|
35
|
-
() =>
|
|
36
|
-
sql`
|
|
37
|
-
CREATE TABLE ${sql(table)} (
|
|
38
|
-
migration_id integer primary key,
|
|
39
|
-
created_at timestamp with time zone not null default now(),
|
|
40
|
-
name text not null
|
|
41
|
-
)
|
|
42
|
-
`
|
|
43
|
-
)
|
|
44
|
-
},
|
|
45
|
-
lockTable(sql, table) {
|
|
46
|
-
return sql`
|
|
47
|
-
LOCK TABLE ${sql(table)} IN ACCESS EXCLUSIVE MODE
|
|
48
|
-
`
|
|
49
|
-
},
|
|
50
|
-
dumpSchema(sql, path, table) {
|
|
32
|
+
dumpSchema(path, table) {
|
|
51
33
|
const pgDump = (args: Array<string>) =>
|
|
52
34
|
Effect.gen(function*(_) {
|
|
35
|
+
const sql = yield* PgClient
|
|
53
36
|
const dump = yield* _(
|
|
54
37
|
Command.make("pg_dump", ...args, "--no-owner", "--no-privileges"),
|
|
55
38
|
Command.env({
|
|
@@ -109,5 +92,8 @@ export const run: <R>(
|
|
|
109
92
|
*/
|
|
110
93
|
export const layer = <R>(
|
|
111
94
|
options: Migrator.MigratorOptions<R>
|
|
112
|
-
): Layer.Layer<
|
|
113
|
-
|
|
95
|
+
): Layer.Layer<
|
|
96
|
+
never,
|
|
97
|
+
Migrator.MigrationError | SqlError,
|
|
98
|
+
PgClient | Client.Client | CommandExecutor | FileSystem | Path | R
|
|
99
|
+
> => Layer.effectDiscard(run(options))
|
package/src/index.ts
CHANGED
|
@@ -7,27 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export * as client from "./Client.js"
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
* @since 1.0.0
|
|
12
|
-
*/
|
|
13
|
-
export * as error from "@effect/sql/Error"
|
|
14
|
-
|
|
15
10
|
/**
|
|
16
11
|
* @since 1.0.0
|
|
17
12
|
*/
|
|
18
13
|
export * as migrator from "./Migrator.js"
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* @since 1.0.0
|
|
22
|
-
*/
|
|
23
|
-
export * as resolver from "@effect/sql/Resolver"
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @since 1.0.0
|
|
27
|
-
*/
|
|
28
|
-
export * as schema from "@effect/sql/Schema"
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @since 1.0.0
|
|
32
|
-
*/
|
|
33
|
-
export * as statement from "@effect/sql/Statement"
|