@blackglory/pubsub-js

```sh npm install --save @blackglory/pubsub-js # or yarn add @blackglory/pubsub-js ```

Usage no npm install needed!

<script type="module">
  import blackgloryPubsubJs from 'https://cdn.skypack.dev/@blackglory/pubsub-js';
</script>

README

pubsub-js

Install

npm install --save @blackglory/pubsub-js
# or
yarn add @blackglory/pubsub-js

API

PubSubClient

new PubSubClient{
  server: string
, token?: string
, basicAuth?: {
    username: string
  , password: string
  }
, keepalive?: boolean
, heartbeat?: IHeartbeatOptions
, timeout?: number
})
interface IPubSubClientRequestOptions {
  signal?: AbortSignal
  token?: string
  keepalive?: boolean
  timeout?: number | false
}
interface IPubSubClientObserveOptions {
  token?: string
  heartbeat?: IHeartbeatOptions
}
interface IHeartbeatOptions {
  timeout: number
}

publish

PubSubClient#publish(
  namespace: string
, val: string
, options?: IPubSubClientRequestOptions
): Promise<void>

publishJSON

PubSubClient#publishJSON(
  namespace: string
, val: Json
, options?: IPubSubClientRequestOptions
): Promise<void>

subscribe

PubSubClient#subscribe(
  namespace: string
, options?: IPubSubClientObserveOptions
): Observable<string>

subscribeJSON

PubSubClient#subscribeJSON(
  namespace: string
, options?: IPubSubClientObserveOptions
): Observable<Json>

PubSubManager

new PubSubManager({
  server: string
, adminPassword: string
, keepalive?: boolean
, timeout?: number
})
interface IPubSubManagerRequestOptions {
  signal?: AbortSignal
  keepalive?: boolean
  timeout?: number | false
}

JsonSchema

getNamespaces
PubSubManager#JsonSchema.getNamespaces(
  options?: IPubSubManagerRequestOptions
): Promise<string[]>
get
PubSubManager#JsonSchema.get(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<Json>
set
PubSubManager#JsonSchema.set(
  namespace: string
, schema: Json
, options?: IPubSubManagerRequestOptions
): Promise<void>
remove
PubSubManager#JsonSchema.remove(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>

RevisionPolicy

getNamespaces
PubSubManager#RevisionPolicy.getNamespaces(
  options?: IPubSubManagerRequestOptions
): Promise<string[]>
get
PubSubManager#RevisionPolicy.get(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<{
  updateRevisionRequired: boolean | null
  deleteRevisionRequired: boolean | null
}>
setUpdateRevisionRequired
PubSubManager#RevisionPolicy.setUpdateRevisionRequired(
  namespace: string
, val: boolean
, options?: IPubSubManagerRequestOptions
): Promise<void>
removeUpdateRevisionRequired
PubSubManager#RevisionPolicy.removeUpdateRevisionRequired(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>
setDeleteRevisionRequired
PubSubManager#RevisionPolicy.setDeleteRevisionRequired(
  namespace: string
, val: boolean
, options?: IPubSubManagerRequestOptions
): Promise<void>
removeDeleteRevisionRequired
PubSubManager#RevisionPolicy.removeDeleteRevisionRequired(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>

Blacklist

getNamespaces
PubSubManager#Blacklist.getNamespaces(
  options?: IPubSubManagerRequestOptions
): Promise<string[]>
add
PubSubManager#Blacklist.add(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>
remove
PubSubManager#Blacklist.remove(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>

Whitelist

getNamespaces
PubSubManager#Whitelist.getNamespaces(
  options?: IPubSubManagerRequestOptions
): Promise<string[]>
add
PubSubManager#Whitelist.add(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>
remove
PubSubManager#Whitelist.remove(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>

TokenPolicy

getNamespaces
PubSubManager#TokenPolicy.getNamespaces(
  options?: IPubSubManagerRequestOptions
): Promise<string[]>
get
PubSubManager#TokenPolicy.get(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<{
  writeTokenRequired: boolean | null
  readTokenRequired: boolean | null
}>
setWriteTokenRequired
PubSubManager#TokenPolicy.setWriteTokenRequired(
  namespace: string
, val: boolean
, options?: IPubSubManagerRequestOptions
): Promise<void>
removeWriteTokenRequired
PubSubManager#TokenPolicy.removeWriteTokenRequired(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>
setReadTokenRequired
PubSubManager#TokenPolicy.setReadTokenRequired(
  namespace: string
, val: boolean
, options?: IPubSubManagerRequestOptions
): Promise<void>
removeReadTokenRequired
PubSubManager#TokenPolicy.removeReadTokenRequired(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<void>

Token

getNamespaces
PubSubManager#Token.getNamespaces(
  options?: IPubSubManagerRequestOptions
): Promise<string[]>
getTokens
PubSubManager#Token.getTokens(
  namespace: string
, options?: IPubSubManagerRequestOptions
): Promise<Array<{
  token: string
  write: boolean
  read: boolean
}>>
addWriteToken
PubSubManager#Token.addWriteToken(
  namespace: string
, token: string
, options?: IPubSubManagerRequestOptions
): Promise<void>
removeWriteToken
PubSubManager#Token.removeWriteToken(
  namespace: string
, token: string
, options?: IPubSubManagerRequestOptions
): Promise<void>
addReadToken
PubSubManager#Token.addReadToken(
  namespace: string
, token: string
, options?: IPubSubManagerRequestOptions
): Promise<void>
removeReadToken
PubSubManager#Token.removeReadToken(
  namespace: string
, token: string
, options?: IPubSubManagerRequestOptions
): Promise<void>