markscript-uservices-build
v0.1.5
Published
The build library to deploy remote proxies of uServices from and to Marklogic
Downloads
12
Maintainers
Readme
MarkScript uServices build Library
Overview
Deploy remote proxies of uServices from Marklogic.
Usage
Install:
npm install markscript-uservices
Basic 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)