1.0.0 โ€ข Published 4 years ago

jetql v1.0.0

Weekly downloads
2
License
ISC
Repository
github
Last release
4 years ago

JetQL Features:

  • ๐Ÿงน Clean Sintaxis.
  • ๐Ÿ”— Compatble with POST, PUT, DELETE and GET Requests.
  • ๐Ÿš€ Fast and Lightweight.
  • ๐Ÿ™ Express.js compatible.

How does this work?

The body has this format:

{
  "action": "get/delete/add/update/edit/list",
  "route": "...",
  "props": {},
  "args": {}
}

And the url (in case of being GET) has this format:
http://example.com/api/<route>/<action>/<props>/<args>

Get started with JetQL

Implementation with express:

const express = require("express");
const JetQL = require("jetql");

const app = express();
const jetql = JetQL.Server();

app.use(express.json());
app.use(jetql.express());

app.listen(3000);

Implementation in the frontend:
(Import the script file)

<script src="@jetql.js">

(Send a request)

<button onclick="sendRequest()">Send request</button>
<script>
  async function sendRequest () {
    let data = await jetql("user").get({
        username: "sammwy"
    });

    if (data.success) {
      alert("Username exists! and her value is " + data.result);
    } else {
      alert(data.error);
    }
  }
</script>

Test route in backend:

  jetql.addRoute({
    action: "get",
    route: "user",
    callback: function (query) {
      if (query.props.username == "sammwy")
        query.finish(18);
      else
        query.drop("User isn't exists");
    }
  });

Examples

Add a route (Method #1):

jetql.addRoute({
  action: "get",
  route: "user",
  callback: (query) => {
    console.log(query);
  }
});

Add a route (Method #2):

jetql.addRoute("add", "user", (query) => {
  console.log(query);
});

Add external route:

// index.js
jetql.use(require("./external.js"));

// external.js
const JetQL = require('jetql');
const router = JetQL.Router();

router.addRoute({ ... });
router.addRoute({ ... });
router.addRoute({ ... });

module.exports = router;

Demo

Try jetql with the demo project.

  1. Clone the repository
  2. Use node ./jetql.test.js in the folder.
  3. Open https://127.0.0.1:4000/

Methods

End the request with a successful result:

query.finish(result);

End the request with a 404 error and a message:

query.drop(message);

The request ends with a 500 error and a message:

query.error(message);

Get the client's request:

query.request;

Get the response to the client:

query.response;

Add a router object and all its routes to the JetQL instance:

jetql.use(router);

Add a route to the jetql instance:

jetql.addRoute({action: ..., route: ..., callback: () => { ... } });

Add a route to the jetql instance:

jetql.addRoute(action, routeName, callback);

Gets the express middleware:

jetql.express();

Gets the http middleware:

jetql.http();

Instantiate jetql:

jetql.Server();