Fix license issues
[sdnc/oam.git] / dgbuilder / dgeflows / node_modules / body-parser / node_modules / depd / lib / compat / index.js
1 /*!
2  * depd
3  * Copyright(c) 2014 Douglas Christopher Wilson
4  * MIT Licensed
5  */
6
7 /**
8  * Module exports.
9  */
10
11 lazyProperty(module.exports, 'bufferConcat', function bufferConcat() {
12   return Buffer.concat || require('./buffer-concat')
13 })
14
15 lazyProperty(module.exports, 'callSiteToString', function callSiteToString() {
16   var limit = Error.stackTraceLimit
17   var obj = {}
18   var prep = Error.prepareStackTrace
19
20   function prepareObjectStackTrace(obj, stack) {
21     return stack
22   }
23
24   Error.prepareStackTrace = prepareObjectStackTrace
25   Error.stackTraceLimit = 2
26
27   // capture the stack
28   Error.captureStackTrace(obj)
29
30   // slice the stack
31   var stack = obj.stack.slice()
32
33   Error.prepareStackTrace = prep
34   Error.stackTraceLimit = limit
35
36   return stack[0].toString ? toString : require('./callsite-tostring')
37 })
38
39 /**
40  * Define a lazy property.
41  */
42
43 function lazyProperty(obj, prop, getter) {
44   function get() {
45     var val = getter()
46
47     Object.defineProperty(obj, prop, {
48       configurable: true,
49       enumerable: true,
50       value: val
51     })
52
53     return val
54   }
55
56   Object.defineProperty(obj, prop, {
57     configurable: true,
58     enumerable: true,
59     get: get
60   })
61 }
62
63 /**
64  * Call toString() on the obj
65  */
66
67 function toString(obj) {
68   return obj.toString()
69 }