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.
- package/.swcrc +5 -0
- package/lib/constants.js +13 -0
- package/lib/database.js +51 -0
- package/lib/defaultLog.js +22 -0
- package/lib/index.js +47 -0
- package/lib/migrate/customMigration.js +72 -0
- package/lib/migrate/migration.js +76 -0
- package/lib/migrate/migrations.js +93 -0
- package/lib/migrate/operation/applyMigrations.js +110 -0
- package/lib/migrate/operation/initialise.js +71 -0
- package/lib/migrate.js +40 -0
- package/lib/statement.js +461 -0
- package/lib/table/migration.js +63 -0
- package/lib/transaction.js +120 -0
- package/lib/utilities/case.js +32 -0
- package/package.json +18 -3
- package/src/constants.js +3 -0
- package/{bin → src}/database.js +2 -7
- package/{bin → src}/defaultLog.js +1 -1
- package/src/index.js +9 -0
- package/{bin → src}/migrate/customMigration.js +2 -4
- package/{bin → src}/migrate/migration.js +3 -5
- package/{bin → src}/migrate/migrations.js +3 -5
- package/{bin → src}/migrate/operation/applyMigrations.js +5 -7
- package/{bin → src}/migrate/operation/initialise.js +3 -5
- package/{bin → src}/migrate.js +4 -6
- package/{bin → src}/statement.js +4 -6
- package/{bin → src}/table/migration.js +5 -12
- package/{bin → src}/transaction.js +3 -5
- package/{bin → src}/utilities/case.js +2 -7
- package/bin/constants.js +0 -7
- package/index.js +0 -19
|
@@ -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.
|
|
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
|
-
|
|
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
|
}
|
package/src/constants.js
ADDED
package/{bin → src}/database.js
RENAMED
|
@@ -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
|
-
};
|
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
|
-
|
|
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
|
-
|
|
3
|
+
import { arrayUtilities, fileSystemUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
3
|
+
import { pathUtilities, fileSystemUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
3
|
+
import { arrayUtilities, asynchronousUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
import Migrations from "../migrations";
|
|
6
|
+
import transaction from "../../transaction";
|
|
7
7
|
|
|
8
|
-
|
|
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
|
-
|
|
3
|
+
import transaction from "../../transaction";
|
|
4
4
|
|
|
5
|
-
|
|
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,
|
package/{bin → src}/migrate.js
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import initialiseOperation from "./migrate/operation/initialise";
|
|
4
|
+
import applyMigrationsOperation from "./migrate/operation/applyMigrations";
|
|
5
5
|
|
|
6
|
-
|
|
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;
|
package/{bin → src}/statement.js
RENAMED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
import { arrayUtilities } from "necessary";
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
import database from "./database";
|
|
6
6
|
|
|
7
|
-
|
|
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
|
-
|
|
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
|
-
|
|
3
|
+
import defaultLog from "./defaultLog";
|
|
4
4
|
|
|
5
|
-
|
|
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
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
|
-
};
|