@keethealth/api-client

0.18.0 • Public • Published

Travis Build

Keet Health Node Module Boilerplate

Adatped from Babel Starter Kit

Boilerplate for developing Keet Health modules in Node.js, using:

  • ESlint
  • Babel
  • Rollup
  • Jest
  • TravisCI

Table of Contents

File Structure

|-- src/            # where the magic happens
|---- index.js      # entry file
|-- dist/           # directory for built items
|-- tools/          # build tools
|-- test/           # module tests
|-- bin/            # executables
|-- .env            # environment variables
|-- .eslintrc.json  # linting rules because messy code hurts my soul
|-- .gitignore      # file patterns to not commit, currently configured only for macOS
|-- .travis.yml     # Travis CI config file
|-- package.json    # node package dependencies
|-- static.json     # necessary for client-side routing
|-- yarn.lock       # auto generated yarn file, do not touch

Updating for different projects

This module is intended to be a pure node.js boilerplate without dependencies on DOM or other frameworks/libraries. When you need to update this repo to support other libraries in JS (i.e. React), you should create a new branch and make changes there.

Then, clone from that branch:

git checkout -b react

## ...Commit changes

git clone -b react --single-branch https://github.com/keethealth/keet-module-boilerplate.git

Quick Start

Cloning

git clone https://github.com/keethealth/keet-module-boilerplate.git <module-name>

rm -rf .git && git init
git remote add origin <keethealth/module-name.git>
git remote -v

Initialization

cd <module-name>
yarn init

Yarn will ask you a series of questions to edit package.json.
All questions are already answered by the existing package.json, but you will need to change these:

question name (@keethealth/keet-module-boilerplate): <module-name>
question version (0.0.1):
question description (A project template for authoring and publishing Keet Health libraries):
question repository url (keethealth/keet-module-boilerplate): keethealth/<module-name>

Install Dependencies & Build

yarn && yarn build

You should now have a dist folder at path/to/module/dist

Development

To link this package:

yarn link

Learn more about this command at https://yarnpkg.com/lang/en/docs/cli/link/

Go to the app you want to test this module with and link this local package:

cd ../<app-name>
yarn link <module-name>

This will create a symlink in your project so that it will resolve import '<module-name' using your local project instead of the node_modules folder.

When you are done and would like to test the package on npm, run the following in your app directory:

yarn unlink <module-name>

To completely remove the symlink, run the following in the local package directory:

yarn unlink

Run watch to rebuild bundle on changes made instead of running build manually each time:

yarn watch

Testing locally

npx babel-node

babel > const Client = require('./src/Client').default
babel > const apiUrl = 'https://api.keetdev.com'
babel > const accessToken = /* put your token here */
babel > const Api = new Client({ apiUrl, getCurrentSession: () => Promise.resolve({ accessToken }) })
babel > Api.profile.read().then(response => { console.log('response', JSON.stringify(response, null, 2)) })

Publishing to npm

Build the package:

yarn build

Publish the package to npm:

yarn publish --access public

You will be prompted to bump the version. Ensure that you follow semantic versioning strictly.

This publishes the package as a public scoped package under the @keethealth scope.

Read more about scoped packages

Available Scripts

In the project directory, you can run:

yarn test

Launches the test runner in the interactive watch mode.

To see test coverage, run yarn test --coverage.

yarn build

Builds the app for production to the dist folder.

Troubleshooting

Readme

Keywords

none

Package Sidebar

Install

npm i @keethealth/api-client

Weekly Downloads

4

Version

0.18.0

License

MIT

Unpacked Size

469 kB

Total Files

6

Last publish

Collaborators

  • keethealth-dev