From 9d413fabdfca214d6569f4fdab25e5f22113daef Mon Sep 17 00:00:00 2001 From: Sriram Velamur Date: Wed, 22 Jul 2020 15:18:18 +0530 Subject: [PATCH 1/2] Migrated exports/imports to ES6 modules --- examples/{index.js => index.mjs} | 2 +- http-server/{helpers.js => helpers.mjs} | 9 +++------ http-server/index.js | 3 --- http-server/index.mjs | 2 ++ http-server/{middlewares.js => middlewares.mjs} | 6 ++---- http-server/{server.js => server.mjs} | 15 ++++++--------- 6 files changed, 14 insertions(+), 23 deletions(-) rename examples/{index.js => index.mjs} (88%) rename http-server/{helpers.js => helpers.mjs} (89%) delete mode 100644 http-server/index.js create mode 100644 http-server/index.mjs rename http-server/{middlewares.js => middlewares.mjs} (85%) rename http-server/{server.js => server.mjs} (96%) diff --git a/examples/index.js b/examples/index.mjs similarity index 88% rename from examples/index.js rename to examples/index.mjs index 3e9d51c..fb76802 100644 --- a/examples/index.js +++ b/examples/index.mjs @@ -1,6 +1,6 @@ 'use strict'; -const { Server } = require('../http-server'); +import {Server} from '../http-server'; function UserController(request, response) { response.respond(200, request.query); diff --git a/http-server/helpers.js b/http-server/helpers.mjs similarity index 89% rename from http-server/helpers.js rename to http-server/helpers.mjs index 1ee4c61..4519534 100644 --- a/http-server/helpers.js +++ b/http-server/helpers.mjs @@ -1,10 +1,10 @@ 'use strict'; -const { readFile, readFileSync } = require('fs'); -const { dirname, normalize } = require('path'); +import {readFile, readFileSync} from 'fs'; +import {dirname, normalize} from 'path'; -const renderTemplateWithData = async (path, data) => { +export const renderTemplateWithData = async (path, data) => { return new Promise(async (resolve, reject) => { readFile(path, (err, page) => { if (err) { return reject(err); } @@ -59,6 +59,3 @@ const renderTemplateWithData = async (path, data) => { }); }); }; - - -module.exports = { renderTemplateWithData }; diff --git a/http-server/index.js b/http-server/index.js deleted file mode 100644 index cbfa9fb..0000000 --- a/http-server/index.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -const { Server } = require('./server'); -module.exports = { Server }; diff --git a/http-server/index.mjs b/http-server/index.mjs new file mode 100644 index 0000000..93e27ae --- /dev/null +++ b/http-server/index.mjs @@ -0,0 +1,2 @@ +'use strict'; +export {Server} from './server'; diff --git a/http-server/middlewares.js b/http-server/middlewares.mjs similarity index 85% rename from http-server/middlewares.js rename to http-server/middlewares.mjs index d85ac05..9a6d077 100644 --- a/http-server/middlewares.js +++ b/http-server/middlewares.mjs @@ -1,6 +1,6 @@ 'use strict'; -const httpResponder = (response, status, data) => { +export const httpResponder = (response, status, data) => { response.statusCode = status; let key = status > 199 && status < 400 ? 'data' : 'message'; data = { @@ -10,7 +10,7 @@ const httpResponder = (response, status, data) => { response.end(); }; -function serialize(request, response) { +export function serialize(request, response) { return new Promise(resolve => { response.respond = (status, data) => { httpResponder(response, status, data); @@ -33,5 +33,3 @@ function serialize(request, response) { }); }); } - -module.exports = { serialize, httpResponder }; \ No newline at end of file diff --git a/http-server/server.js b/http-server/server.mjs similarity index 96% rename from http-server/server.js rename to http-server/server.mjs index 8cac88b..d299274 100644 --- a/http-server/server.js +++ b/http-server/server.mjs @@ -1,11 +1,11 @@ 'use strict'; -const { createServer } = require('http'); -const { readFile, existsSync } = require('fs'); -const { resolve } = require('path'); +import { createServer } from 'http'; +import { readFile, existsSync } from 'fs'; +import {resolve} from 'path'; -const { httpResponder } = require('./middlewares'); +import {httpResponder} from './middlewares'; -const { renderTemplateWithData } = require('./helpers'); +import {renderTemplateWithData} from './helpers'; function renderTemplate(response, template, data) { @@ -27,7 +27,7 @@ function renderTemplate(response, template, data) { } -class Server { +export class Server { setResponder(response) { response.respond = (status, data) => { @@ -255,6 +255,3 @@ class Server { } } - - -module.exports = { Server }; From fc558167360edc934f11db02de38c99c21ae01e2 Mon Sep 17 00:00:00 2001 From: Sriram Velamur Date: Wed, 22 Jul 2020 19:48:09 +0530 Subject: [PATCH 2/2] Updated serialize/query flows to parse values to primitives where possible --- http-server/middlewares.mjs | 10 ++++++++++ http-server/server.mjs | 8 ++++++++ 2 files changed, 18 insertions(+) diff --git a/http-server/middlewares.mjs b/http-server/middlewares.mjs index 9a6d077..89b5301 100644 --- a/http-server/middlewares.mjs +++ b/http-server/middlewares.mjs @@ -29,6 +29,16 @@ export function serialize(request, response) { }); request.data = Object.keys(data).length < 1 ? null : data; } + if (request.data) { + Object.entries(request.data).map(([key, val]) => { + try { + val = JSON.parse(val); + } catch (err) { + // + } + Object.assign(request.data, {[`${key}`]: val}); + }); + } resolve(request, response); }); }); diff --git a/http-server/server.mjs b/http-server/server.mjs index d299274..6ff3920 100644 --- a/http-server/server.mjs +++ b/http-server/server.mjs @@ -205,6 +205,14 @@ export class Server { handler = this._routes[route]; request.query = request.query || {}; Object.assign(request.query, match.groups || {}); + Object.entries(request.query).map(([key, val]) => { + try { + val = JSON.parse(val); + } catch (err) { + // + } + Object.assign(request.query, {[`${key}`]: val}); + }); } }); response.redirect = (status, location) => {