Giter Club home page Giter Club logo

wily's Introduction

NO LONGER ACTIVE!

I am no longer working on this project. Do feel free to fork it though.

wily

Build Status PRs Welcome MIT License

Build Node.js APIs from the command line

Getting Started

Install wily globally: npm install -g wily

Once installed, a new API can be created by calling wily init, like so:

wily gif

✨ Supported & in-progress Features

API Architecture Framework Database ORM ODM Authentication Validation Testing
REST Express MySQL Knex.js Mongoose JWT Joi Mocha
GraphQL hapi MongoDB Sequelize MongoDB Driver express-session
yar (Hapi)
Validator Jest

πŸ“¦ Built-in Packages

πŸ€“ Wily Tech

Development (Contribute!)

If you're interested in contributing to this project, then THANK YOU! I appreciate your interest :) You can contribute to this project by working on any of the open issues. You can also see which issues are not in progress on the development board.

Lastly, I am here to help. Please reach out with any questions. I appreciate all contributions no matter how big or small.

Discord server: https://discord.gg/Dze88Pe

Getting Started

  • Fork & clone this project
  • Next, you will need to Install TypeScript
  • That's it! Now you can compile this project in watch-mode by running tsc -w

Testing your contributions

  • Run cp tests/apis/.env.sample tests/apis/.env to create a copy of the dotenv sample file for tests
  • Fill out the newly created dotenv file with your own values & credentials (e.g. database hosts, users and passwords)
  • Run npm test

NOTE: Do not modify tests/apis/.env.sample as it can expose your personal credentials if you include it in your commits

Suggested reads:

wily's People

Contributors

alexpereira avatar jordypereira avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

wily's Issues

Add tests across all possible API combinations

Idea

Run tests across all possible API combinations. This would be done by generating all possible API combinations under ./tests/apis/ where all combinations would share the same node_modules.

Each combination would a be single test, and each test would be met if all of its nested tests pass 100%.

Tentative tests structure:

tests
β”‚
└───apis
β”‚   └───shared_node_modules
β”‚   β”‚
β”‚   └───rest-express-mysql-knex-jwt-mocha
β”‚   β”‚   └───tests
β”‚   β”‚   β”‚   ...
β”‚   └───rest-express-mysql-knex-jwt-jest
β”‚   └───rest-hapi-mysql-knex-jwt-mocha
β”‚   └───rest-hapi-mysql-knex-jwt-jest
β”‚   β”‚   ...
β”‚   β”‚   apis.test.js

Tentative apis.test.js

describe('Testing API Combinations...', function () {
  var combinations = [
    'rest-express-mysql-knex-jwt-mocha',
    'rest-express-mysql-knex-jwt-jest',
    'rest-hapi-mysql-knex-jwt-mocha',
    'rest-hapi-mysql-knex-jwt-jest',
    ...
  ]

  beforeAll(function () {
    // 1 - npm install all possible packages
    // 2 - Build combinations at ./
  })

  test('rest-express-mysql-knex-jwt-mocha', function(done) {
    // 1 - run nested npm test
    // 2 - expect result to be 100% 
  })

  test('rest-express-mysql-knex-jwt-jest', function(done) {
    // 1 - run nested npm test
    // 2 - expect result to be 100% 
  })

  test('rest-hapi-mysql-knex-jwt-mocha', function(done) {
    // 1 - run nested npm test
    // 2 - expect result to be 100% 
  })

  test('rest-hapi-mysql-knex-jwt-jest', function(done) {
    // 1 - run nested npm test
    // 2 - expect result to be 100% 
  })

  // ...

  afterAll(function (done) {
    // 1 - Destroy ./node_modules
    // 2 - Destroy all combinations at ./
  })
})

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.