markscript-uservices
v0.6.2
Published
The runtime library to deploy remote proxies of uServices from and to Marklogic
Maintainers
Readme
MarkScript uServices runtime Library
Overview
Deploy remote proxies of uServices from Marklogic.
Usage
Install:
npm install markscript-uservicesBasic Usage:
To use this as part of a MarkScript build, add this property to the root of your build options:
import {UServicesPlugin} from 'markscript-uservices'
let buildOptions = {
plugins: {
uservices: [UServicesPlugin, {}]
}
// etc
}For a uService on Marklogic:
import * as mu from 'markscript-uservices'
import {Observable} from 'uservices'
import {Message} from '../common/models/message'
import {ChatService} from '../common/services/chatService'
@mu.mlService()
export class ChatService extends extends mu.AbstractMLService {
@mu.mlMethod({
method: 'put'
})
sendMessage(message: Message): Promise<boolean> {
xdmp.documentInsert('/chatMessages/' + message.timestamp, message)
resolve(true)
}
@mu.mlEvent({
states: ['create', 'modify'],
scope: '/chatMessages/'
})
messageBroadcast(): Observable<Message> {
return this.observableFactory().map(function(doc: Doc<Message>{
return doc.value
})
}
}
Then to proxy that to another tier:
import {createRemoteProxy} from 'markscript-uservices'
import * as RxRouter from 'koa-rx-router'
let router = new RxRouter()
let chatService = createRemoteProxy(chatSpec, client, router)