murmuration 2.0.25 → 2.0.28

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,120 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return transaction;
9
+ }
10
+ });
11
+ var _defaultLog = /*#__PURE__*/ _interop_require_default(require("./defaultLog"));
12
+ var _necessary = require("necessary");
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ var whilst = _necessary.asynchronousUtilities.whilst, sequence = _necessary.asynchronousUtilities.sequence;
19
+ function transaction(configuration, operations, callback, context) {
20
+ var Connection = configuration.Connection, completed = false;
21
+ Connection.fromConfiguration(configuration, function(error, connection) {
22
+ if (error) {
23
+ var _configuration_log = configuration.log, log = _configuration_log === void 0 ? _defaultLog.default : _configuration_log;
24
+ log.error("The transaction wasn't completed because there was no connection.");
25
+ callback(completed);
26
+ return;
27
+ }
28
+ Object.assign(context, {
29
+ connection: connection,
30
+ operations: operations,
31
+ completed: completed
32
+ });
33
+ operations = [
34
+ beginTransactionOperation,
35
+ executeOperationsOperation,
36
+ commitTransactionOperation,
37
+ rollbackTransactionOperation
38
+ ];
39
+ sequence(operations, function() {
40
+ var completed = context.completed;
41
+ delete context.connection;
42
+ delete context.operations;
43
+ delete context.completed;
44
+ connection.release();
45
+ callback(completed);
46
+ }, context);
47
+ });
48
+ }
49
+ function beginTransactionOperation(next, done, context) {
50
+ var connection = context.connection, log = connection.getLog();
51
+ log.debug("Beginning transaction...");
52
+ connection.begin(function(error) {
53
+ if (error) {
54
+ var code = error.code;
55
+ log.error("An error with '".concat(code, "' has occurred."));
56
+ done();
57
+ return;
58
+ }
59
+ next();
60
+ });
61
+ }
62
+ function commitTransactionOperation(next, done, context) {
63
+ var completed = context.completed;
64
+ if (!completed) {
65
+ next();
66
+ return;
67
+ }
68
+ var connection = context.connection, log = connection.getLog();
69
+ log.debug("Committing transaction...");
70
+ connection.commit(function(error) {
71
+ if (error) {
72
+ var code = error.code;
73
+ log.error("An error with '${code}' has occurred.");
74
+ done();
75
+ return;
76
+ }
77
+ next();
78
+ });
79
+ }
80
+ function rollbackTransactionOperation(next, done, context) {
81
+ var completed = context.completed;
82
+ if (completed) {
83
+ next();
84
+ return;
85
+ }
86
+ var connection = context.connection, log = connection.getLog();
87
+ log.debug("Rolling back transaction...");
88
+ connection.rollback(function(error) {
89
+ if (error) {
90
+ var code = error.code;
91
+ log.error("...failed with error code ".concat(code, "."));
92
+ done();
93
+ return;
94
+ }
95
+ next();
96
+ });
97
+ }
98
+ function executeOperationsOperation(next, done, context) {
99
+ whilst(executeOperation, next, context);
100
+ }
101
+ function executeOperation(next, done, context, index) {
102
+ var operations = context.operations, operationsLength = operations.length, lastOperationIndex = operationsLength - 1;
103
+ if (index > lastOperationIndex) {
104
+ complete();
105
+ return;
106
+ }
107
+ var connection = context.connection, log = connection.getLog();
108
+ log.debug("Executing operation...");
109
+ var operation = operations[index], abort = done, proceed = next; ///
110
+ operation(connection, abort, proceed, complete, context);
111
+ function complete() {
112
+ var completed = true;
113
+ Object.assign(context, {
114
+ completed: completed
115
+ });
116
+ done();
117
+ }
118
+ }
119
+
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy90cmFuc2FjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGRlZmF1bHRMb2cgZnJvbSBcIi4vZGVmYXVsdExvZ1wiO1xuXG5pbXBvcnQgeyBhc3luY2hyb25vdXNVdGlsaXRpZXMgfSBmcm9tIFwibmVjZXNzYXJ5XCI7XG5cbmNvbnN0IHsgd2hpbHN0LCBzZXF1ZW5jZSB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzO1xuICAgICAgXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0cmFuc2FjdGlvbihjb25maWd1cmF0aW9uLCBvcGVyYXRpb25zLCBjYWxsYmFjaywgY29udGV4dCkge1xuICBjb25zdCB7IENvbm5lY3Rpb24gfSA9IGNvbmZpZ3VyYXRpb24sXG4gICAgICAgIGNvbXBsZXRlZCA9IGZhbHNlO1xuXG4gIENvbm5lY3Rpb24uZnJvbUNvbmZpZ3VyYXRpb24oY29uZmlndXJhdGlvbiwgKGVycm9yLCBjb25uZWN0aW9uKSA9PiB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjb25zdCB7IGxvZyA9IGRlZmF1bHRMb2cgfSA9IGNvbmZpZ3VyYXRpb247XG5cbiAgICAgIGxvZy5lcnJvcihcIlRoZSB0cmFuc2FjdGlvbiB3YXNuJ3QgY29tcGxldGVkIGJlY2F1c2UgdGhlcmUgd2FzIG5vIGNvbm5lY3Rpb24uXCIpO1xuXG4gICAgICBjYWxsYmFjayhjb21wbGV0ZWQpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgT2JqZWN0LmFzc2lnbihjb250ZXh0LCB7XG4gICAgICBjb25uZWN0aW9uLFxuICAgICAgb3BlcmF0aW9ucyxcbiAgICAgIGNvbXBsZXRlZFxuICAgIH0pO1xuXG4gICAgb3BlcmF0aW9ucyA9IFsgIC8vL1xuICAgICAgYmVnaW5UcmFuc2FjdGlvbk9wZXJhdGlvbixcbiAgICAgIGV4ZWN1dGVPcGVyYXRpb25zT3BlcmF0aW9uLFxuICAgICAgY29tbWl0VHJhbnNhY3Rpb25PcGVyYXRpb24sXG4gICAgICByb2xsYmFja1RyYW5zYWN0aW9uT3BlcmF0aW9uXG4gICAgXTtcblxuICAgIHNlcXVlbmNlKG9wZXJhdGlvbnMsICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY29tcGxldGVkIH0gPSBjb250ZXh0O1xuXG4gICAgICBkZWxldGUgY29udGV4dC5jb25uZWN0aW9uO1xuICAgICAgZGVsZXRlIGNvbnRleHQub3BlcmF0aW9ucztcbiAgICAgIGRlbGV0ZSBjb250ZXh0LmNvbXBsZXRlZDtcblxuICAgICAgY29ubmVjdGlvbi5yZWxlYXNlKCk7XG5cbiAgICAgIGNhbGxiYWNrKGNvbXBsZXRlZCk7XG4gICAgfSwgY29udGV4dCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBiZWdpblRyYW5zYWN0aW9uT3BlcmF0aW9uKG5leHQsIGRvbmUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBjb25uZWN0aW9uIH0gPSBjb250ZXh0LFxuICAgICAgICBsb2cgPSBjb25uZWN0aW9uLmdldExvZygpO1xuXG4gIGxvZy5kZWJ1ZyhcIkJlZ2lubmluZyB0cmFuc2FjdGlvbi4uLlwiKTtcblxuICBjb25uZWN0aW9uLmJlZ2luKChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc3QgeyBjb2RlIH0gPSBlcnJvcjtcblxuICAgICAgbG9nLmVycm9yKGBBbiBlcnJvciB3aXRoICcke2NvZGV9JyBoYXMgb2NjdXJyZWQuYCk7XG5cbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5leHQoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbW1pdFRyYW5zYWN0aW9uT3BlcmF0aW9uKG5leHQsIGRvbmUsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBjb21wbGV0ZWQgfSA9IGNvbnRleHQ7XG5cbiAgaWYgKCFjb21wbGV0ZWQpIHtcbiAgICBuZXh0KCk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB7IGNvbm5lY3Rpb24gfSA9IGNvbnRleHQsXG4gICAgICAgIGxvZyA9IGNvbm5lY3Rpb24uZ2V0TG9nKCk7XG5cbiAgbG9nLmRlYnVnKFwiQ29tbWl0dGluZyB0cmFuc2FjdGlvbi4uLlwiKTtcblxuICBjb25uZWN0aW9uLmNvbW1pdCgoZXJyb3IpID0+IHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIGNvbnN0IHsgY29kZSB9ID0gZXJyb3I7XG5cbiAgICAgIGxvZy5lcnJvcihcIkFuIGVycm9yIHdpdGggJyR7Y29kZX0nIGhhcyBvY2N1cnJlZC5cIik7XG5cbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5leHQoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHJvbGxiYWNrVHJhbnNhY3Rpb25PcGVyYXRpb24obmV4dCwgZG9uZSwgY29udGV4dCkge1xuICBjb25zdCB7IGNvbXBsZXRlZCB9ID0gY29udGV4dDtcblxuICBpZiAoY29tcGxldGVkKSB7XG4gICAgbmV4dCgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBjb25uZWN0aW9uIH0gPSBjb250ZXh0LFxuICAgICAgICBsb2cgPSBjb25uZWN0aW9uLmdldExvZygpO1xuXG4gIGxvZy5kZWJ1ZyhcIlJvbGxpbmcgYmFjayB0cmFuc2FjdGlvbi4uLlwiKTtcblxuICBjb25uZWN0aW9uLnJvbGxiYWNrKChlcnJvcikgPT4ge1xuICAgIGlmIChlcnJvcikge1xuICAgICAgY29uc3QgeyBjb2RlIH0gPSBlcnJvcjtcblxuICAgICAgbG9nLmVycm9yKGAuLi5mYWlsZWQgd2l0aCBlcnJvciBjb2RlICR7Y29kZX0uYCk7XG5cbiAgICAgIGRvbmUoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG5leHQoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGV4ZWN1dGVPcGVyYXRpb25zT3BlcmF0aW9uKG5leHQsIGRvbmUsIGNvbnRleHQpIHtcbiAgd2hpbHN0KGV4ZWN1dGVPcGVyYXRpb24sIG5leHQsIGNvbnRleHQpO1xufVxuXG5mdW5jdGlvbiBleGVjdXRlT3BlcmF0aW9uKG5leHQsIGRvbmUsIGNvbnRleHQsIGluZGV4KSB7XG4gIGNvbnN0IHsgb3BlcmF0aW9ucyB9ID0gY29udGV4dCxcbiAgICAgICAgb3BlcmF0aW9uc0xlbmd0aCA9IG9wZXJhdGlvbnMubGVuZ3RoLFxuICAgICAgICBsYXN0T3BlcmF0aW9uSW5kZXggPSBvcGVyYXRpb25zTGVuZ3RoIC0gMTtcblxuICBpZiAoaW5kZXggPiBsYXN0T3BlcmF0aW9uSW5kZXgpIHtcbiAgICBjb21wbGV0ZSgpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgeyBjb25uZWN0aW9uIH0gPSBjb250ZXh0LFxuICAgICAgICBsb2cgPSBjb25uZWN0aW9uLmdldExvZygpO1xuXG4gIGxvZy5kZWJ1ZyhcIkV4ZWN1dGluZyBvcGVyYXRpb24uLi5cIik7XG5cbiAgY29uc3Qgb3BlcmF0aW9uID0gb3BlcmF0aW9uc1tpbmRleF0sXG4gICAgICAgIGFib3J0ID0gZG9uZSwgLy8vXG4gICAgICAgIHByb2NlZWQgPSBuZXh0OyAvLy9cblxuICBvcGVyYXRpb24oY29ubmVjdGlvbiwgYWJvcnQsIHByb2NlZWQsIGNvbXBsZXRlLCBjb250ZXh0KTtcblxuICBmdW5jdGlvbiBjb21wbGV0ZSgpIHtcbiAgICBjb25zdCBjb21wbGV0ZWQgPSB0cnVlO1xuXG4gICAgT2JqZWN0LmFzc2lnbihjb250ZXh0LCB7XG4gICAgICBjb21wbGV0ZWRcbiAgICB9KTtcblxuICAgIGRvbmUoKTtcbiAgfVxufVxuIl0sIm5hbWVzIjpbInRyYW5zYWN0aW9uIiwid2hpbHN0IiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwic2VxdWVuY2UiLCJjb25maWd1cmF0aW9uIiwib3BlcmF0aW9ucyIsImNhbGxiYWNrIiwiY29udGV4dCIsIkNvbm5lY3Rpb24iLCJjb21wbGV0ZWQiLCJmcm9tQ29uZmlndXJhdGlvbiIsImVycm9yIiwiY29ubmVjdGlvbiIsImxvZyIsImRlZmF1bHRMb2ciLCJPYmplY3QiLCJhc3NpZ24iLCJiZWdpblRyYW5zYWN0aW9uT3BlcmF0aW9uIiwiZXhlY3V0ZU9wZXJhdGlvbnNPcGVyYXRpb24iLCJjb21taXRUcmFuc2FjdGlvbk9wZXJhdGlvbiIsInJvbGxiYWNrVHJhbnNhY3Rpb25PcGVyYXRpb24iLCJyZWxlYXNlIiwibmV4dCIsImRvbmUiLCJnZXRMb2ciLCJkZWJ1ZyIsImJlZ2luIiwiY29kZSIsImNvbW1pdCIsInJvbGxiYWNrIiwiZXhlY3V0ZU9wZXJhdGlvbiIsImluZGV4Iiwib3BlcmF0aW9uc0xlbmd0aCIsImxlbmd0aCIsImxhc3RPcGVyYXRpb25JbmRleCIsImNvbXBsZXRlIiwib3BlcmF0aW9uIiwiYWJvcnQiLCJwcm9jZWVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFRQTs7O2VBQXdCQTs7O2lFQU5EO3lCQUVlOzs7Ozs7QUFFdEMsSUFBUUMsU0FBcUJDLGdDQUFxQixDQUExQ0QsUUFBUUUsV0FBYUQsZ0NBQXFCLENBQWxDQztBQUVELFNBQVNILFlBQVlJLGFBQWEsRUFBRUMsVUFBVSxFQUFFQyxRQUFRLEVBQUVDLE9BQU87SUFDOUUsSUFBTSxBQUFFQyxhQUFlSixjQUFmSSxZQUNGQyxZQUFZO0lBRWxCRCxXQUFXRSxpQkFBaUIsQ0FBQ04sZUFBZSxTQUFDTyxPQUFPQztRQUNsRCxJQUFJRCxPQUFPO1lBQ1QseUJBQTZCUCxjQUFyQlMsS0FBQUEsc0NBQU1DLG1CQUFVO1lBRXhCRCxJQUFJRixLQUFLLENBQUM7WUFFVkwsU0FBU0c7WUFFVDtRQUNGO1FBRUFNLE9BQU9DLE1BQU0sQ0FBQ1QsU0FBUztZQUNyQkssWUFBQUE7WUFDQVAsWUFBQUE7WUFDQUksV0FBQUE7UUFDRjtRQUVBSixhQUFhO1lBQ1hZO1lBQ0FDO1lBQ0FDO1lBQ0FDO1NBQ0Q7UUFFRGpCLFNBQVNFLFlBQVk7WUFDbkIsSUFBTSxBQUFFSSxZQUFjRixRQUFkRTtZQUVSLE9BQU9GLFFBQVFLLFVBQVU7WUFDekIsT0FBT0wsUUFBUUYsVUFBVTtZQUN6QixPQUFPRSxRQUFRRSxTQUFTO1lBRXhCRyxX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
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get camelCaseToSnakeCase () {
13
+ return camelCaseToSnakeCase;
14
+ },
15
+ get snakeCaseToCamelCase () {
16
+ return snakeCaseToCamelCase;
17
+ }
18
+ });
19
+ function camelCaseToSnakeCase(string) {
20
+ return string.replace(/([A-Z])/g, function(match, character) {
21
+ var lowerCaseCharacter = character.toLowerCase(), characters = "_".concat(lowerCaseCharacter);
22
+ return characters;
23
+ });
24
+ }
25
+ function snakeCaseToCamelCase(string) {
26
+ return string.replace(/_(.)/g, function(match, character) {
27
+ var upperCaseCharacter = character.toUpperCase();
28
+ return upperCaseCharacter;
29
+ });
30
+ }
31
+
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY2FzZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZVRvU25ha2VDYXNlKHN0cmluZykge1xuICByZXR1cm4gc3RyaW5nLnJlcGxhY2UoLyhbQS1aXSkvZywgKG1hdGNoLCBjaGFyYWN0ZXIpID0+IHtcbiAgICBjb25zdCBsb3dlckNhc2VDaGFyYWN0ZXIgPSBjaGFyYWN0ZXIudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICBjaGFyYWN0ZXJzID0gYF8ke2xvd2VyQ2FzZUNoYXJhY3Rlcn1gXG5cbiAgICByZXR1cm4gY2hhcmFjdGVycztcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzbmFrZUNhc2VUb0NhbWVsQ2FzZShzdHJpbmcpIHtcbiAgcmV0dXJuIHN0cmluZy5yZXBsYWNlKC9fKC4pL2csIChtYXRjaCwgY2hhcmFjdGVyKSA9PiB7XG4gICAgY29uc3QgdXBwZXJDYXNlQ2hhcmFjdGVyID0gY2hhcmFjdGVyLnRvVXBwZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gdXBwZXJDYXNlQ2hhcmFjdGVyO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJjYW1lbENhc2VUb1NuYWtlQ2FzZSIsInNuYWtlQ2FzZVRvQ2FtZWxDYXNlIiwic3RyaW5nIiwicmVwbGFjZSIsIm1hdGNoIiwiY2hhcmFjdGVyIiwibG93ZXJDYXNlQ2hhcmFjdGVyIiwidG9Mb3dlckNhc2UiLCJjaGFyYWN0ZXJzIiwidXBwZXJDYXNlQ2hhcmFjdGVyIiwidG9VcHBlckNhc2UiXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7OztRQUVnQkE7ZUFBQUE7O1FBU0FDO2VBQUFBOzs7QUFUVCxTQUFTRCxxQkFBcUJFLE1BQU07SUFDekMsT0FBT0EsT0FBT0MsT0FBTyxDQUFDLFlBQVksU0FBQ0MsT0FBT0M7UUFDeEMsSUFBTUMscUJBQXFCRCxVQUFVRSxXQUFXLElBQzFDQyxhQUFhLEFBQUMsSUFBc0IsT0FBbkJGO1FBRXZCLE9BQU9FO0lBQ1Q7QUFDRjtBQUVPLFNBQVNQLHFCQUFxQkMsTUFBTTtJQUN6QyxPQUFPQSxPQUFPQyxPQUFPLENBQUMsU0FBUyxTQUFDQyxPQUFPQztRQUNyQyxJQUFNSSxxQkFBcUJKLFVBQVVLLFdBQVc7UUFFaEQsT0FBT0Q7SUFDVDtBQUNGIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "murmuration",
3
3
  "author": "James Smith",
4
- "version": "2.0.25",
4
+ "version": "2.0.28",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/murmuration",
7
7
  "description": "Database statements, transactions and migrations.",
@@ -12,6 +12,21 @@
12
12
  "dependencies": {
13
13
  "necessary": "^15.0.6"
14
14
  },
15
- "devDependencies": {},
16
- "scripts": {}
15
+ "devDependencies": {
16
+ "@swc/core": "1.13.20",
17
+ "watchful-cli": "^1.7.61"
18
+ },
19
+ "scripts": {
20
+ "clean": "rm -rf ./lib",
21
+ "watchful": "watchful -m --transpiler=swc --source-directory=./src --lib-directory=./lib --pause=100",
22
+ "batch": "npm run watchful batch --",
23
+ "batch-debug": "npm run watchful batch -- --debug",
24
+ "incremental": "npm run watchful incremental --",
25
+ "incremental-debug": "npm run watchful incremental -- --debug",
26
+ "build": "npm run clean && npm run batch",
27
+ "build-debug": "npm run clean && npm run batch-debug",
28
+ "watch": "npm run clean && npm run batch && npm run incremental",
29
+ "watch-debug": "npm run clean && npm run batch-debug && npm run incremental-debug"
30
+ },
31
+ "main": "./lib/index.js"
17
32
  }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ export const EMPTY_STRING = "";
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function query(connection, sql, ...remainingArguments) {
3
+ export function query(connection, sql, ...remainingArguments) {
4
4
  const parameters = remainingArguments,
5
5
  callback = parameters.pop(); ///
6
6
 
@@ -17,7 +17,7 @@ function query(connection, sql, ...remainingArguments) {
17
17
  }
18
18
  }
19
19
 
20
- function execute(connection, sql, ...remainingArguments) {
20
+ export function execute(connection, sql, ...remainingArguments) {
21
21
  const parameters = remainingArguments,
22
22
  callback = parameters.pop(); ///
23
23
 
@@ -31,8 +31,3 @@ function execute(connection, sql, ...remainingArguments) {
31
31
  callback(error);
32
32
  }
33
33
  }
34
-
35
- module.exports = {
36
- query,
37
- execute
38
- };
@@ -11,4 +11,4 @@ Object.assign(defaultLog, {
11
11
  fatal: () => {},
12
12
  });
13
13
 
14
- module.exports = defaultLog;
14
+ export default defaultLog;
package/src/index.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ export { default as migrate } from "./migrate";
4
+ export { default as database } from "./database";
5
+ export { default as Statement } from "./statement";
6
+ export { default as defaultLog } from "./defaultLog";
7
+ export { default as transaction } from "./transaction";
8
+ export { default as caseUtilities } from "./utilities/case";
9
+ export { default as CustomMigration } from "./migrate/customMigration";
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- const { arrayUtilities } = require("necessary");
3
+ import { arrayUtilities } from "necessary";
4
4
 
5
5
  const { second } = arrayUtilities;
6
6
 
7
- class CustomMigration {
7
+ export default class CustomMigration {
8
8
  constructor(filePath) {
9
9
  this.filePath = filePath;
10
10
  }
@@ -38,5 +38,3 @@ class CustomMigration {
38
38
  return customMigration;
39
39
  }
40
40
  }
41
-
42
- module.exports = CustomMigration;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- const { arrayUtilities, fileSystemUtilities } = require("necessary");
3
+ import { arrayUtilities, fileSystemUtilities } from "necessary";
4
4
 
5
- const { execute } = require("../database");
5
+ import { execute } from "../database";
6
6
 
7
7
  const { second } = arrayUtilities,
8
8
  { readFile } = fileSystemUtilities;
9
9
 
10
- class Migration {
10
+ export default class Migration {
11
11
  constructor(filePath) {
12
12
  this.filePath = filePath;
13
13
  }
@@ -49,5 +49,3 @@ class Migration {
49
49
  return migration;
50
50
  }
51
51
  }
52
-
53
- module.exports = Migration;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- const { pathUtilities, fileSystemUtilities } = require("necessary");
3
+ import { pathUtilities, fileSystemUtilities } from "necessary";
4
4
 
5
- const Migration = require("./migration");
5
+ import Migration from "./migration";
6
6
 
7
7
  const { readDirectory } = fileSystemUtilities,
8
8
  { concatenatePaths } = pathUtilities;
9
9
 
10
- class Migrations {
10
+ export default class Migrations {
11
11
  constructor(map) {
12
12
  this.map = map;
13
13
  }
@@ -48,8 +48,6 @@ class Migrations {
48
48
  }
49
49
  }
50
50
 
51
- module.exports = Migrations;
52
-
53
51
  function customTextFileNamesFromEEntryNames(entryNames) { return fileNamesFromEntryNames(entryNames, (entryName) => /.+CUSTOM\.txt$/.test(entryName)); }
54
52
 
55
53
  function sqlFileNamesFromEntryNames(entryNames) { return fileNamesFromEntryNames(entryNames, (entryName) => /.+\.sql$/.test(entryName)); }
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
 
3
- const { arrayUtilities, asynchronousUtilities } = require("necessary");
3
+ import { arrayUtilities, asynchronousUtilities } from "necessary";
4
4
 
5
- const Migrations = require("../migrations"),
6
- transaction = require("../../transaction");
5
+ import Migrations from "../migrations";
6
+ import transaction from "../../transaction";
7
7
 
8
- const { insertVersion, selectMaximumVersion } = require("../../table/migration");
8
+ import { insertVersion, selectMaximumVersion } from "../../table/migration";
9
9
 
10
10
  const { first } = arrayUtilities,
11
11
  { whilst } = asynchronousUtilities;
12
12
 
13
- function applyMigrationsOperation(next, done, context) {
13
+ export default function applyMigrationsOperation(next, done, context) {
14
14
  const { configuration, CustomMigrationMap, migrationsDirectoryPath } = context,
15
15
  migrations = Migrations.fromCustomMigrationMapAndMigrationsDirectoryPath(CustomMigrationMap, migrationsDirectoryPath),
16
16
  { log } = configuration;
@@ -30,8 +30,6 @@ function applyMigrationsOperation(next, done, context) {
30
30
  }, context);
31
31
  }
32
32
 
33
- module.exports = applyMigrationsOperation;
34
-
35
33
  function applyMigrationOperation(next, done, context) {
36
34
  const { configuration } = context,
37
35
  { log } = configuration;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
 
3
- const transaction = require("../../transaction");
3
+ import transaction from "../../transaction";
4
4
 
5
- const { createTable, insertVersion, showLikeTables } = require("../../table/migration");
5
+ import { createTable, insertVersion, showLikeTables } from "../../table/migration";
6
6
 
7
- function initialiseOperation(next, done, context) {
7
+ export default function initialiseOperation(next, done, context) {
8
8
  const { configuration } = context,
9
9
  { log } = configuration;
10
10
 
@@ -39,8 +39,6 @@ function initialiseOperation(next, done, context) {
39
39
  }, context);
40
40
  }
41
41
 
42
- module.exports = initialiseOperation;
43
-
44
42
  function checkTablePresentOperatino(connection, abort, proceed, complete, context) {
45
43
  const { configuration } = context,
46
44
  { migrationSQLMap } = configuration,
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- const initialiseOperation = require("./migrate/operation/initialise"),
4
- applyMigrationsOperation = require("./migrate/operation/applyMigrations");
3
+ import initialiseOperation from "./migrate/operation/initialise";
4
+ import applyMigrationsOperation from "./migrate/operation/applyMigrations";
5
5
 
6
- const { asynchronousUtilities } = require("necessary");
6
+ import { asynchronousUtilities } from "necessary";
7
7
 
8
8
  const { sequence } = asynchronousUtilities;
9
9
 
10
- function migrate(configuration, migrationsDirectoryPath, CustomMigrationMap, callback) {
10
+ export default function migrate(configuration, migrationsDirectoryPath, CustomMigrationMap, callback) {
11
11
  if (callback === undefined) {
12
12
  callback = CustomMigrationMap; ///
13
13
 
@@ -32,5 +32,3 @@ function migrate(configuration, migrationsDirectoryPath, CustomMigrationMap, cal
32
32
  callback(error);
33
33
  }, context);
34
34
  }
35
-
36
- module.exports = migrate;
@@ -1,15 +1,15 @@
1
1
  "use strict";
2
2
 
3
- const { arrayUtilities } = require("necessary");
3
+ import { arrayUtilities } from "necessary";
4
4
 
5
- const database = require("./database");
5
+ import database from "./database";
6
6
 
7
- const { EMPTY_STRING } = require("./constants");
7
+ import { EMPTY_STRING } from "./constants";
8
8
 
9
9
  const { first } = arrayUtilities,
10
10
  { query, execute: command } = database;
11
11
 
12
- class Statement {
12
+ export default class Statement {
13
13
  constructor(connection, sql, query, parameters, oneHandler, noneHandler, manyHandler, elseHandler, firstHandler, errorHandler, successHandler) {
14
14
  this.connection = connection;
15
15
  this.sql = sql;
@@ -419,5 +419,3 @@ class Statement {
419
419
  return statement;
420
420
  }
421
421
  }
422
-
423
- module.exports = Statement;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
- const { query, execute } = require("../database");
3
+ import { query, execute } from "../database";
4
4
 
5
- function createTable(connection, sql, callback) {
5
+ export function createTable(connection, sql, callback) {
6
6
  execute(connection, sql, (error) => {
7
7
  if (error) {
8
8
  const log = connection.getLog();
@@ -14,7 +14,7 @@ function createTable(connection, sql, callback) {
14
14
  });
15
15
  }
16
16
 
17
- function insertVersion(connection, version, sql, callback) {
17
+ export function insertVersion(connection, version, sql, callback) {
18
18
  execute(connection, sql, version, (error) => {
19
19
  if (error) {
20
20
  const log = connection.getLog();
@@ -26,7 +26,7 @@ function insertVersion(connection, version, sql, callback) {
26
26
  });
27
27
  }
28
28
 
29
- function showLikeTables(connection, sql, callback) {
29
+ export function showLikeTables(connection, sql, callback) {
30
30
  query(connection, sql, (error, rows) => {
31
31
  if (error) {
32
32
  const log = connection.getLog();
@@ -38,7 +38,7 @@ function showLikeTables(connection, sql, callback) {
38
38
  });
39
39
  }
40
40
 
41
- function selectMaximumVersion(connection, sql, callback) {
41
+ export function selectMaximumVersion(connection, sql, callback) {
42
42
  query(connection, sql, (error, rows) => {
43
43
  if (error) {
44
44
  const log = connection.getLog();
@@ -49,10 +49,3 @@ function selectMaximumVersion(connection, sql, callback) {
49
49
  callback(error, rows);
50
50
  });
51
51
  }
52
-
53
- module.exports = {
54
- createTable,
55
- insertVersion,
56
- showLikeTables,
57
- selectMaximumVersion
58
- };
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
 
3
- const defaultLog = require("./defaultLog");
3
+ import defaultLog from "./defaultLog";
4
4
 
5
- const { asynchronousUtilities } = require("necessary");
5
+ import { asynchronousUtilities } from "necessary";
6
6
 
7
7
  const { whilst, sequence } = asynchronousUtilities;
8
8
 
9
- function transaction(configuration, operations, callback, context) {
9
+ export default function transaction(configuration, operations, callback, context) {
10
10
  const { Connection } = configuration,
11
11
  completed = false;
12
12
 
@@ -48,8 +48,6 @@ function transaction(configuration, operations, callback, context) {
48
48
  });
49
49
  }
50
50
 
51
- module.exports = transaction;
52
-
53
51
  function beginTransactionOperation(next, done, context) {
54
52
  const { connection } = context,
55
53
  log = connection.getLog();
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function camelCaseToSnakeCase(string) {
3
+ export function camelCaseToSnakeCase(string) {
4
4
  return string.replace(/([A-Z])/g, (match, character) => {
5
5
  const lowerCaseCharacter = character.toLowerCase(),
6
6
  characters = `_${lowerCaseCharacter}`
@@ -9,15 +9,10 @@ function camelCaseToSnakeCase(string) {
9
9
  });
10
10
  }
11
11
 
12
- function snakeCaseToCamelCase(string) {
12
+ export function snakeCaseToCamelCase(string) {
13
13
  return string.replace(/_(.)/g, (match, character) => {
14
14
  const upperCaseCharacter = character.toUpperCase();
15
15
 
16
16
  return upperCaseCharacter;
17
17
  });
18
18
  }
19
-
20
- module.exports = {
21
- camelCaseToSnakeCase,
22
- snakeCaseToCamelCase
23
- };
package/bin/constants.js DELETED
@@ -1,7 +0,0 @@
1
- "use strict";
2
-
3
- const EMPTY_STRING = "";
4
-
5
- module.exports = {
6
- EMPTY_STRING
7
- };
package/index.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- const migrate = require("./bin/migrate"),
4
- database = require("./bin/database"),
5
- Statement = require("./bin/statement"),
6
- defaultLog = require("./bin/defaultLog"),
7
- transaction = require("./bin/transaction"),
8
- caseUtilities = require("./bin/utilities/case"),
9
- CustomMigration = require("./bin/migrate/customMigration");
10
-
11
- module.exports = {
12
- migrate,
13
- database,
14
- Statement,
15
- defaultLog,
16
- transaction,
17
- caseUtilities,
18
- CustomMigration
19
- };