js-bao-wss-client / JsBaoClientOptions
Interface: JsBaoClientOptions
Properties
analyticsAutoEvents?
optionalanalyticsAutoEvents:AnalyticsAutoEventsOptions
apiUrl
apiUrl:
string
appId
appId:
string
auth?
optionalauth:object
persistJwtInStorage?
optionalpersistJwtInStorage:boolean
refreshProxy?
optionalrefreshProxy:object
refreshProxy.baseUrl
baseUrl:
string
refreshProxy.cookieMaxAgeSeconds?
optionalcookieMaxAgeSeconds:number
refreshProxy.enabled?
optionalenabled:boolean
storageKeyPrefix?
optionalstorageKeyPrefix:string
autoNetwork?
optionalautoNetwork:boolean
autoOAuth?
optionalautoOAuth:boolean
autoUnlockOfflineOnInit?
optionalautoUnlockOfflineOnInit:boolean
blobUploadConcurrency?
optionalblobUploadConcurrency:number
commitRetryBackoff?
optionalcommitRetryBackoff:object
baseMs?
optionalbaseMs:number
factor?
optionalfactor:number
jitter?
optionaljitter:boolean
maxMs?
optionalmaxMs:number
connectivityProbeTimeoutMs?
optionalconnectivityProbeTimeoutMs:number
databaseConfig?
optionaldatabaseConfig:DatabaseConfig
globalAdminAppId?
optionalglobalAdminAppId:string
logLevel?
optionallogLevel:LogLevel
maxReconnectDelay?
optionalmaxReconnectDelay:number
models
models:
TypedModelConstructor<any>[]
oauthRedirectUri?
optionaloauthRedirectUri:string
offline?
optionaloffline:boolean
onConnectivityCheck()?
optionalonConnectivityCheck: () =>Promise<boolean>
Returns
Promise<boolean>
serviceWorkerBridge?
optionalserviceWorkerBridge:object
enabled?
optionalenabled:boolean
storageConfig?
optionalstorageConfig:StorageConfig
suppressAutoLoginMs?
optionalsuppressAutoLoginMs:number
sync?
optionalsync:object
handshakeTimeoutMs?
optionalhandshakeTimeoutMs:number
outboundDebounceMs?
optionaloutboundDebounceMs:number
token?
optionaltoken:string
wsHeaders?
optionalwsHeaders:Record<string,string>
wsUrl
wsUrl:
string
yjsPersistence?
optionalyjsPersistence:YjsPersistenceFactory
Custom Yjs persistence factory for document storage.
If not provided:
- Browser: uses y-indexeddb (built-in)
- Node.js: no Yjs persistence (documents only synced via server)
For Node.js persistence, use y-sqlite3:
Example
import { SqlitePersistence } from 'y-sqlite3';
const client = new JsBaoClient({
// ...
yjsPersistence: (docId, ydoc, { appId, userId }) => {
return new SqlitePersistence(docId, ydoc, {
dbPath: `~/.my-app/${appId}/${userId}/yjs.sqlite`
});
}
});