2023-05-24 02:53:53 +08:00
import { safeRun } from "../common/util.ts" ;
2023-07-14 22:56:20 +08:00
import { Client } from "./client.ts" ;
2022-10-10 20:50:21 +08:00
2023-08-30 23:25:54 +08:00
const syncMode = window . silverBulletConfig . syncOnly ||
2023-08-30 03:17:29 +08:00
! ! localStorage . getItem ( "syncMode" ) ;
2023-08-28 23:12:15 +08:00
2022-10-10 20:50:21 +08:00
safeRun ( async ( ) = > {
2023-12-10 20:23:42 +08:00
console . log (
"Booting SilverBullet client" ,
syncMode ? "in Sync Mode" : "in Online Mode" ,
) ;
2022-10-10 20:50:21 +08:00
2023-07-14 22:56:20 +08:00
const client = new Client (
2022-10-10 20:50:21 +08:00
document . getElementById ( "sb-root" ) ! ,
2023-08-30 03:17:29 +08:00
syncMode ,
2022-10-10 20:50:21 +08:00
) ;
2023-07-14 22:56:20 +08:00
await client . init ( ) ;
window . client = client ;
2022-10-10 20:50:21 +08:00
} ) ;
if ( navigator . serviceWorker ) {
navigator . serviceWorker
2022-11-24 19:04:00 +08:00
. register ( new URL ( "/service_worker.js" , location . href ) , {
2022-10-10 20:50:21 +08:00
type : "module" ,
} )
2022-11-24 23:55:30 +08:00
. then ( ( ) = > {
2022-10-10 20:50:21 +08:00
console . log ( "Service worker registered..." ) ;
} ) ;
2023-08-30 03:17:29 +08:00
if ( syncMode ) {
2023-08-26 14:31:51 +08:00
navigator . serviceWorker . ready . then ( ( registration ) = > {
registration . active ! . postMessage ( {
type : "config" ,
config : window.silverBulletConfig ,
} ) ;
2023-05-24 02:53:53 +08:00
} ) ;
2023-08-26 14:31:51 +08:00
}
2022-10-10 20:50:21 +08:00
} else {
2023-05-24 02:53:53 +08:00
console . warn (
"Not launching service worker, likely because not running from localhost or over HTTPs. This means SilverBullet will not be available offline." ,
2022-10-10 20:50:21 +08:00
) ;
}
2023-05-24 11:42:24 +08:00
if ( ! globalThis . indexedDB ) {
alert (
"SilverBullet requires IndexedDB to operate and it is not available in your browser. Please use a recent version of Chrome, Firefox (not in private mode) or Safari." ,
) ;
}