0.0.1 • Published 7 years ago
@usvc/component-request v0.0.1
@usvc/component-request
Request module with zipkin instrumentation based on node-fetch.
Scope
- create a Zipkin instrumented request object
- fallback to normal request if no tracer is provided
Installation
npm i @usvc/component-request
# OR
yarn add @usvc/component-requestUsage
const {createRequest} = require('@usvc/component-request');
// OR
import {createRequest} from '@usvc/component-request';Basic
// require as ^
createRequest();Full Configuration
// require as ^
// with your own tracer:
const tracer = require('./tracer');
// OR if you're using @usvc/tracer:
const {createTracer} = require('@usvc/tracer');
const tracerInstance = createTracer({
url: 'http://zipkin:9411', // for example only
});
createRequest({
format: 'json',
tracer: tracerInstance.getTracer()
});API Documentaiton
.createRequest(:options)
Returns a request-like function. The :options parameter is an object that can accept the following keys:
| Key | Defaults To | Description |
|---|---|---|
format | "json" | Decides the format of the response. Possible values are "buffer", "json", and "text". |
tracer | null | Defines the tracer we should use. When left as null, no distributed tracing will be made available. |
When a tracer is specified in the parameters, the function signature of the returned request will be:
export type RequestWithTracing = (
remoteServerName: string,
url: string,
options: object,
) => RequestPromise<object>;When no tracer is specified, the function signature will lack the :remoteServiceName parameter and resemble a standard fetch operation:
export type RequestWithoutTracing = (
url: string,
options: object,
) => RequestPromise<object>;The UsvcResponse object returned by the Promise has the following schema:
export interface UsvcResponse {
body: object; // response body
headers: object; // response headers
status: number; // HTTP status code
statusText: string; // HTTP status text
url: string; // request URL
}Examples
WIP
Development
See the main README.md.
License
This package is licensed under the MIT license.
View the license at LICENSE.
Changelog
0.0.x
0.0.1
- Initial release
Contributors
| Name | Website | About Me | |
|---|---|---|---|
| Joseph | - | https://github.com/zephinzer | - |
Cheers
0.0.1
7 years ago