1.2.2 • Published 5 years ago

beatific v1.2.2

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

Beatific

npm version Build Status MIT License PRs Welcome npm

A single npm package which satisfies the need for the following packages:

  • mongoose => For establishing connection to your MongoDB and producing mongoose models.
  • bcryptjs => For hashing and verifying hashes.
  • helmet => For securing Express apps by setting various http headers.
  • compression => For the compression of route propagation.
  • jsonwebtoken => For generating and verifying JWTs.
  • morgan => For logging every request made to your backend.

    It also generates the dockerfile for your project :)


    Usage:

Installation:

npm install --save beatific

API:

var beatific = require("beatific");

MongoDB/Mongoose Functionality:

  • Connect to a MongoDB

    Parameters: MongoDB URI

beatific.mongoConnect(dbURI)
.then(db => console.log("Connected to the DB..."))
    .catch(err => console.error("Error connecting to the DB!"));
  • Create a mongo schema and automatically generate a mongoose.model for it

    Parameters: Schema name, schema object, db collection name (optional)

    let userSchema = {
       name: {
          type: String,
          required: true
       },
       email: {
          type: String,
          required: true,
          unique: true
       }
    };
    
    beatific.mongoModelGen('User', userSchema, "users")
    .then(model => console.log("mongoose.model generated for user schema"))
         .catch(err => console.error("Some problem occurred"));

    What this does behind the scenes

const mongoose = require("mongoose");

let userSchema = { name: { type: String, required: true }, email: { type: String, required: true, unique: true } };

let schema = new mongoose.schema(userSchema);

return mongoose.model('User', schema, "users");

<br>


### JWT functionality:

- Signing/Generating the token:

Parameters: data, secret, expiresIn (optional)

```js
beatific.generateJWT({message: "Hey there"}, 'something_secret', '4d')
.then(token => console.log("Here's the token " + token))
   .catch(err => console.error("Some problem occurred"));
  • Verifying/Decoding the token:

    Parameters: token, secret

     beatific.decodeJWT('my_token_1234321', 'something_secret')
    .then(decoded => console.log("Here's the decoded token " + decoded))
       .catch(err => console.error("Some problem occurred"));

Bcrypt Functionality:

  • Hashing some data:

Parameters: data, salt rounds (default=10)

beatific.hashGen("hey there", 8)
.then(hash => console.log("Here's the hash " + hash))
    .catch(err => console.error("Some problem occurred"));
  • Verifying/Comparing some data and corresponding hash:

    Parameters: hashed data, inputData

    beatific.hashCheck("$adfdsf23243546524", "my password may be")
    .then(valid => console.log("Status of check: " + valid))
       .catch(err => console.error("Some problem occurred"));

Use logger

Parameters: loggerType (default = "dev")

//In your main .js file

var app = express();
loggerType = "short"; // For example

app.use(beatific.logger(loggerType));

Use helmet:

// In your main .js file
var app = express();

app.use(beatific.helmet());

Use compression:

// In your main .js file
var app = express();

app.use(beatific.compression());

Generate Dockerfile for the project

Parameters: dockerfile_name (default="dockerfile"), portNumber, startCommand (default="npm start")

Just run this once in your main .js file:

beatific.dockerGen("dockerfile.dev", 8000, "npm test");

License

MIT