Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Avatar for KuCalc : devops.
Download
50659 views
1
/*!
2
* depd
3
* Copyright(c) 2014-2015 Douglas Christopher Wilson
4
* MIT Licensed
5
*/
6
7
'use strict'
8
9
/**
10
* Module dependencies.
11
* @private
12
*/
13
14
var Buffer = require('buffer')
15
var EventEmitter = require('events').EventEmitter
16
17
/**
18
* Module exports.
19
* @public
20
*/
21
22
lazyProperty(module.exports, 'bufferConcat', function bufferConcat() {
23
return Buffer.concat || require('./buffer-concat')
24
})
25
26
lazyProperty(module.exports, 'callSiteToString', function callSiteToString() {
27
var limit = Error.stackTraceLimit
28
var obj = {}
29
var prep = Error.prepareStackTrace
30
31
function prepareObjectStackTrace(obj, stack) {
32
return stack
33
}
34
35
Error.prepareStackTrace = prepareObjectStackTrace
36
Error.stackTraceLimit = 2
37
38
// capture the stack
39
Error.captureStackTrace(obj)
40
41
// slice the stack
42
var stack = obj.stack.slice()
43
44
Error.prepareStackTrace = prep
45
Error.stackTraceLimit = limit
46
47
return stack[0].toString ? toString : require('./callsite-tostring')
48
})
49
50
lazyProperty(module.exports, 'eventListenerCount', function eventListenerCount() {
51
return EventEmitter.listenerCount || require('./event-listener-count')
52
})
53
54
/**
55
* Define a lazy property.
56
*/
57
58
function lazyProperty(obj, prop, getter) {
59
function get() {
60
var val = getter()
61
62
Object.defineProperty(obj, prop, {
63
configurable: true,
64
enumerable: true,
65
value: val
66
})
67
68
return val
69
}
70
71
Object.defineProperty(obj, prop, {
72
configurable: true,
73
enumerable: true,
74
get: get
75
})
76
}
77
78
/**
79
* Call toString() on the obj
80
*/
81
82
function toString(obj) {
83
return obj.toString()
84
}
85
86