2.0.0 • Published 4 years ago

retrojs v2.0.0

Weekly downloads
5
License
MIT
Repository
github
Last release
4 years ago

RetroJS

RetroJS is a simple HTTP Client Generator for JavaScript using decorators. Inspired by Retrofit

Example

import * as RetroJS from "retrojs";

import { RetroBuilder, StubResponse, GET, Path, Query } from "RetroJS";

import { AxiosResponse } from "axios";

export class GithubClient {
  @GET("users/{user}/repo?sort=pushed")
  listRepos(
    @Path("user") _user: string,
    @Query("type") _type: string
  ): AxiosResponse<any[]> {
    return StubResponse;
  }
}

export function createGithubService() {
  return new RetroBuilder()
    .baseUrl("https://api.github.com/")
    .build()
    .create(GithubClient);
}

const githubService = createGithubService();

githubService
  .listRepos("benjaminRomano", "owner")
  .then(response => console.log(response));

Decorators

/* Method Decorators */
@POST('path')
@GET('path')
@DELETE('path')
@PUT('path')
@Headers({ 'User-Agent': 'request' })

/* Parameter Decorators */
someFunction(@Body body: any);
someFunction(@Query('type') type: string);
someFunction(@Path('user') user: string);
someFunction(@Header('Cache-Control') cacheControl: string); // Note: values in @Header take precedence over @Headers
someFunction(@Field('fieldName') value: string); // application/x-www-form-urlencoded
someFunction(@Part('partName') value: string); // multipart/form-data
2.0.0

4 years ago

1.0.4

8 years ago

1.0.3

8 years ago

1.0.2

8 years ago

1.0.1

8 years ago

1.0.0

8 years ago