Code Monkey home page Code Monkey logo

friendship-api's Introduction

FriendShip

Friendship PWA with ES7 syntax, serverless-offline, linting, environment variables, and unit test support. Using Serverless Stack guide.

Uses the serverless-bundle plugin (an extension of the serverless-webpack plugin) and the serverless-offline plugin. It supports:

  • Generating optimized Lambda packages with Webpack
  • Use ES7 syntax in your handler functions
    • Use import and export
  • Run API Gateway locally
    • Use serverless offline start
  • Support for unit tests
  • Sourcemaps for proper error messages
    • Error message show the correct line numbers
    • Works in production with CloudWatch
  • Lint your code with ESLint
  • Add environment variables for your stages
  • No need to manage Webpack or Babel configs

Requirements

Demo

A demo version of this service is hosted on AWS - https://z6pv80ao4l.execute-api.us-east-1.amazonaws.com/dev/hello

Requirements

Installation

To create a new Serverless project.

$ git clone

Enter the new directory

$ cd friendship-api

Install the Node.js packages

$ npm install

Start PostgreSQL

$ sudo pg_ctlcluster 12 main start
$ sudo -u postgres psql

Change default password:

postgres=# ALTER USER postgres PASSWORD 'postgres';

Running migrations

This api was created based sequelize migrations - ['https://www.serverless.com/plugins/serverless-sequelize-migrations']

Create migration file:

sls --verbose  migrations create -n create-note

Run all migrations:

sls --verbose  migrations up --stage dev

Usage

To run a function on your local

$ serverless invoke local --function hello

To run a mock of a function

$ serverless invoke local --function charge --path mocks/note/charge.json

To simulate API Gateway locally using serverless-offline

$ serverless offline start

Deploy your project

$ serverless deploy

Deploy a single function

$ serverless deploy function --function hello

Running Tests

Run your tests using

$ npm test

We use Jest to run our tests. You can read more about setting up your tests here.

Environment Variables

To add environment variables to your project

  1. Rename env.example to .env.
  2. Add environment variables for your local stage to .env.
  3. Uncomment environment: block in the serverless.yml and reference the environment variable as ${env:MY_ENV_VAR}. Where MY_ENV_VAR is added to your .env file.
  4. Make sure to not commit your .env.

Linting

We use ESLint to lint your code via the serverless-bundle plugin.

You can turn this off by adding the following to your serverless.yml.

custom:
  bundle:
    linting: false

To override the default config, add a .eslintrc.json file. To ignore ESLint for specific files, add it to a .eslintignore file.

Support

  • Open a new issue if you've found a bug or have some suggestions.
  • Or submit a pull request!

This repo is maintained by Anomaly Innovations; makers of Seed and Serverless Stack.

friendship-api's People

Contributors

mauricio-codecraft avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.