@effect/sql-mssql 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.
Files changed (43) hide show
  1. package/Client/package.json +6 -0
  2. package/LICENSE +21 -0
  3. package/Migrator/package.json +6 -0
  4. package/Parameter/package.json +6 -0
  5. package/Procedure/package.json +6 -0
  6. package/README.md +5 -0
  7. package/dist/cjs/Client.js +326 -0
  8. package/dist/cjs/Client.js.map +1 -0
  9. package/dist/cjs/Migrator.js +79 -0
  10. package/dist/cjs/Migrator.js.map +1 -0
  11. package/dist/cjs/Parameter.js +29 -0
  12. package/dist/cjs/Parameter.js.map +1 -0
  13. package/dist/cjs/Procedure.js +100 -0
  14. package/dist/cjs/Procedure.js.map +1 -0
  15. package/dist/cjs/index.js +55 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/dts/Client.d.ts +75 -0
  18. package/dist/dts/Client.d.ts.map +1 -0
  19. package/dist/dts/Migrator.d.ts +23 -0
  20. package/dist/dts/Migrator.d.ts.map +1 -0
  21. package/dist/dts/Parameter.d.ts +29 -0
  22. package/dist/dts/Parameter.d.ts.map +1 -0
  23. package/dist/dts/Procedure.d.ts +88 -0
  24. package/dist/dts/Procedure.d.ts.map +1 -0
  25. package/dist/dts/index.d.ts +41 -0
  26. package/dist/dts/index.d.ts.map +1 -0
  27. package/dist/esm/Client.js +291 -0
  28. package/dist/esm/Client.js.map +1 -0
  29. package/dist/esm/Migrator.js +32 -0
  30. package/dist/esm/Migrator.js.map +1 -0
  31. package/dist/esm/Parameter.js +21 -0
  32. package/dist/esm/Parameter.js.map +1 -0
  33. package/dist/esm/Procedure.js +64 -0
  34. package/dist/esm/Procedure.js.map +1 -0
  35. package/dist/esm/index.js +41 -0
  36. package/dist/esm/index.js.map +1 -0
  37. package/dist/esm/package.json +4 -0
  38. package/package.json +67 -0
  39. package/src/Client.ts +482 -0
  40. package/src/Migrator.ts +46 -0
  41. package/src/Parameter.ts +46 -0
  42. package/src/Procedure.ts +180 -0
  43. package/src/index.ts +50 -0
@@ -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
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/Parameter.js",
3
+ "module": "../dist/esm/Parameter.js",
4
+ "types": "../dist/dts/Parameter.d.ts",
5
+ "sideEffects": []
6
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "main": "../dist/cjs/Procedure.js",
3
+ "module": "../dist/esm/Procedure.js",
4
+ "types": "../dist/dts/Procedure.d.ts",
5
+ "sideEffects": []
6
+ }
package/README.md ADDED
@@ -0,0 +1,5 @@
1
+ # Effect SQL - Microsoft SQL Server
2
+
3
+ An @effect/sql implementation using the mssql `tedious` library.
4
+
5
+ See here for more information: https://github.com/Effect-TS/effect/tree/main/packages/sql
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.makeCompiler = exports.make = exports.layer = exports.defaultParameterTypes = exports.MssqlClient = 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 Config = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Config"));
11
+ var Context = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Context"));
12
+ var Duration = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Duration"));
13
+ var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
14
+ var Exit = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Exit"));
15
+ var _Function = /*#__PURE__*/require("effect/Function");
16
+ var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
17
+ var Option = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Option"));
18
+ var Pool = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Pool"));
19
+ var Scope = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Scope"));
20
+ var Secret = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Secret"));
21
+ var Tedious = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("tedious"));
22
+ function _getRequireWildcardCache(e) {
23
+ if ("function" != typeof WeakMap) return null;
24
+ var r = new WeakMap(),
25
+ t = new WeakMap();
26
+ return (_getRequireWildcardCache = function (e) {
27
+ return e ? t : r;
28
+ })(e);
29
+ }
30
+ function _interopRequireWildcard(e, r) {
31
+ if (!r && e && e.__esModule) return e;
32
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
33
+ default: e
34
+ };
35
+ var t = _getRequireWildcardCache(r);
36
+ if (t && t.has(e)) return t.get(e);
37
+ var n = {
38
+ __proto__: null
39
+ },
40
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
41
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
42
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
43
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
44
+ }
45
+ return n.default = e, t && t.set(e, n), n;
46
+ }
47
+ /**
48
+ * @since 1.0.0
49
+ */
50
+
51
+ /**
52
+ * @category tags
53
+ * @since 1.0.0
54
+ */
55
+ const MssqlClient = exports.MssqlClient = /*#__PURE__*/Context.GenericTag("@effect/sql-mssql/MssqlClient");
56
+ const TransactionConnection = Client.TransactionConnection;
57
+ /**
58
+ * @category constructors
59
+ * @since 1.0.0
60
+ */
61
+ const make = options => Effect.gen(function* (_) {
62
+ const parameterTypes = options.parameterTypes ?? defaultParameterTypes;
63
+ const compiler = makeCompiler(options.transformQueryNames);
64
+ const transformRows = Client.defaultTransforms(options.transformResultNames).array;
65
+ // eslint-disable-next-line prefer-const
66
+ let pool;
67
+ const makeConnection = Effect.gen(function* (_) {
68
+ const conn = new Tedious.Connection({
69
+ options: {
70
+ port: options.port,
71
+ database: options.database,
72
+ trustServerCertificate: options.trustServer ?? true,
73
+ connectTimeout: options.connectTimeout ? Duration.toMillis(Duration.decode(options.connectTimeout)) : undefined,
74
+ rowCollectionOnRequestCompletion: true,
75
+ useColumnNames: false,
76
+ instanceName: options.instanceName,
77
+ encrypt: options.encrypt ?? false
78
+ },
79
+ server: options.server,
80
+ authentication: {
81
+ type: options.authType ?? "default",
82
+ options: {
83
+ userName: options.username,
84
+ password: options.password ? Secret.value(options.password) : undefined
85
+ }
86
+ }
87
+ });
88
+ yield* _(Effect.addFinalizer(() => Effect.sync(() => conn.close())));
89
+ yield* _(Effect.async(resume => {
90
+ conn.connect(error => {
91
+ if (error) {
92
+ resume(Effect.fail(new _Error.SqlError({
93
+ error
94
+ })));
95
+ } else {
96
+ resume(Effect.void);
97
+ }
98
+ });
99
+ }));
100
+ const run = (sql, values, transform = true, rowsAsArray = false) => Effect.async(resume => {
101
+ const req = new Tedious.Request(sql, (error, _rowCount, result) => {
102
+ if (error) {
103
+ resume(Effect.fail(new _Error.SqlError({
104
+ error
105
+ })));
106
+ return;
107
+ }
108
+ if (rowsAsArray) {
109
+ result = result.map(row => row.map(_ => _.value));
110
+ } else {
111
+ result = rowsToObjects(result);
112
+ if (transform && options.transformResultNames) {
113
+ result = transformRows(result);
114
+ }
115
+ }
116
+ resume(Effect.succeed(result));
117
+ });
118
+ if (values) {
119
+ for (let i = 0, len = values.length; i < len; i++) {
120
+ const value = values[i];
121
+ const name = numberToAlpha(i);
122
+ if (isMssqlParam(value)) {
123
+ req.addParameter(name, value.i0, value.i1, value.i2);
124
+ } else {
125
+ const kind = Statement.primitiveKind(value);
126
+ const type = parameterTypes[kind];
127
+ req.addParameter(name, type, value);
128
+ }
129
+ }
130
+ }
131
+ conn.cancel();
132
+ conn.execSql(req);
133
+ });
134
+ const runProcedure = procedure => Effect.async(resume => {
135
+ const result = {};
136
+ const req = new Tedious.Request(escape(procedure.name), (error, _, rows) => {
137
+ if (error) {
138
+ resume(Effect.fail(new _Error.SqlError({
139
+ error
140
+ })));
141
+ } else {
142
+ rows = rowsToObjects(rows);
143
+ if (options.transformResultNames) {
144
+ rows = transformRows(rows);
145
+ }
146
+ resume(Effect.succeed({
147
+ params: result,
148
+ rows
149
+ }));
150
+ }
151
+ });
152
+ for (const name in procedure.params) {
153
+ const param = procedure.params[name];
154
+ const value = procedure.values[name];
155
+ req.addParameter(name, param.type, value, param.options);
156
+ }
157
+ for (const name in procedure.outputParams) {
158
+ const param = procedure.outputParams[name];
159
+ req.addOutputParameter(name, param.type, undefined, param.options);
160
+ }
161
+ req.on("returnValue", (name, value) => {
162
+ result[name] = value;
163
+ });
164
+ conn.cancel();
165
+ conn.callProcedure(req);
166
+ });
167
+ const connection = (0, _Function.identity)({
168
+ execute(sql, params) {
169
+ return run(sql, params);
170
+ },
171
+ executeWithoutTransform(sql, params) {
172
+ return run(sql, params, false);
173
+ },
174
+ executeValues(sql, params) {
175
+ return run(sql, params, true, true);
176
+ },
177
+ executeRaw(sql, params) {
178
+ return run(sql, params);
179
+ },
180
+ executeStream() {
181
+ return Effect.dieMessage("executeStream not implemented");
182
+ },
183
+ call: procedure => {
184
+ return runProcedure(procedure);
185
+ },
186
+ begin: Effect.async(resume => {
187
+ conn.beginTransaction(error => {
188
+ if (error) {
189
+ resume(Effect.fail(new _Error.SqlError({
190
+ error
191
+ })));
192
+ } else {
193
+ resume(Effect.void);
194
+ }
195
+ });
196
+ }),
197
+ commit: Effect.async(resume => {
198
+ conn.commitTransaction(error => {
199
+ if (error) {
200
+ resume(Effect.fail(new _Error.SqlError({
201
+ error
202
+ })));
203
+ } else {
204
+ resume(Effect.void);
205
+ }
206
+ });
207
+ }),
208
+ savepoint: name => Effect.async(resume => {
209
+ conn.saveTransaction(error => {
210
+ if (error) {
211
+ resume(Effect.fail(new _Error.SqlError({
212
+ error
213
+ })));
214
+ } else {
215
+ resume(Effect.void);
216
+ }
217
+ }, name);
218
+ }),
219
+ rollback: name => Effect.async(resume => {
220
+ conn.rollbackTransaction(error => {
221
+ if (error) {
222
+ resume(Effect.fail(new _Error.SqlError({
223
+ error
224
+ })));
225
+ } else {
226
+ resume(Effect.void);
227
+ }
228
+ }, name);
229
+ })
230
+ });
231
+ yield* _(Effect.async(resume => {
232
+ conn.on("error", _ => resume(Effect.fail(_)));
233
+ }), Effect.catchAll(() => Pool.invalidate(pool, connection)), Effect.interruptible, Effect.forkScoped);
234
+ return connection;
235
+ });
236
+ pool = yield* _(Pool.makeWithTTL({
237
+ acquire: makeConnection,
238
+ min: options.minConnections ?? 1,
239
+ max: options.maxConnections ?? 10,
240
+ timeToLive: options.connectionTTL ?? Duration.minutes(45)
241
+ }));
242
+ const makeRootTx = Effect.flatMap(Scope.make(), scope => Effect.map(Scope.extend(Pool.get(pool), scope), conn => [scope, conn, 0]));
243
+ const withTransaction = effect => Effect.acquireUseRelease((0, _Function.pipe)(Effect.serviceOption(TransactionConnection), Effect.flatMap(Option.match({
244
+ onNone: () => makeRootTx,
245
+ onSome: ([conn, count]) => Effect.succeed([undefined, conn, count + 1])
246
+ })), Effect.tap(([, conn, id]) => id > 0 ? conn.savepoint(`effect_sql_${id}`) : conn.begin)), ([, conn, id]) => Effect.provideService(effect, TransactionConnection, [conn, id]), ([scope, conn, id], exit) => {
247
+ const effect = Exit.isSuccess(exit) ? id > 0 ? Effect.void : Effect.orDie(conn.commit) : Effect.orDie(conn.rollback(id > 0 ? `effect_sql_${id}` : undefined));
248
+ return scope !== undefined ? Effect.ensuring(effect, Scope.close(scope, exit)) : effect;
249
+ });
250
+ return (0, _Function.identity)(Object.assign(Client.make({
251
+ acquirer: pool.get,
252
+ compiler,
253
+ transactionAcquirer: pool.get
254
+ }), {
255
+ config: options,
256
+ withTransaction,
257
+ param: (type, value, options = {}) => mssqlParam(type, value, options),
258
+ call: procedure => Effect.scoped(Effect.flatMap(pool.get, _ => _.call(procedure)))
259
+ }));
260
+ });
261
+ /**
262
+ * @category layers
263
+ * @since 1.0.0
264
+ */
265
+ exports.make = make;
266
+ const layer = config => Layer.scoped(MssqlClient, Effect.flatMap(Config.unwrap(config), make));
267
+ /**
268
+ * @category compiler
269
+ * @since 1.0.0
270
+ */
271
+ exports.layer = layer;
272
+ const makeCompiler = transform => Statement.makeCompiler({
273
+ placeholder: _ => `@${numberToAlpha(_ - 1)}`,
274
+ onIdentifier: transform ? _ => escape(transform(_)) : escape,
275
+ onRecordUpdate: (placeholders, valueAlias, valueColumns, values) => [`(values ${placeholders}) AS ${valueAlias}${valueColumns}`, values.flat()],
276
+ onCustom: (type, placeholder) => {
277
+ switch (type.kind) {
278
+ case "MssqlParam":
279
+ {
280
+ return [placeholder(), [type]];
281
+ }
282
+ }
283
+ },
284
+ onInsert: (columns, placeholders, values) => [`(${columns.join(",")}) OUTPUT INSERTED.* VALUES ${placeholders}`, values.flat()]
285
+ });
286
+ /**
287
+ * @since 1.0.0
288
+ */
289
+ exports.makeCompiler = makeCompiler;
290
+ const defaultParameterTypes = exports.defaultParameterTypes = {
291
+ string: Tedious.TYPES.VarChar,
292
+ number: Tedious.TYPES.Int,
293
+ bigint: Tedious.TYPES.BigInt,
294
+ boolean: Tedious.TYPES.Bit,
295
+ Date: Tedious.TYPES.DateTime,
296
+ Uint8Array: Tedious.TYPES.VarBinary,
297
+ Int8Array: Tedious.TYPES.VarBinary,
298
+ null: Tedious.TYPES.Bit
299
+ };
300
+ // compiler helpers
301
+ const escape = str => "[" + str.replace(/\]/g, "]]").replace(/\./g, "].[") + "]";
302
+ const charCodeA = /*#__PURE__*/"a".charCodeAt(0);
303
+ function numberToAlpha(n) {
304
+ let s = "";
305
+ while (n >= 0) {
306
+ s = String.fromCharCode(n % 26 + charCodeA) + s;
307
+ n = Math.floor(n / 26) - 1;
308
+ }
309
+ return s;
310
+ }
311
+ function rowsToObjects(rows) {
312
+ const newRows = new Array(rows.length);
313
+ for (let i = 0, len = rows.length; i < len; i++) {
314
+ const row = rows[i];
315
+ const newRow = {};
316
+ for (let j = 0, columnLen = row.length; j < columnLen; j++) {
317
+ const column = row[j];
318
+ newRow[column.metadata.colName] = column.value;
319
+ }
320
+ newRows[i] = newRow;
321
+ }
322
+ return newRows;
323
+ }
324
+ const mssqlParam = /*#__PURE__*/Statement.custom("MssqlParam");
325
+ const isMssqlParam = /*#__PURE__*/Statement.isCustom("MssqlParam");
326
+ //# sourceMappingURL=Client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.js","names":["Client","_interopRequireWildcard","require","_Error","Statement","Config","Context","Duration","Effect","Exit","_Function","Layer","Option","Pool","Scope","Secret","Tedious","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MssqlClient","exports","GenericTag","TransactionConnection","make","options","gen","_","parameterTypes","defaultParameterTypes","compiler","makeCompiler","transformQueryNames","transformRows","defaultTransforms","transformResultNames","array","pool","makeConnection","conn","Connection","port","database","trustServerCertificate","trustServer","connectTimeout","toMillis","decode","undefined","rowCollectionOnRequestCompletion","useColumnNames","instanceName","encrypt","server","authentication","type","authType","userName","username","password","value","addFinalizer","sync","close","async","resume","connect","error","fail","SqlError","void","run","sql","values","transform","rowsAsArray","req","Request","_rowCount","result","map","row","rowsToObjects","succeed","len","length","name","numberToAlpha","isMssqlParam","addParameter","i0","i1","i2","kind","primitiveKind","cancel","execSql","runProcedure","procedure","escape","rows","params","param","outputParams","addOutputParameter","on","callProcedure","connection","identity","execute","executeWithoutTransform","executeValues","executeRaw","executeStream","dieMessage","begin","beginTransaction","commit","commitTransaction","savepoint","saveTransaction","rollback","rollbackTransaction","catchAll","invalidate","interruptible","forkScoped","makeWithTTL","acquire","min","minConnections","max","maxConnections","timeToLive","connectionTTL","minutes","makeRootTx","flatMap","scope","extend","withTransaction","effect","acquireUseRelease","pipe","serviceOption","match","onNone","onSome","count","tap","id","provideService","exit","isSuccess","orDie","ensuring","assign","acquirer","transactionAcquirer","config","mssqlParam","scoped","layer","unwrap","placeholder","onIdentifier","onRecordUpdate","placeholders","valueAlias","valueColumns","flat","onCustom","onInsert","columns","join","string","TYPES","VarChar","number","Int","bigint","BigInt","boolean","Bit","Date","DateTime","Uint8Array","VarBinary","Int8Array","null","str","replace","charCodeA","charCodeAt","s","String","fromCharCode","Math","floor","newRows","Array","newRow","j","columnLen","column","metadata","colName","custom","isCustom"],"sources":["../../src/Client.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,79 @@
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 Migrator = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("@effect/sql/Migrator"));
12
+ Object.keys(Migrator).forEach(function (key) {
13
+ if (key === "default" || key === "__esModule") return;
14
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
15
+ if (key in exports && exports[key] === Migrator[key]) return;
16
+ Object.defineProperty(exports, key, {
17
+ enumerable: true,
18
+ get: function () {
19
+ return Migrator[key];
20
+ }
21
+ });
22
+ });
23
+ var Effect = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Effect"));
24
+ var Layer = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("effect/Layer"));
25
+ var Client = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Client.js"));
26
+ function _getRequireWildcardCache(e) {
27
+ if ("function" != typeof WeakMap) return null;
28
+ var r = new WeakMap(),
29
+ t = new WeakMap();
30
+ return (_getRequireWildcardCache = function (e) {
31
+ return e ? t : r;
32
+ })(e);
33
+ }
34
+ function _interopRequireWildcard(e, r) {
35
+ if (!r && e && e.__esModule) return e;
36
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
37
+ default: e
38
+ };
39
+ var t = _getRequireWildcardCache(r);
40
+ if (t && t.has(e)) return t.get(e);
41
+ var n = {
42
+ __proto__: null
43
+ },
44
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
45
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
46
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
47
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
48
+ }
49
+ return n.default = e, t && t.set(e, n), n;
50
+ }
51
+ /**
52
+ * @since 1.0.0
53
+ */
54
+
55
+ /**
56
+ * @category constructor
57
+ * @since 1.0.0
58
+ */
59
+ const run = exports.run = /*#__PURE__*/Migrator.make({
60
+ getClient: Client.MssqlClient,
61
+ ensureTable(sql, table) {
62
+ return sql`IF OBJECT_ID(N'${sql.literal(table)}', N'U') IS NULL
63
+ CREATE TABLE ${sql(table)} (
64
+ migration_id INT NOT NULL PRIMARY KEY,
65
+ name VARCHAR(255) NOT NULL,
66
+ created_at DATETIME NOT NULL DEFAULT GETDATE()
67
+ )`;
68
+ },
69
+ dumpSchema(_sql, _path, _table) {
70
+ return Effect.void;
71
+ }
72
+ });
73
+ /**
74
+ * @category layers
75
+ * @since 1.0.0
76
+ */
77
+ const layer = options => Layer.effectDiscard(run(options));
78
+ exports.layer = layer;
79
+ //# sourceMappingURL=Migrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Migrator.js","names":["Migrator","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","Effect","Layer","Client","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","n","__proto__","a","getOwnPropertyDescriptor","u","i","set","run","make","getClient","MssqlClient","ensureTable","sql","table","literal","dumpSchema","_sql","_path","_table","void","layer","options","effectDiscard"],"sources":["../../src/Migrator.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;AAIA,IAAAA,QAAA,gBAAAC,uBAAA,eAAAC,OAAA;AAQAC,MAAA,CAAAC,IAAA,CAAAJ,QAAA,EAAAK,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,MAAAN,QAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAd,QAAA,CAAAM,GAAA;IAAA;EAAA;AAAA;AAPA,IAAAS,MAAA,gBAAAd,uBAAA,eAAAC,OAAA;AACA,IAAAc,KAAA,gBAAAf,uBAAA,eAAAC,OAAA;AACA,IAAAe,MAAA,gBAAAhB,uBAAA,eAAAC,OAAA;AAAqC,SAAAgB,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,SAAAlB,wBAAAkB,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,CAAAR,GAAA,CAAAK,CAAA;EAAA,IAAAO,CAAA;MAAAC,SAAA;IAAA;IAAAC,CAAA,GAAAzB,MAAA,CAAAS,cAAA,IAAAT,MAAA,CAAA0B,wBAAA;EAAA,SAAAC,CAAA,IAAAX,CAAA,oBAAAW,CAAA,OAAAtB,cAAA,CAAAC,IAAA,CAAAU,CAAA,EAAAW,CAAA;IAAA,IAAAC,CAAA,GAAAH,CAAA,GAAAzB,MAAA,CAAA0B,wBAAA,CAAAV,CAAA,EAAAW,CAAA;IAAAC,CAAA,KAAAA,CAAA,CAAAjB,GAAA,IAAAiB,CAAA,CAAAC,GAAA,IAAA7B,MAAA,CAAAS,cAAA,CAAAc,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;AAErC;;;;AAKA;;;;AAIO,MAAMO,GAAG,GAAAtB,OAAA,CAAAsB,GAAA,gBAMZjC,QAAQ,CAACkC,IAAI,CAAC;EAChBC,SAAS,EAAElB,MAAM,CAACmB,WAAW;EAC7BC,WAAWA,CAACC,GAAG,EAAEC,KAAK;IACpB,OAAOD,GAAG,kBAAkBA,GAAG,CAACE,OAAO,CAACD,KAAK,CAAC;iBACjCD,GAAG,CAACC,KAAK,CAAC;;;;IAIvB;EACF,CAAC;EACDE,UAAUA,CAACC,IAAI,EAAEC,KAAK,EAAEC,MAAM;IAC5B,OAAO7B,MAAM,CAAC8B,IAAI;EACpB;CACD,CAAC;AAEF;;;;AAIO,MAAMC,KAAK,GAChBC,OAAoC,IAC+C/B,KAAK,CAACgC,aAAa,CAACf,GAAG,CAACc,OAAO,CAAC,CAAC;AAAApC,OAAA,CAAAmC,KAAA,GAAAA,KAAA","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.make = exports.ParameterId = void 0;
7
+ var _Function = /*#__PURE__*/require("effect/Function");
8
+ /**
9
+ * @since 1.0.0
10
+ */
11
+
12
+ /**
13
+ * @category type id
14
+ * @since 1.0.0
15
+ */
16
+ const ParameterId = exports.ParameterId = /*#__PURE__*/Symbol.for("@sqlfx/mssql/Parameter");
17
+ /**
18
+ * @category constructor
19
+ * @since 1.0.0
20
+ */
21
+ const make = (name, type, options = {}) => ({
22
+ [ParameterId]: _Function.identity,
23
+ _tag: "Parameter",
24
+ name,
25
+ type,
26
+ options
27
+ });
28
+ exports.make = make;
29
+ //# sourceMappingURL=Parameter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Parameter.js","names":["_Function","require","ParameterId","exports","Symbol","for","make","name","type","options","identity","_tag"],"sources":["../../src/Parameter.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,SAAA,gBAAAC,OAAA;AAHA;;;;AAOA;;;;AAIO,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBAAGE,MAAM,CAACC,GAAG,CAAC,wBAAwB,CAAC;AAoB/D;;;;AAIO,MAAMC,IAAI,GAAGA,CAClBC,IAAY,EACZC,IAAc,EACdC,OAAA,GAA4B,EAAE,MACZ;EAClB,CAACP,WAAW,GAAGF,SAAA,CAAAU,QAAQ;EACvBC,IAAI,EAAE,WAAW;EACjBJ,IAAI;EACJC,IAAI;EACJC;CACD,CAAC;AAAAN,OAAA,CAAAG,IAAA,GAAAA,IAAA","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.withRows = exports.param = exports.outputParam = exports.make = exports.compile = exports.TypeId = void 0;
7
+ var _Function = /*#__PURE__*/require("effect/Function");
8
+ var _Pipeable = /*#__PURE__*/require("effect/Pipeable");
9
+ var Parameter = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("./Parameter.js"));
10
+ function _getRequireWildcardCache(e) {
11
+ if ("function" != typeof WeakMap) return null;
12
+ var r = new WeakMap(),
13
+ t = new WeakMap();
14
+ return (_getRequireWildcardCache = function (e) {
15
+ return e ? t : r;
16
+ })(e);
17
+ }
18
+ function _interopRequireWildcard(e, r) {
19
+ if (!r && e && e.__esModule) return e;
20
+ if (null === e || "object" != typeof e && "function" != typeof e) return {
21
+ default: e
22
+ };
23
+ var t = _getRequireWildcardCache(r);
24
+ if (t && t.has(e)) return t.get(e);
25
+ var n = {
26
+ __proto__: null
27
+ },
28
+ a = Object.defineProperty && Object.getOwnPropertyDescriptor;
29
+ for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
30
+ var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
31
+ i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
32
+ }
33
+ return n.default = e, t && t.set(e, n), n;
34
+ }
35
+ /**
36
+ * @category type id
37
+ * @since 1.0.0
38
+ */
39
+ const TypeId = exports.TypeId = /*#__PURE__*/Symbol.for("@effect/sql-mssql/Procedure");
40
+ const procedureProto = {
41
+ [TypeId]: {
42
+ _A: _Function.identity
43
+ },
44
+ _tag: "Procedure",
45
+ pipe() {
46
+ return (0, _Pipeable.pipeArguments)(this, arguments);
47
+ }
48
+ };
49
+ /**
50
+ * @category constructor
51
+ * @since 1.0.0
52
+ */
53
+ const make = name => {
54
+ const procedure = Object.create(procedureProto);
55
+ procedure.name = name;
56
+ procedure.params = {};
57
+ procedure.outputParams = {};
58
+ return procedure;
59
+ };
60
+ /**
61
+ * @category combinator
62
+ * @since 1.0.0
63
+ */
64
+ exports.make = make;
65
+ const param = () => (name, type, options) => self => ({
66
+ ...self,
67
+ params: {
68
+ ...self.params,
69
+ [name]: Parameter.make(name, type, options)
70
+ }
71
+ });
72
+ /**
73
+ * @category combinator
74
+ * @since 1.0.0
75
+ */
76
+ exports.param = param;
77
+ const outputParam = () => (name, type, options) => self => ({
78
+ ...self,
79
+ outputParams: {
80
+ ...self.outputParams,
81
+ [name]: Parameter.make(name, type, options)
82
+ }
83
+ });
84
+ /**
85
+ * @category combinator
86
+ * @since 1.0.0
87
+ */
88
+ exports.outputParam = outputParam;
89
+ const withRows = () => self => self;
90
+ /**
91
+ * @category combinator
92
+ * @since 1.0.0
93
+ */
94
+ exports.withRows = withRows;
95
+ const compile = self => input => ({
96
+ ...self,
97
+ values: input
98
+ });
99
+ exports.compile = compile;
100
+ //# sourceMappingURL=Procedure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Procedure.js","names":["_Function","require","_Pipeable","Parameter","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TypeId","exports","Symbol","for","procedureProto","_A","identity","_tag","pipe","pipeArguments","arguments","make","name","procedure","create","params","outputParams","param","type","options","self","outputParam","withRows","compile","input","values"],"sources":["../../src/Procedure.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}