Skip to content

Commit

Permalink
Parse functionality for different types of values
Browse files Browse the repository at this point in the history
  • Loading branch information
arshadkazmi42 committed Aug 11, 2019
1 parent 7be1c3d commit 0d3bb01
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 10 deletions.
20 changes: 11 additions & 9 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
const SelectFields = require('./lib/select-fields');
const JoinFields = require('./lib/join-fields');
const DefaultValue = require('./lib/default-value');
const InsertFields = require('./lib/insert-fields');
const JoinFields = require('./lib/join-fields');
const ModelField = require('./lib/model-field');
const Parser = require('./lib/parse');
const PrivateFields = require('./lib/private-fields');
const QueryValues = require('./lib/query-values');
const SelectFields = require('./lib/select-fields');
const UpdateValues = require('./lib/update-values');
const DefaultValue = require('./lib/default-value');
const ValuesPointer = require('./lib/values-pointer');
const ModelField = require('./lib/model-field');


module.exports = {
SelectFields,
JoinFields,
DefaultValue,
InsertFields,
JoinFields,
ModelField,
Parser,
PrivateFields,
QueryValues,
SelectFields,
UpdateValues,
DefaultValue,
ValuesPointer,
ModelField
ValuesPointer
};
25 changes: 25 additions & 0 deletions lib/parse.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
const parser = {};


parser.json = (data) => {
return JSON.parse(data);
};

parser.blob = (data) => {
return Buffer.from(data, 'utf8');
};


const get = (type, data) => {
if (!parser[type]) {
return data;
}

const fn = parser[type];
return fn(data);
};


module.exports = {
get
};
5 changes: 4 additions & 1 deletion lib/query-values.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
const _ = require('lodash');

const Parse = require('./parse');

/**
* Returns array of values which is used in insert queries based on the input model
* It takes model and data json as input
Expand All @@ -17,7 +19,8 @@ const get = (model, data) => {
for (let column of model.columns) {
if (!column.auto) {
const value = _.get(data, column.name) || column.defaultValue;
values.push(value);
const parseValue = Parse.get(column.type, value);
values.push(parseValue);
}
}

Expand Down

0 comments on commit 0d3bb01

Please sign in to comment.