UNPKG

parse-js

Version:

Utility library for object structure conversion.

47 lines (38 loc) 2.01 kB
'use strict'; var has = require('lodash/has'); var ParseClass = require('./parse'); var staticMethods = Object.keys(ParseClass).reduce(function (out, k) { if (has(ParseClass, k)) out[k] = ParseClass[k]; return out; }, {}); module.exports = function factory() { function Parse(path, options) { if (!(this instanceof Parse)) return new Parse(path, options); return ParseClass.call(this, path, options); } // Make static methods available Object.assign(Parse, staticMethods); // Copy prototype and ensure (new Parse()) instanceof ParseClass == true Parse.prototype = Object.create(ParseClass.prototype); Parse.prototype.constructor = Parse; // Create an empty options object Parse.options = {}; // Register default transforms Parse.register('select', require('./transformers/select')); Parse.register('match', require('./transformers/match')); Parse.register('rename', require('./transformers/rename')); Parse.register('map', require('./transformers/map')); Parse.register('group', require('./transformers/group')); Parse.register('oneOf', require('./transformers/oneOf')); Parse.register('equals', require('./transformers/equals')); Parse.register('switch', require('./transformers/switch')); Parse.register('constant', require('./transformers/constant')); Parse.register('date', require('./transformers/date')); Parse.register('bool', require('./transformers/bool')); Parse.register('number', require('./transformers/number')); Parse.register('string', require('./transformers/string')); Parse.register('array', require('./transformers/array')); Parse.register('base64', require('./transformers/base64')); Parse.register('json', require('./transformers/json')); Parse.register('default', require('./transformers/default')); Parse.register('spec', require('./transformers/spec')); Parse.register('multilingual', require('./transformers/multilingual')); Parse.register('stripPrefix', require('./transformers/stripPrefix')); return Parse; };