UNPKG

@shopify/shopify-app-express

Version:

Shopify Express Middleware - to simplify the building of Shopify Apps with Express

43 lines (37 loc) 1.28 kB
import {Session} from '@shopify/shopify-api'; import {AppConfigInterface} from './config-types'; export class AppInstallations { private sessionStorage; constructor(config: AppConfigInterface) { if (!config.sessionStorage.findSessionsByShop) { throw new Error( 'To use this Express package, you must provide a session storage manager that implements findSessionsByShop', ); } if (!config.sessionStorage.deleteSessions) { throw new Error( 'To use this Express package, you must provide a session storage manager that implements deleteSessions', ); } this.sessionStorage = config.sessionStorage; } async includes(shopDomain: string): Promise<boolean> { const shopSessions = await this.sessionStorage.findSessionsByShop!(shopDomain); if (shopSessions.length > 0) { for (const session of shopSessions) { if (session.accessToken) return true; } } return false; } async delete(shopDomain: string): Promise<void> { const shopSessions = await this.sessionStorage.findSessionsByShop!(shopDomain); if (shopSessions.length > 0) { await this.sessionStorage.deleteSessions!( shopSessions.map((session: Session) => session.id), ); } } }