12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- "use strict";
- var f = require('util').format,
- require_optional = require('require_optional');
- var setProperty = function(obj, prop, flag, values) {
- Object.defineProperty(obj, prop.name, {
- enumerable:true,
- set: function(value) {
- if(typeof value != 'boolean') throw new Error(f("%s required a boolean", prop.name));
-
- if(value == true) values.flags |= flag;
-
- if(value == false && (values.flags & flag) == flag) values.flags ^= flag;
- prop.value = value;
- }
- , get: function() { return prop.value; }
- });
- }
- var getProperty = function(obj, propName, fieldName, values, func) {
- Object.defineProperty(obj, propName, {
- enumerable:true,
- get: function() {
-
- if(values[fieldName] == null && obj.isParsed && !obj.isParsed()) {
- obj.parse();
- }
-
- if(typeof func == 'function') return func(values[fieldName]);
-
- return values[fieldName];
- }
- });
- }
- var getSingleProperty = function(obj, name, value) {
- Object.defineProperty(obj, name, {
- enumerable:true,
- get: function() {
- return value
- }
- });
- }
- var copy = function(fObj, tObj) {
- tObj = tObj || {};
- for(var name in fObj) tObj[name] = fObj[name];
- return tObj;
- }
- var debugOptions = function(debugFields, options) {
- var finaloptions = {};
- debugFields.forEach(function(n) {
- finaloptions[n] = options[n];
- });
- return finaloptions;
- }
- var retrieveBSON = function() {
- var BSON = require('bson');
- BSON.native = false;
- try {
- try {
- BSON = require('bson-ext');
- BSON.native = true;
- } catch(err) {
- var optionalBSON = require_optional('bson-ext');
- if(optionalBSON) {
- optionalBSON.native = true;
- return optionalBSON;
- }
- }
- } catch(err) {}
- return BSON;
- }
- exports.setProperty = setProperty;
- exports.getProperty = getProperty;
- exports.getSingleProperty = getSingleProperty;
- exports.copy = copy;
- exports.debugOptions = debugOptions;
- exports.retrieveBSON = retrieveBSON;
|