@shopify/shopify-app-session-storage-redis
Version:
Shopify App Session Storage for Redis
1 lines • 2.18 kB
Source Map (JSON)
{"version":3,"file":"migrations.mjs","sources":["../../../src/migrations.ts"],"sourcesContent":["import {Session} from '@shopify/shopify-api';\nimport {MigrationOperation} from '@shopify/shopify-app-session-storage';\n\nimport {RedisConnection} from './redis-connection';\n\nexport const migrationList = [\n new MigrationOperation(\n // This migration name cannot be changed as it has already been released\n 'migrateToVersion1_0_1',\n migrateAddShopKeyToTrackSessionsByShop,\n ),\n];\n\n// need to add shop keys with list of associated session keys to support\n// the new findSessionsByShop in v2.x.x\nexport async function migrateAddShopKeyToTrackSessionsByShop(\n connection: RedisConnection,\n): Promise<void> {\n const shopsAndSessions: Record<string, string[]> = {};\n const keys = await connection.keys('*');\n for (const key of keys) {\n if (key.startsWith(connection.sessionStorageIdentifier)) {\n const session = Session.fromPropertyArray(\n JSON.parse((await connection.get(key, false)) as string),\n );\n if (!shopsAndSessions[session.shop]) {\n shopsAndSessions[session.shop] = [];\n }\n shopsAndSessions[session.shop].push(key);\n }\n }\n // eslint-disable-next-line guard-for-in\n for (const shop in shopsAndSessions) {\n await connection.set(shop, JSON.stringify(shopsAndSessions[shop]));\n }\n}\n"],"names":[],"mappings":";;;AAKO,MAAM,aAAa,GAAG;AAC3B,IAAA,IAAI,kBAAkB;;IAEpB,uBAAuB,EACvB,sCAAsC,CACvC;;AAGH;AACA;AACO,eAAe,sCAAsC,CAC1D,UAA2B,EAAA;IAE3B,MAAM,gBAAgB,GAA6B,EAAE;IACrD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC;AACvC,IAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;QACtB,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;YACvD,MAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,CACvC,IAAI,CAAC,KAAK,EAAE,MAAM,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAY,CACzD;YACD,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACnC,gBAAA,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;YACrC;YACA,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;QAC1C;IACF;;AAEA,IAAA,KAAK,MAAM,IAAI,IAAI,gBAAgB,EAAE;AACnC,QAAA,MAAM,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE;AACF;;;;"}