markscript-uservices-build
TypeScript icon, indicating that this package has built-in type declarations

0.1.5 • Public • Published

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)

Package Sidebar

Install

npm i markscript-uservices-build

Weekly Downloads

2

Version

0.1.5

License

MIT

Last publish

Collaborators

  • christyharagan