@aws-amplify/datastore-storage-adapter 1.2.13 → 1.2.14-unstable.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/ExpoSQLiteAdapter/index.js +7 -0
- package/SQLiteAdapter/index.js +7 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.js +2502 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.js.map +1 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.min.js +2 -0
- package/dist/aws-amplify-datastore-sqlite-adapter-expo.min.js.map +1 -0
- package/dist/aws-amplify-datastore-storage-adapter.js +1179 -1151
- package/dist/aws-amplify-datastore-storage-adapter.js.map +1 -1
- package/dist/aws-amplify-datastore-storage-adapter.min.js +1 -1
- package/dist/aws-amplify-datastore-storage-adapter.min.js.map +1 -1
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.d.ts +3 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js +10 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js.map +1 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.d.ts +17 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js +362 -0
- package/lib/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js.map +1 -0
- package/lib/SQLiteAdapter/SQLiteAdapter.d.ts +3 -23
- package/lib/SQLiteAdapter/SQLiteAdapter.js +3 -582
- package/lib/SQLiteAdapter/SQLiteAdapter.js.map +1 -1
- package/lib/SQLiteAdapter/SQLiteDatabase.d.ts +8 -8
- package/lib/SQLiteAdapter/SQLiteDatabase.js +46 -42
- package/lib/SQLiteAdapter/SQLiteDatabase.js.map +1 -1
- package/lib/common/CommonSQLiteAdapter.d.ts +23 -0
- package/lib/common/CommonSQLiteAdapter.js +579 -0
- package/lib/common/CommonSQLiteAdapter.js.map +1 -0
- package/lib/{SQLiteAdapter → common}/SQLiteUtils.d.ts +3 -2
- package/lib/{SQLiteAdapter → common}/SQLiteUtils.js +26 -2
- package/lib/common/SQLiteUtils.js.map +1 -0
- package/lib/common/constants.d.ts +1 -0
- package/lib/common/constants.js +4 -0
- package/lib/common/constants.js.map +1 -0
- package/lib/common/types.d.ts +13 -0
- package/lib/common/types.js +3 -0
- package/lib/common/types.js.map +1 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.d.ts +3 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js +5 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteAdapter.js.map +1 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.d.ts +17 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js +360 -0
- package/lib-esm/ExpoSQLiteAdapter/ExpoSQLiteDatabase.js.map +1 -0
- package/lib-esm/SQLiteAdapter/SQLiteAdapter.d.ts +3 -23
- package/lib-esm/SQLiteAdapter/SQLiteAdapter.js +3 -582
- package/lib-esm/SQLiteAdapter/SQLiteAdapter.js.map +1 -1
- package/lib-esm/SQLiteAdapter/SQLiteDatabase.d.ts +8 -8
- package/lib-esm/SQLiteAdapter/SQLiteDatabase.js +46 -42
- package/lib-esm/SQLiteAdapter/SQLiteDatabase.js.map +1 -1
- package/lib-esm/common/CommonSQLiteAdapter.d.ts +23 -0
- package/lib-esm/common/CommonSQLiteAdapter.js +577 -0
- package/lib-esm/common/CommonSQLiteAdapter.js.map +1 -0
- package/lib-esm/{SQLiteAdapter → common}/SQLiteUtils.d.ts +3 -2
- package/lib-esm/{SQLiteAdapter → common}/SQLiteUtils.js +24 -1
- package/lib-esm/common/SQLiteUtils.js.map +1 -0
- package/lib-esm/common/constants.d.ts +1 -0
- package/lib-esm/common/constants.js +2 -0
- package/lib-esm/common/constants.js.map +1 -0
- package/lib-esm/common/types.d.ts +13 -0
- package/lib-esm/common/types.js +1 -0
- package/lib-esm/common/types.js.map +1 -0
- package/package.json +7 -4
- package/src/ExpoSQLiteAdapter/ExpoSQLiteAdapter.ts +8 -0
- package/src/ExpoSQLiteAdapter/ExpoSQLiteDatabase.ts +282 -0
- package/src/SQLiteAdapter/SQLiteAdapter.ts +5 -475
- package/src/SQLiteAdapter/SQLiteDatabase.ts +49 -53
- package/src/common/CommonSQLiteAdapter.ts +478 -0
- package/src/{SQLiteAdapter → common}/SQLiteUtils.ts +32 -3
- package/src/common/constants.ts +1 -0
- package/src/common/types.ts +29 -0
- package/webpack.config.dev.js +2 -0
- package/lib/SQLiteAdapter/SQLiteUtils.js.map +0 -1
- package/lib/SQLiteAdapter/types.d.ts +0 -2
- package/lib/SQLiteAdapter/types.js +0 -28
- package/lib/SQLiteAdapter/types.js.map +0 -1
- package/lib-esm/SQLiteAdapter/SQLiteUtils.js.map +0 -1
- package/lib-esm/SQLiteAdapter/types.d.ts +0 -2
- package/lib-esm/SQLiteAdapter/types.js +0 -25
- package/lib-esm/SQLiteAdapter/types.js.map +0 -1
- package/src/SQLiteAdapter/types.ts +0 -31
|
@@ -0,0 +1,579 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
39
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
40
|
+
var m = o[Symbol.asyncIterator], i;
|
|
41
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
42
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
43
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
44
|
+
};
|
|
45
|
+
var __read = (this && this.__read) || function (o, n) {
|
|
46
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
47
|
+
if (!m) return o;
|
|
48
|
+
var i = m.call(o), r, ar = [], e;
|
|
49
|
+
try {
|
|
50
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
51
|
+
}
|
|
52
|
+
catch (error) { e = { error: error }; }
|
|
53
|
+
finally {
|
|
54
|
+
try {
|
|
55
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
56
|
+
}
|
|
57
|
+
finally { if (e) throw e.error; }
|
|
58
|
+
}
|
|
59
|
+
return ar;
|
|
60
|
+
};
|
|
61
|
+
var __values = (this && this.__values) || function(o) {
|
|
62
|
+
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
|
|
63
|
+
if (m) return m.call(o);
|
|
64
|
+
if (o && typeof o.length === "number") return {
|
|
65
|
+
next: function () {
|
|
66
|
+
if (o && i >= o.length) o = void 0;
|
|
67
|
+
return { value: o && o[i++], done: !o };
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
|
|
71
|
+
};
|
|
72
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
73
|
+
var core_1 = require("@aws-amplify/core");
|
|
74
|
+
var SQLiteUtils_1 = require("../common/SQLiteUtils");
|
|
75
|
+
var datastore_1 = require("@aws-amplify/datastore");
|
|
76
|
+
var traverseModel = datastore_1.utils.traverseModel, validatePredicate = datastore_1.utils.validatePredicate, isModelConstructor = datastore_1.utils.isModelConstructor;
|
|
77
|
+
var logger = new core_1.ConsoleLogger('DataStore');
|
|
78
|
+
var CommonSQLiteAdapter = /** @class */ (function () {
|
|
79
|
+
function CommonSQLiteAdapter(db) {
|
|
80
|
+
this.db = db;
|
|
81
|
+
}
|
|
82
|
+
CommonSQLiteAdapter.prototype.setUp = function (theSchema, namespaceResolver, modelInstanceCreator, getModelConstructorByModelName) {
|
|
83
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
84
|
+
var statements, error_1;
|
|
85
|
+
var _this = this;
|
|
86
|
+
return __generator(this, function (_a) {
|
|
87
|
+
switch (_a.label) {
|
|
88
|
+
case 0:
|
|
89
|
+
if (!!this.initPromise) return [3 /*break*/, 1];
|
|
90
|
+
this.initPromise = new Promise(function (res, rej) {
|
|
91
|
+
_this.resolve = res;
|
|
92
|
+
_this.reject = rej;
|
|
93
|
+
});
|
|
94
|
+
return [3 /*break*/, 3];
|
|
95
|
+
case 1: return [4 /*yield*/, this.initPromise];
|
|
96
|
+
case 2:
|
|
97
|
+
_a.sent();
|
|
98
|
+
return [2 /*return*/];
|
|
99
|
+
case 3:
|
|
100
|
+
this.schema = theSchema;
|
|
101
|
+
this.namespaceResolver = namespaceResolver;
|
|
102
|
+
this.modelInstanceCreator = modelInstanceCreator;
|
|
103
|
+
this.getModelConstructorByModelName = getModelConstructorByModelName;
|
|
104
|
+
_a.label = 4;
|
|
105
|
+
case 4:
|
|
106
|
+
_a.trys.push([4, 7, , 8]);
|
|
107
|
+
return [4 /*yield*/, this.db.init()];
|
|
108
|
+
case 5:
|
|
109
|
+
_a.sent();
|
|
110
|
+
statements = SQLiteUtils_1.generateSchemaStatements(this.schema);
|
|
111
|
+
return [4 /*yield*/, this.db.createSchema(statements)];
|
|
112
|
+
case 6:
|
|
113
|
+
_a.sent();
|
|
114
|
+
this.resolve();
|
|
115
|
+
return [3 /*break*/, 8];
|
|
116
|
+
case 7:
|
|
117
|
+
error_1 = _a.sent();
|
|
118
|
+
this.reject(error_1);
|
|
119
|
+
return [3 /*break*/, 8];
|
|
120
|
+
case 8: return [2 /*return*/];
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
CommonSQLiteAdapter.prototype.clear = function () {
|
|
126
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
127
|
+
return __generator(this, function (_a) {
|
|
128
|
+
switch (_a.label) {
|
|
129
|
+
case 0: return [4 /*yield*/, this.db.clear()];
|
|
130
|
+
case 1:
|
|
131
|
+
_a.sent();
|
|
132
|
+
this.initPromise = undefined;
|
|
133
|
+
return [2 /*return*/];
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
};
|
|
138
|
+
CommonSQLiteAdapter.prototype.save = function (model, condition) {
|
|
139
|
+
var e_1, _a;
|
|
140
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
141
|
+
var modelConstructor, tableName, connectedModels, connectionStoreNames, _b, queryStatement, params, fromDB, predicates, predicateObjs, type, isValid, msg, result, saveStatements, connectionStoreNames_1, connectionStoreNames_1_1, resItem, modelName, item, instance, id, _c, queryStatement_1, params_1, fromDB_1, opType, saveStatement, e_1_1;
|
|
142
|
+
return __generator(this, function (_d) {
|
|
143
|
+
switch (_d.label) {
|
|
144
|
+
case 0:
|
|
145
|
+
modelConstructor = Object.getPrototypeOf(model)
|
|
146
|
+
.constructor;
|
|
147
|
+
tableName = modelConstructor.name;
|
|
148
|
+
connectedModels = traverseModel(modelConstructor.name, model, this.schema.namespaces[this.namespaceResolver(modelConstructor)], this.modelInstanceCreator, this.getModelConstructorByModelName);
|
|
149
|
+
connectionStoreNames = Object.values(connectedModels).map(function (_a) {
|
|
150
|
+
var modelName = _a.modelName, item = _a.item, instance = _a.instance;
|
|
151
|
+
return { modelName: modelName, item: item, instance: instance };
|
|
152
|
+
});
|
|
153
|
+
_b = __read(SQLiteUtils_1.queryByIdStatement(model.id, tableName), 2), queryStatement = _b[0], params = _b[1];
|
|
154
|
+
return [4 /*yield*/, this.db.get(queryStatement, params)];
|
|
155
|
+
case 1:
|
|
156
|
+
fromDB = _d.sent();
|
|
157
|
+
if (condition && fromDB) {
|
|
158
|
+
predicates = datastore_1.ModelPredicateCreator.getPredicates(condition);
|
|
159
|
+
predicateObjs = predicates.predicates, type = predicates.type;
|
|
160
|
+
isValid = validatePredicate(fromDB, type, predicateObjs);
|
|
161
|
+
if (!isValid) {
|
|
162
|
+
msg = 'Conditional update failed';
|
|
163
|
+
logger.error(msg, { model: fromDB, condition: predicateObjs });
|
|
164
|
+
throw new Error(msg);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
result = [];
|
|
168
|
+
saveStatements = new Set();
|
|
169
|
+
_d.label = 2;
|
|
170
|
+
case 2:
|
|
171
|
+
_d.trys.push([2, 8, 9, 14]);
|
|
172
|
+
connectionStoreNames_1 = __asyncValues(connectionStoreNames);
|
|
173
|
+
_d.label = 3;
|
|
174
|
+
case 3: return [4 /*yield*/, connectionStoreNames_1.next()];
|
|
175
|
+
case 4:
|
|
176
|
+
if (!(connectionStoreNames_1_1 = _d.sent(), !connectionStoreNames_1_1.done)) return [3 /*break*/, 7];
|
|
177
|
+
resItem = connectionStoreNames_1_1.value;
|
|
178
|
+
modelName = resItem.modelName, item = resItem.item, instance = resItem.instance;
|
|
179
|
+
id = item.id;
|
|
180
|
+
_c = __read(SQLiteUtils_1.queryByIdStatement(id, modelName), 2), queryStatement_1 = _c[0], params_1 = _c[1];
|
|
181
|
+
return [4 /*yield*/, this.db.get(queryStatement_1, params_1)];
|
|
182
|
+
case 5:
|
|
183
|
+
fromDB_1 = _d.sent();
|
|
184
|
+
opType = fromDB_1 === undefined ? datastore_1.OpType.INSERT : datastore_1.OpType.UPDATE;
|
|
185
|
+
saveStatement = fromDB_1
|
|
186
|
+
? SQLiteUtils_1.modelUpdateStatement(instance, modelName)
|
|
187
|
+
: SQLiteUtils_1.modelInsertStatement(instance, modelName);
|
|
188
|
+
saveStatements.add(saveStatement);
|
|
189
|
+
result.push([instance, opType]);
|
|
190
|
+
_d.label = 6;
|
|
191
|
+
case 6: return [3 /*break*/, 3];
|
|
192
|
+
case 7: return [3 /*break*/, 14];
|
|
193
|
+
case 8:
|
|
194
|
+
e_1_1 = _d.sent();
|
|
195
|
+
e_1 = { error: e_1_1 };
|
|
196
|
+
return [3 /*break*/, 14];
|
|
197
|
+
case 9:
|
|
198
|
+
_d.trys.push([9, , 12, 13]);
|
|
199
|
+
if (!(connectionStoreNames_1_1 && !connectionStoreNames_1_1.done && (_a = connectionStoreNames_1.return))) return [3 /*break*/, 11];
|
|
200
|
+
return [4 /*yield*/, _a.call(connectionStoreNames_1)];
|
|
201
|
+
case 10:
|
|
202
|
+
_d.sent();
|
|
203
|
+
_d.label = 11;
|
|
204
|
+
case 11: return [3 /*break*/, 13];
|
|
205
|
+
case 12:
|
|
206
|
+
if (e_1) throw e_1.error;
|
|
207
|
+
return [7 /*endfinally*/];
|
|
208
|
+
case 13: return [7 /*endfinally*/];
|
|
209
|
+
case 14: return [4 /*yield*/, this.db.batchSave(saveStatements)];
|
|
210
|
+
case 15:
|
|
211
|
+
_d.sent();
|
|
212
|
+
return [2 /*return*/, result];
|
|
213
|
+
}
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
CommonSQLiteAdapter.prototype.load = function (namespaceName, srcModelName, records) {
|
|
218
|
+
var records_1, records_1_1, records_2, records_2_1;
|
|
219
|
+
var e_2, _a, e_3, _b, e_4, _c;
|
|
220
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
221
|
+
var namespace, relations, connectionTableNames, modelConstructor, relations_1, relations_1_1, relation, fieldName, tableName, targetName, relationType, modelConstructor_1, _d, recordItem, getByfield, _e, queryStatement, params, connectionRecord, e_3_1, recordItem, _f, queryStatement, params, connectionRecord, e_4_1, _, e_2_1;
|
|
222
|
+
var _this = this;
|
|
223
|
+
return __generator(this, function (_g) {
|
|
224
|
+
switch (_g.label) {
|
|
225
|
+
case 0:
|
|
226
|
+
namespace = this.schema.namespaces[namespaceName];
|
|
227
|
+
relations = namespace.relationships[srcModelName].relationTypes;
|
|
228
|
+
connectionTableNames = relations.map(function (_a) {
|
|
229
|
+
var modelName = _a.modelName;
|
|
230
|
+
return modelName;
|
|
231
|
+
});
|
|
232
|
+
modelConstructor = this.getModelConstructorByModelName(namespaceName, srcModelName);
|
|
233
|
+
if (connectionTableNames.length === 0) {
|
|
234
|
+
return [2 /*return*/, records.map(function (record) {
|
|
235
|
+
return _this.modelInstanceCreator(modelConstructor, record);
|
|
236
|
+
})];
|
|
237
|
+
}
|
|
238
|
+
_g.label = 1;
|
|
239
|
+
case 1:
|
|
240
|
+
_g.trys.push([1, 34, 35, 40]);
|
|
241
|
+
relations_1 = __asyncValues(relations);
|
|
242
|
+
_g.label = 2;
|
|
243
|
+
case 2: return [4 /*yield*/, relations_1.next()];
|
|
244
|
+
case 3:
|
|
245
|
+
if (!(relations_1_1 = _g.sent(), !relations_1_1.done)) return [3 /*break*/, 33];
|
|
246
|
+
relation = relations_1_1.value;
|
|
247
|
+
fieldName = relation.fieldName, tableName = relation.modelName, targetName = relation.targetName, relationType = relation.relationType;
|
|
248
|
+
modelConstructor_1 = this.getModelConstructorByModelName(namespaceName, tableName);
|
|
249
|
+
_d = relationType;
|
|
250
|
+
switch (_d) {
|
|
251
|
+
case 'HAS_ONE': return [3 /*break*/, 4];
|
|
252
|
+
case 'BELONGS_TO': return [3 /*break*/, 17];
|
|
253
|
+
case 'HAS_MANY': return [3 /*break*/, 30];
|
|
254
|
+
}
|
|
255
|
+
return [3 /*break*/, 31];
|
|
256
|
+
case 4:
|
|
257
|
+
_g.trys.push([4, 10, 11, 16]);
|
|
258
|
+
records_1 = __asyncValues(records);
|
|
259
|
+
_g.label = 5;
|
|
260
|
+
case 5: return [4 /*yield*/, records_1.next()];
|
|
261
|
+
case 6:
|
|
262
|
+
if (!(records_1_1 = _g.sent(), !records_1_1.done)) return [3 /*break*/, 9];
|
|
263
|
+
recordItem = records_1_1.value;
|
|
264
|
+
getByfield = recordItem[targetName] ? targetName : fieldName;
|
|
265
|
+
if (!recordItem[getByfield])
|
|
266
|
+
return [3 /*break*/, 9];
|
|
267
|
+
_e = __read(SQLiteUtils_1.queryByIdStatement(recordItem[getByfield], tableName), 2), queryStatement = _e[0], params = _e[1];
|
|
268
|
+
return [4 /*yield*/, this.db.get(queryStatement, params)];
|
|
269
|
+
case 7:
|
|
270
|
+
connectionRecord = _g.sent();
|
|
271
|
+
recordItem[fieldName] =
|
|
272
|
+
connectionRecord &&
|
|
273
|
+
this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
274
|
+
_g.label = 8;
|
|
275
|
+
case 8: return [3 /*break*/, 5];
|
|
276
|
+
case 9: return [3 /*break*/, 16];
|
|
277
|
+
case 10:
|
|
278
|
+
e_3_1 = _g.sent();
|
|
279
|
+
e_3 = { error: e_3_1 };
|
|
280
|
+
return [3 /*break*/, 16];
|
|
281
|
+
case 11:
|
|
282
|
+
_g.trys.push([11, , 14, 15]);
|
|
283
|
+
if (!(records_1_1 && !records_1_1.done && (_b = records_1.return))) return [3 /*break*/, 13];
|
|
284
|
+
return [4 /*yield*/, _b.call(records_1)];
|
|
285
|
+
case 12:
|
|
286
|
+
_g.sent();
|
|
287
|
+
_g.label = 13;
|
|
288
|
+
case 13: return [3 /*break*/, 15];
|
|
289
|
+
case 14:
|
|
290
|
+
if (e_3) throw e_3.error;
|
|
291
|
+
return [7 /*endfinally*/];
|
|
292
|
+
case 15: return [7 /*endfinally*/];
|
|
293
|
+
case 16: return [3 /*break*/, 32];
|
|
294
|
+
case 17:
|
|
295
|
+
_g.trys.push([17, 23, 24, 29]);
|
|
296
|
+
records_2 = __asyncValues(records);
|
|
297
|
+
_g.label = 18;
|
|
298
|
+
case 18: return [4 /*yield*/, records_2.next()];
|
|
299
|
+
case 19:
|
|
300
|
+
if (!(records_2_1 = _g.sent(), !records_2_1.done)) return [3 /*break*/, 22];
|
|
301
|
+
recordItem = records_2_1.value;
|
|
302
|
+
if (!recordItem[targetName]) return [3 /*break*/, 21];
|
|
303
|
+
_f = __read(SQLiteUtils_1.queryByIdStatement(recordItem[targetName], tableName), 2), queryStatement = _f[0], params = _f[1];
|
|
304
|
+
return [4 /*yield*/, this.db.get(queryStatement, params)];
|
|
305
|
+
case 20:
|
|
306
|
+
connectionRecord = _g.sent();
|
|
307
|
+
recordItem[fieldName] =
|
|
308
|
+
connectionRecord &&
|
|
309
|
+
this.modelInstanceCreator(modelConstructor_1, connectionRecord);
|
|
310
|
+
delete recordItem[targetName];
|
|
311
|
+
_g.label = 21;
|
|
312
|
+
case 21: return [3 /*break*/, 18];
|
|
313
|
+
case 22: return [3 /*break*/, 29];
|
|
314
|
+
case 23:
|
|
315
|
+
e_4_1 = _g.sent();
|
|
316
|
+
e_4 = { error: e_4_1 };
|
|
317
|
+
return [3 /*break*/, 29];
|
|
318
|
+
case 24:
|
|
319
|
+
_g.trys.push([24, , 27, 28]);
|
|
320
|
+
if (!(records_2_1 && !records_2_1.done && (_c = records_2.return))) return [3 /*break*/, 26];
|
|
321
|
+
return [4 /*yield*/, _c.call(records_2)];
|
|
322
|
+
case 25:
|
|
323
|
+
_g.sent();
|
|
324
|
+
_g.label = 26;
|
|
325
|
+
case 26: return [3 /*break*/, 28];
|
|
326
|
+
case 27:
|
|
327
|
+
if (e_4) throw e_4.error;
|
|
328
|
+
return [7 /*endfinally*/];
|
|
329
|
+
case 28: return [7 /*endfinally*/];
|
|
330
|
+
case 29: return [3 /*break*/, 32];
|
|
331
|
+
case 30:
|
|
332
|
+
// TODO: Lazy loading
|
|
333
|
+
return [3 /*break*/, 32];
|
|
334
|
+
case 31:
|
|
335
|
+
_ = relationType;
|
|
336
|
+
throw new Error("invalid relation type " + relationType);
|
|
337
|
+
case 32: return [3 /*break*/, 2];
|
|
338
|
+
case 33: return [3 /*break*/, 40];
|
|
339
|
+
case 34:
|
|
340
|
+
e_2_1 = _g.sent();
|
|
341
|
+
e_2 = { error: e_2_1 };
|
|
342
|
+
return [3 /*break*/, 40];
|
|
343
|
+
case 35:
|
|
344
|
+
_g.trys.push([35, , 38, 39]);
|
|
345
|
+
if (!(relations_1_1 && !relations_1_1.done && (_a = relations_1.return))) return [3 /*break*/, 37];
|
|
346
|
+
return [4 /*yield*/, _a.call(relations_1)];
|
|
347
|
+
case 36:
|
|
348
|
+
_g.sent();
|
|
349
|
+
_g.label = 37;
|
|
350
|
+
case 37: return [3 /*break*/, 39];
|
|
351
|
+
case 38:
|
|
352
|
+
if (e_2) throw e_2.error;
|
|
353
|
+
return [7 /*endfinally*/];
|
|
354
|
+
case 39: return [7 /*endfinally*/];
|
|
355
|
+
case 40: return [2 /*return*/, records.map(function (record) {
|
|
356
|
+
return _this.modelInstanceCreator(modelConstructor, record);
|
|
357
|
+
})];
|
|
358
|
+
}
|
|
359
|
+
});
|
|
360
|
+
});
|
|
361
|
+
};
|
|
362
|
+
CommonSQLiteAdapter.prototype.query = function (modelConstructor, predicate, pagination) {
|
|
363
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
364
|
+
var tableName, namespaceName, predicates, sortPredicates, limit, page, queryById, records;
|
|
365
|
+
var _this = this;
|
|
366
|
+
return __generator(this, function (_a) {
|
|
367
|
+
switch (_a.label) {
|
|
368
|
+
case 0:
|
|
369
|
+
tableName = modelConstructor.name;
|
|
370
|
+
namespaceName = this.namespaceResolver(modelConstructor);
|
|
371
|
+
predicates = predicate && datastore_1.ModelPredicateCreator.getPredicates(predicate);
|
|
372
|
+
sortPredicates = pagination &&
|
|
373
|
+
pagination.sort &&
|
|
374
|
+
datastore_1.ModelSortPredicateCreator.getPredicates(pagination.sort);
|
|
375
|
+
limit = pagination && pagination.limit;
|
|
376
|
+
page = limit && pagination.page;
|
|
377
|
+
queryById = predicates && this.idFromPredicate(predicates);
|
|
378
|
+
return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
|
|
379
|
+
var record, _a, queryStatement, params;
|
|
380
|
+
return __generator(this, function (_b) {
|
|
381
|
+
switch (_b.label) {
|
|
382
|
+
case 0:
|
|
383
|
+
if (!queryById) return [3 /*break*/, 2];
|
|
384
|
+
return [4 /*yield*/, this.getById(tableName, queryById)];
|
|
385
|
+
case 1:
|
|
386
|
+
record = _b.sent();
|
|
387
|
+
return [2 /*return*/, record ? [record] : []];
|
|
388
|
+
case 2:
|
|
389
|
+
_a = __read(SQLiteUtils_1.queryAllStatement(tableName, predicates, sortPredicates, limit, page), 2), queryStatement = _a[0], params = _a[1];
|
|
390
|
+
return [4 /*yield*/, this.db.getAll(queryStatement, params)];
|
|
391
|
+
case 3: return [2 /*return*/, _b.sent()];
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
}); })()];
|
|
395
|
+
case 1:
|
|
396
|
+
records = _a.sent();
|
|
397
|
+
return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, records)];
|
|
398
|
+
case 2: return [2 /*return*/, _a.sent()];
|
|
399
|
+
}
|
|
400
|
+
});
|
|
401
|
+
});
|
|
402
|
+
};
|
|
403
|
+
CommonSQLiteAdapter.prototype.getById = function (tableName, id) {
|
|
404
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
405
|
+
var _a, queryStatement, params, record;
|
|
406
|
+
return __generator(this, function (_b) {
|
|
407
|
+
switch (_b.label) {
|
|
408
|
+
case 0:
|
|
409
|
+
_a = __read(SQLiteUtils_1.queryByIdStatement(id, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
410
|
+
return [4 /*yield*/, this.db.get(queryStatement, params)];
|
|
411
|
+
case 1:
|
|
412
|
+
record = _b.sent();
|
|
413
|
+
return [2 /*return*/, record];
|
|
414
|
+
}
|
|
415
|
+
});
|
|
416
|
+
});
|
|
417
|
+
};
|
|
418
|
+
CommonSQLiteAdapter.prototype.idFromPredicate = function (predicates) {
|
|
419
|
+
var predicateObjs = predicates.predicates;
|
|
420
|
+
var idPredicate = predicateObjs.length === 1 &&
|
|
421
|
+
predicateObjs.find(function (p) { return datastore_1.isPredicateObj(p) && p.field === 'id' && p.operator === 'eq'; });
|
|
422
|
+
return idPredicate && idPredicate.operand;
|
|
423
|
+
};
|
|
424
|
+
CommonSQLiteAdapter.prototype.queryOne = function (modelConstructor, firstOrLast) {
|
|
425
|
+
if (firstOrLast === void 0) { firstOrLast = datastore_1.QueryOne.FIRST; }
|
|
426
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
427
|
+
var tableName, _a, queryStatement, params, result, modelInstance;
|
|
428
|
+
return __generator(this, function (_b) {
|
|
429
|
+
switch (_b.label) {
|
|
430
|
+
case 0:
|
|
431
|
+
tableName = modelConstructor.name;
|
|
432
|
+
_a = __read(SQLiteUtils_1.queryOneStatement(firstOrLast, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
433
|
+
return [4 /*yield*/, this.db.get(queryStatement, params)];
|
|
434
|
+
case 1:
|
|
435
|
+
result = _b.sent();
|
|
436
|
+
modelInstance = result && this.modelInstanceCreator(modelConstructor, result);
|
|
437
|
+
return [2 /*return*/, modelInstance];
|
|
438
|
+
}
|
|
439
|
+
});
|
|
440
|
+
});
|
|
441
|
+
};
|
|
442
|
+
// Currently does not cascade
|
|
443
|
+
// TODO: use FKs in relations and have `ON DELETE CASCADE` set
|
|
444
|
+
// For Has Many and Has One relations to have SQL handle cascades automatically
|
|
445
|
+
CommonSQLiteAdapter.prototype.delete = function (modelOrModelConstructor, condition) {
|
|
446
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
447
|
+
var modelConstructor, namespaceName, tableName, predicates, queryStatement, deleteStatement, models, modelInstances, model, modelConstructor, tableName, _a, queryStatement, params, fromDB, msg, predicates, predicateObjs, type, isValid, msg, _b, deleteStatement, deleteParams, _c, deleteStatement, params;
|
|
448
|
+
return __generator(this, function (_d) {
|
|
449
|
+
switch (_d.label) {
|
|
450
|
+
case 0:
|
|
451
|
+
if (!isModelConstructor(modelOrModelConstructor)) return [3 /*break*/, 3];
|
|
452
|
+
modelConstructor = modelOrModelConstructor;
|
|
453
|
+
namespaceName = this.namespaceResolver(modelConstructor);
|
|
454
|
+
tableName = modelConstructor.name;
|
|
455
|
+
predicates = condition && datastore_1.ModelPredicateCreator.getPredicates(condition);
|
|
456
|
+
queryStatement = SQLiteUtils_1.queryAllStatement(tableName, predicates);
|
|
457
|
+
deleteStatement = SQLiteUtils_1.deleteByPredicateStatement(tableName, predicates);
|
|
458
|
+
return [4 /*yield*/, this.db.selectAndDelete(queryStatement, deleteStatement)];
|
|
459
|
+
case 1:
|
|
460
|
+
models = _d.sent();
|
|
461
|
+
return [4 /*yield*/, this.load(namespaceName, modelConstructor.name, models)];
|
|
462
|
+
case 2:
|
|
463
|
+
modelInstances = _d.sent();
|
|
464
|
+
return [2 /*return*/, [modelInstances, modelInstances]];
|
|
465
|
+
case 3:
|
|
466
|
+
model = modelOrModelConstructor;
|
|
467
|
+
modelConstructor = Object.getPrototypeOf(model)
|
|
468
|
+
.constructor;
|
|
469
|
+
tableName = modelConstructor.name;
|
|
470
|
+
if (!condition) return [3 /*break*/, 6];
|
|
471
|
+
_a = __read(SQLiteUtils_1.queryByIdStatement(model.id, tableName), 2), queryStatement = _a[0], params = _a[1];
|
|
472
|
+
return [4 /*yield*/, this.db.get(queryStatement, params)];
|
|
473
|
+
case 4:
|
|
474
|
+
fromDB = _d.sent();
|
|
475
|
+
if (fromDB === undefined) {
|
|
476
|
+
msg = 'Model instance not found in storage';
|
|
477
|
+
logger.warn(msg, { model: model });
|
|
478
|
+
return [2 /*return*/, [[model], []]];
|
|
479
|
+
}
|
|
480
|
+
predicates = datastore_1.ModelPredicateCreator.getPredicates(condition);
|
|
481
|
+
predicateObjs = predicates.predicates, type = predicates.type;
|
|
482
|
+
isValid = validatePredicate(fromDB, type, predicateObjs);
|
|
483
|
+
if (!isValid) {
|
|
484
|
+
msg = 'Conditional update failed';
|
|
485
|
+
logger.error(msg, { model: fromDB, condition: predicateObjs });
|
|
486
|
+
throw new Error(msg);
|
|
487
|
+
}
|
|
488
|
+
_b = __read(SQLiteUtils_1.deleteByIdStatement(model.id, tableName), 2), deleteStatement = _b[0], deleteParams = _b[1];
|
|
489
|
+
return [4 /*yield*/, this.db.save(deleteStatement, deleteParams)];
|
|
490
|
+
case 5:
|
|
491
|
+
_d.sent();
|
|
492
|
+
return [2 /*return*/, [[model], [model]]];
|
|
493
|
+
case 6:
|
|
494
|
+
_c = __read(SQLiteUtils_1.deleteByIdStatement(model.id, tableName), 2), deleteStatement = _c[0], params = _c[1];
|
|
495
|
+
return [4 /*yield*/, this.db.save(deleteStatement, params)];
|
|
496
|
+
case 7:
|
|
497
|
+
_d.sent();
|
|
498
|
+
return [2 /*return*/, [[model], [model]]];
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
});
|
|
502
|
+
};
|
|
503
|
+
CommonSQLiteAdapter.prototype.batchSave = function (modelConstructor, items) {
|
|
504
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
505
|
+
var tableName, result, itemsToSave, queryStatements, deleteStatements, saveStatements, _loop_1, this_1, items_1, items_1_1, item, queryResponses;
|
|
506
|
+
var e_5, _a;
|
|
507
|
+
return __generator(this, function (_b) {
|
|
508
|
+
switch (_b.label) {
|
|
509
|
+
case 0:
|
|
510
|
+
tableName = modelConstructor.name;
|
|
511
|
+
result = [];
|
|
512
|
+
itemsToSave = [];
|
|
513
|
+
queryStatements = new Set();
|
|
514
|
+
deleteStatements = new Set();
|
|
515
|
+
saveStatements = new Set();
|
|
516
|
+
_loop_1 = function (item) {
|
|
517
|
+
var connectedModels = traverseModel(modelConstructor.name, this_1.modelInstanceCreator(modelConstructor, item), this_1.schema.namespaces[this_1.namespaceResolver(modelConstructor)], this_1.modelInstanceCreator, this_1.getModelConstructorByModelName);
|
|
518
|
+
var id = item.id, _deleted = item._deleted;
|
|
519
|
+
var instance = connectedModels.find(function (_a) {
|
|
520
|
+
var instance = _a.instance;
|
|
521
|
+
return instance.id === id;
|
|
522
|
+
}).instance;
|
|
523
|
+
if (_deleted) {
|
|
524
|
+
// create the delete statements right away
|
|
525
|
+
var deleteStatement = SQLiteUtils_1.deleteByIdStatement(instance.id, tableName);
|
|
526
|
+
deleteStatements.add(deleteStatement);
|
|
527
|
+
result.push([item, datastore_1.OpType.DELETE]);
|
|
528
|
+
}
|
|
529
|
+
else {
|
|
530
|
+
// query statements for the saves at first
|
|
531
|
+
var queryStatement = SQLiteUtils_1.queryByIdStatement(id, tableName);
|
|
532
|
+
queryStatements.add(queryStatement);
|
|
533
|
+
// combination of insert and update items
|
|
534
|
+
itemsToSave.push(instance);
|
|
535
|
+
}
|
|
536
|
+
};
|
|
537
|
+
this_1 = this;
|
|
538
|
+
try {
|
|
539
|
+
for (items_1 = __values(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {
|
|
540
|
+
item = items_1_1.value;
|
|
541
|
+
_loop_1(item);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
545
|
+
finally {
|
|
546
|
+
try {
|
|
547
|
+
if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);
|
|
548
|
+
}
|
|
549
|
+
finally { if (e_5) throw e_5.error; }
|
|
550
|
+
}
|
|
551
|
+
return [4 /*yield*/, this.db.batchQuery(queryStatements)];
|
|
552
|
+
case 1:
|
|
553
|
+
queryResponses = _b.sent();
|
|
554
|
+
queryResponses.forEach(function (response, idx) {
|
|
555
|
+
if (response === undefined) {
|
|
556
|
+
var insertStatement = SQLiteUtils_1.modelInsertStatement(itemsToSave[idx], tableName);
|
|
557
|
+
saveStatements.add(insertStatement);
|
|
558
|
+
result.push([itemsToSave[idx], datastore_1.OpType.INSERT]);
|
|
559
|
+
}
|
|
560
|
+
else {
|
|
561
|
+
var updateStatement = SQLiteUtils_1.modelUpdateStatement(itemsToSave[idx], tableName);
|
|
562
|
+
saveStatements.add(updateStatement);
|
|
563
|
+
result.push([itemsToSave[idx], datastore_1.OpType.UPDATE]);
|
|
564
|
+
}
|
|
565
|
+
});
|
|
566
|
+
// perform all of the insert/update/delete operations in a single transaction
|
|
567
|
+
return [4 /*yield*/, this.db.batchSave(saveStatements, deleteStatements)];
|
|
568
|
+
case 2:
|
|
569
|
+
// perform all of the insert/update/delete operations in a single transaction
|
|
570
|
+
_b.sent();
|
|
571
|
+
return [2 /*return*/, result];
|
|
572
|
+
}
|
|
573
|
+
});
|
|
574
|
+
});
|
|
575
|
+
};
|
|
576
|
+
return CommonSQLiteAdapter;
|
|
577
|
+
}());
|
|
578
|
+
exports.CommonSQLiteAdapter = CommonSQLiteAdapter;
|
|
579
|
+
//# sourceMappingURL=CommonSQLiteAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommonSQLiteAdapter.js","sourceRoot":"","sources":["../../src/common/CommonSQLiteAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { InternalSchema, SchemaModel, PersistentModel, PredicatesGroup, SortPredicatesGroup } from '@aws-amplify/datastore';
|
|
2
|
-
|
|
1
|
+
import { InternalSchema, SchemaModel, PersistentModel, PredicatesGroup, SortPredicatesGroup, GraphQLScalarType } from '@aws-amplify/datastore';
|
|
2
|
+
import { ParameterizedStatement } from './types';
|
|
3
|
+
export declare function getSQLiteType(scalar: keyof Omit<typeof GraphQLScalarType, 'getJSType' | 'getValidationFunction' | 'getSQLiteType'>): 'TEXT' | 'INTEGER' | 'REAL' | 'BLOB';
|
|
3
4
|
export declare function generateSchemaStatements(schema: InternalSchema): string[];
|
|
4
5
|
export declare const implicitAuthFieldsForModel: (model: SchemaModel) => string[];
|
|
5
6
|
export declare function modelCreateTableStatement(model: SchemaModel, userModel?: boolean): string;
|