0.3.0 • Published 5 years ago

@zerowastemap/api-factory-generator v0.3.0

Weekly downloads
-
License
MIT
Repository
-
Last release
5 years ago

WIP API factory generator

  • Uses fetch
  • Uses ajv for schema validation
  • Sane defaults
  • Sends token if provided
  • Each route can have specific options

Usage

const generator = require('@zerowastemap/api-factory-generator')

// set default options for each requests
const options = {
  mode: 'cors',
  domain: 'zerowastemap.localhost',
  scheme: 'https://',
  prefix: '/api',
  version: 1,
  token: 'some bearer token'
}

// configure your routes
// you can nest routes
const routes = {
  auth: {
    login: {
      path: '/auth/login',
      options: {
        method: 'POST'
      },
      schema: {
        type: 'object',
        required: ['email'],
        properties: {
          email: {
            type: 'string'
          }
        }
      }
    }
  },
  upload: {
    path: '/locate',
    options: {
      method: 'POST',
      auth: true, // will enable credentials
      multipart: true
    }
  }
  locate: {
    path: '/locate',
    schema: {
      type: 'object',
      required: ['longitude', 'latitude'],
      properties: {
        longitude: Longitude,
        latitude: Latitude
      }
    }
  }
}

const api = generator(routes, options) 

// api.auth.login('salut@zerowastemap.app') works too if we have a schema
api.auth.login({ email: 'salut@zerowastemap.app' }).then(response => {
  ...
})

See also

JavaScript Factory Functions vs Constructor Functions vs Classes

Testing

Tests won't work on your machine because it test against api which is not released yet

LICENSE

MIT

Author(s)

0.3.0

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.0

5 years ago

0.0.1

5 years ago