@shopify/shopify-app-session-storage-redis 1.0.2 → 1.1.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/build/ts/redis.js CHANGED
@@ -2,21 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.RedisSessionStorage = void 0;
4
4
  var tslib_1 = require("tslib");
5
- var redis_1 = require("redis");
6
5
  var shopify_api_1 = require("@shopify/shopify-api");
7
6
  var migrations_1 = require("./migrations");
7
+ var redis_connection_1 = require("./redis-connection");
8
+ var redis_migrator_1 = require("./redis-migrator");
8
9
  var defaultRedisSessionStorageOptions = {
9
10
  sessionKeyPrefix: 'shopify_sessions',
11
+ migratorOptions: {
12
+ migrationDBIdentifier: 'migrations',
13
+ },
10
14
  };
11
15
  var RedisSessionStorage = /** @class */ (function () {
12
16
  function RedisSessionStorage(dbUrl, opts) {
13
17
  if (opts === void 0) { opts = {}; }
14
- this.dbUrl = dbUrl;
15
- if (typeof this.dbUrl === 'string') {
16
- this.dbUrl = new URL(this.dbUrl);
17
- }
18
18
  this.options = tslib_1.__assign(tslib_1.__assign({}, defaultRedisSessionStorageOptions), opts);
19
- this.ready = this.init();
19
+ this.internalInit = this.init(dbUrl.toString());
20
+ this.migrator = new redis_migrator_1.RedisSessionStorageMigrator(this.client, this.options.migratorOptions, migrations_1.migrationList);
21
+ this.ready = this.migrator.applyMigrations(this.internalInit);
20
22
  }
21
23
  RedisSessionStorage.withCredentials = function (host, db, username, password, opts) {
22
24
  return new RedisSessionStorage(new URL("redis://".concat(encodeURIComponent(username), ":").concat(encodeURIComponent(password), "@").concat(host, "/").concat(db)), opts);
@@ -28,7 +30,7 @@ var RedisSessionStorage = /** @class */ (function () {
28
30
  case 0: return [4 /*yield*/, this.ready];
29
31
  case 1:
30
32
  _a.sent();
31
- return [4 /*yield*/, this.client.set(this.fullKey(session.id), JSON.stringify(session.toPropertyArray()))];
33
+ return [4 /*yield*/, this.client.set(session.id, JSON.stringify(session.toPropertyArray()))];
32
34
  case 2:
33
35
  _a.sent();
34
36
  return [4 /*yield*/, this.addKeyToShopList(session)];
@@ -47,7 +49,7 @@ var RedisSessionStorage = /** @class */ (function () {
47
49
  case 0: return [4 /*yield*/, this.ready];
48
50
  case 1:
49
51
  _a.sent();
50
- return [4 /*yield*/, this.client.get(this.fullKey(id))];
52
+ return [4 /*yield*/, this.client.get(id)];
51
53
  case 2:
52
54
  rawResult = _a.sent();
53
55
  if (!rawResult)
@@ -73,7 +75,7 @@ var RedisSessionStorage = /** @class */ (function () {
73
75
  return [4 /*yield*/, this.removeKeyFromShopList(session.shop, id)];
74
76
  case 3:
75
77
  _a.sent();
76
- return [4 /*yield*/, this.client.del(this.fullKey(id))];
78
+ return [4 /*yield*/, this.client.del(id)];
77
79
  case 4:
78
80
  _a.sent();
79
81
  _a.label = 5;
@@ -107,7 +109,7 @@ var RedisSessionStorage = /** @class */ (function () {
107
109
  case 0: return [4 /*yield*/, this.ready];
108
110
  case 1:
109
111
  _b.sent();
110
- return [4 /*yield*/, this.client.get(this.fullKey(shop))];
112
+ return [4 /*yield*/, this.client.get(shop)];
111
113
  case 2:
112
114
  idKeysArrayString = _b.sent();
113
115
  if (!idKeysArrayString)
@@ -122,7 +124,7 @@ var RedisSessionStorage = /** @class */ (function () {
122
124
  case 4:
123
125
  if (!!idKeysArray_1_1.done) return [3 /*break*/, 7];
124
126
  idKey = idKeysArray_1_1.value;
125
- return [4 /*yield*/, this.client.get(idKey)];
127
+ return [4 /*yield*/, this.client.get(idKey, false)];
126
128
  case 5:
127
129
  rawResult = _b.sent();
128
130
  if (!rawResult)
@@ -153,7 +155,7 @@ var RedisSessionStorage = /** @class */ (function () {
153
155
  return tslib_1.__awaiter(this, void 0, void 0, function () {
154
156
  return tslib_1.__generator(this, function (_a) {
155
157
  switch (_a.label) {
156
- case 0: return [4 /*yield*/, this.client.quit()];
158
+ case 0: return [4 /*yield*/, this.client.disconnect()];
157
159
  case 1:
158
160
  _a.sent();
159
161
  return [2 /*return*/];
@@ -161,17 +163,14 @@ var RedisSessionStorage = /** @class */ (function () {
161
163
  });
162
164
  });
163
165
  };
164
- RedisSessionStorage.prototype.fullKey = function (name) {
165
- return "".concat(this.options.sessionKeyPrefix, "_").concat(name);
166
- };
167
166
  RedisSessionStorage.prototype.addKeyToShopList = function (session) {
168
167
  return tslib_1.__awaiter(this, void 0, void 0, function () {
169
168
  var shopKey, idKey, idKeysArrayString, idKeysArray;
170
169
  return tslib_1.__generator(this, function (_a) {
171
170
  switch (_a.label) {
172
171
  case 0:
173
- shopKey = this.fullKey(session.shop);
174
- idKey = this.fullKey(session.id);
172
+ shopKey = session.shop;
173
+ idKey = this.client.generateFullKey(session.id);
175
174
  return [4 /*yield*/, this.client.get(shopKey)];
176
175
  case 1:
177
176
  idKeysArrayString = _a.sent();
@@ -199,8 +198,8 @@ var RedisSessionStorage = /** @class */ (function () {
199
198
  return tslib_1.__generator(this, function (_a) {
200
199
  switch (_a.label) {
201
200
  case 0:
202
- shopKey = this.fullKey(shop);
203
- idKey = this.fullKey(id);
201
+ shopKey = shop;
202
+ idKey = this.client.generateFullKey(id);
204
203
  return [4 /*yield*/, this.client.get(shopKey)];
205
204
  case 1:
206
205
  idKeysArrayString = _a.sent();
@@ -218,46 +217,14 @@ var RedisSessionStorage = /** @class */ (function () {
218
217
  });
219
218
  });
220
219
  };
221
- RedisSessionStorage.prototype.init = function () {
220
+ RedisSessionStorage.prototype.init = function (dbUrl) {
222
221
  return tslib_1.__awaiter(this, void 0, void 0, function () {
223
222
  return tslib_1.__generator(this, function (_a) {
224
223
  switch (_a.label) {
225
224
  case 0:
226
- this.client = (0, redis_1.createClient)(tslib_1.__assign(tslib_1.__assign({}, this.options), { url: this.dbUrl.toString() }));
227
- if (this.options.onError) {
228
- this.client.on('error', this.options.onError);
229
- }
225
+ this.client = new redis_connection_1.RedisConnection(dbUrl, this.options, this.options.sessionKeyPrefix);
230
226
  return [4 /*yield*/, this.client.connect()];
231
227
  case 1:
232
- _a.sent();
233
- return [4 /*yield*/, this.migrate()];
234
- case 2:
235
- _a.sent();
236
- return [2 /*return*/];
237
- }
238
- });
239
- });
240
- };
241
- RedisSessionStorage.prototype.migrate = function () {
242
- return tslib_1.__awaiter(this, void 0, void 0, function () {
243
- var migrationsRecord, migrations;
244
- return tslib_1.__generator(this, function (_a) {
245
- switch (_a.label) {
246
- case 0: return [4 /*yield*/, this.client.get(this.fullKey('migrations'))];
247
- case 1:
248
- migrationsRecord = _a.sent();
249
- migrations = {};
250
- if (migrationsRecord) {
251
- migrations = JSON.parse(migrationsRecord);
252
- }
253
- if (!!migrations.migrateToVersion1_0_1) return [3 /*break*/, 3];
254
- return [4 /*yield*/, (0, migrations_1.migrateToVersion1_0_1)(this.client, this.options.sessionKeyPrefix, this.fullKey.bind(this))];
255
- case 2:
256
- _a.sent();
257
- migrations.migrateToVersion1_0_1 = true;
258
- _a.label = 3;
259
- case 3: return [4 /*yield*/, this.client.set(this.fullKey('migrations'), JSON.stringify(migrations))];
260
- case 4:
261
228
  _a.sent();
262
229
  return [2 /*return*/];
263
230
  }
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/redis.ts"],"names":[],"mappings":"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"}