npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

http-micro-service-front

v1.1.0

Published

a thin client to invoke microservice

Readme

Seneca Client For Ng2

This is a typescript library for AngularJs2 to invoke methods of microservices through microservice gateway.  

Installation

npm install seneca_ng2_client --save

Precondition

It assumes that the service url has the following tow patterns:
*REST pattern: http://host:port/_api/service_name/resource_name
*Seneca pattern: http://host:port/_api/service_name/act

Use it REST pattern

Let's assume that the service_name is interface_service and the resource_name is interface. Import the types to your file.

import { useService, Service, AccountService } from 'seneca_client_for_ng2'

Initialize the service object.

private senecaClient : any = null;  
constructor(private service: Service
){
    this.senecaClient = useService(this.service, "interface_service");
}

Post data to service.

private loadData(){
    let param = {};
    this.senecaClient("post")({param: this.appModuleview}));
    .subscribe(res=>{
        console.log(res);
    // your code for handling data is here.
    });
}

That's all for use the code. In the code above, you are responsible to take care of four things:

  1. this.service
  2. name_of_your_service
  3. methodname
  4. param

I will explain them one by one.

this.service

"this.service" is an injectable AngularJs2 service object. It is initialized by MicroserviceClient class.

import { Service, MicroserviceClient } from 'seneca_client_for_ng2';
...
providers: [{provide: Service, useClass: MicroserviceClient}]

In this way, you can easily mock the Service in your unit test.
To initialize MicroserviceClient object, you have to specify an InjectionToken.

import { MICRO_API_CONF, Service, MicroserviceClient } from 'seneca_client_for_ng2';
...
providers: [
    {provide: MICRO_API_CONF, useValue: { baseurl: "http://host:port" }}, 
    {provide: Service, useClass: MicroserviceClient }
]

name_of_your_service

The pre-condition of this library is assuming that your microservice instances is deployed behind a proxy. Each microservice instance has its own unique name in the url.
For example, name_of_your_service is interface_service. Then the generated url is as following.

http://baseUrl/_api/interface_service/act

methodName

The name of the method defined at your microservice end. It assumes your method defined as following based on seneca framework:

seneca.add({action: "methodName"}, function(msg, respond){
    ....
}

param

The param means the parameter objects, values should be in {}. It assumes your method defined as following based on seneca framework:

seneca.add({action: "methodName"}, function(msg, respond){
    let param = msg.param;
...
}