index.js
function getRows() {

    let tableName = arguments[0];
    var fname = '';
    var callback;
    var where;

    if (arguments.length === 3) {
        fname = path.join(userData, tableName + '.json');
        where = arguments[1];
        callback = arguments[2];
    } else if (arguments.length === 4) {
        fname = path.join(arguments[1], arguments[0] + '.json');
        where = arguments[2];
        callback = arguments[3];
    }

    let exists = fs.existsSync(fname);
    let whereKeys;

    // Check if where is an object
    if (Object.prototype.toString.call(where) === "[object Object]") {
        // Check for number of keys
        whereKeys = Object.keys(where);
        if (whereKeys === 0) {
            callback(false, "There are no conditions passed to the WHERE clause.");
            return;
        }
    } else {
        callback(false, "WHERE clause should be an object.");
        return;
    }

    // Check if the json file exists, if it is, parse it.
    if (exists) {
        try {
            let table = JSON.parse(fs.readFileSync(fname));
            let rows = table[tableName];

            let objs = [];

            for (let i = 0; i < rows.length; i++) {
                let matched = 0; // Number of matched complete where clause
                for (var j = 0; j < whereKeys.length; j++) {
                    // Test if there is a matched key with where clause
                    if (rows[i].hasOwnProperty(whereKeys[j])) {
                        if (rows[i][whereKeys[j]] === where[whereKeys[j]]) {
                            matched++;
                        }
                    }
                }

                // Check if all conditions in the WHERE clause are matched
                if (matched === whereKeys.length) {
                    objs.push(rows[i])
                }
            }

            callback(true, objs);
            return;
        } catch (e) {
            callback(false, e.toString());
            return;
        }
    } else {
        callback(false, 'Table file does not exist!');
        return;
    }
}
function getRows() {

    let tableName = arguments[0];
    var fname = '';
    var callback;
    var where;

    if (arguments.length === 3) {
        fname = path.join(userData, tableName + '.json');
        where = arguments[1];
        callback = arguments[2];
    } else if (arguments.length === 4) {
        fname = path.join(arguments[1], arguments[0] + '.json');
        where = arguments[2];
        callback = arguments[3];
    }

    let exists = fs.existsSync(fname);
    let whereKeys;

    // Check if where is an object
    if (Object.prototype.toString.call(where) === "[object Object]") {
        // Check for number of keys
        whereKeys = Object.keys(where);
        if (whereKeys === 0) {
            callback(false, "There are no conditions passed to the WHERE clause.");
            return;
        }
    } else {
        callback(false, "WHERE clause should be an object.");
        return;
    }

    // Check if the json file exists, if it is, parse it.
    if (exists) {
        try {
            let table = JSON.parse(fs.readFileSync(fname));
            let rows = table[tableName];

            let objs = [];

            for (let i = 0; i < rows.length; i++) {
                let matched = 0; // Number of matched complete where clause
                for (var j = 0; j < whereKeys.length; j++) {
                    // Test if there is a matched key with where clause
                    if (rows[i].hasOwnProperty(whereKeys[j])) {
                        if (rows[i][whereKeys[j]] === where[whereKeys[j]]) {
                            matched++;
                        }
                    }
                }

                // Check if all conditions in the WHERE clause are matched
                if (matched === whereKeys.length) {
                    objs.push(rows[i])
                }
            }

            callback(true, objs);
            return;
        } catch (e) {
            callback(false, e.toString());
            return;
        }
    } else {
        callback(false, 'Table file does not exist!');
        return;
    }
}
Get row or rows that matched the given condition(s) in WHERE argument
@param {string} FirstArgument Table name
@param {string} SecondArgument Location of the database file (Optional)
@param {object} ThirdArgument Collection of conditions to be met
```
{
key1: value1,
key2: value2,
...
}
```
@param {callback} FourthArgument Function callback