xref: /expo/packages/expo-sqlite/src/SQLite.web.ts (revision 8285c032)
1*8285c032STomasz Sapetaimport { UnavailabilityError } from 'expo-modules-core';
2e11b7986SStanisław Chmiela
3e11b7986SStanisław Chmielaimport { Window, DatabaseCallback } from './SQLite.types';
4e11b7986SStanisław Chmiela
5e11b7986SStanisław Chmielaexport function openDatabase(
6e11b7986SStanisław Chmiela  name: string,
7e11b7986SStanisław Chmiela  version: string = '1.0',
8e11b7986SStanisław Chmiela  description: string = name,
9e11b7986SStanisław Chmiela  size: number = 1,
10e11b7986SStanisław Chmiela  callback?: DatabaseCallback
11e11b7986SStanisław Chmiela) {
12e11b7986SStanisław Chmiela  const typedWindow: Window = window as Window;
13e11b7986SStanisław Chmiela  if ('openDatabase' in typedWindow && typedWindow.openDatabase) {
14e11b7986SStanisław Chmiela    return typedWindow.openDatabase(name, version, description, size, callback);
15e11b7986SStanisław Chmiela  }
16e11b7986SStanisław Chmiela  throw new UnavailabilityError('window', 'openDatabase');
17e11b7986SStanisław Chmiela}
18