liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
var handlebars = require('handlebars')
var ddata = require('./ddata')
 
exports.identifiers = identifiers
exports.identifier = identifier
exports.orphans = orphans
exports.globals = globals
exports.modules = modules
exports.module = module
exports.classes = classes
exports.class = class_
exports.functions = functions
exports.function = function_
exports.namespace = namespace
exports.enum = enum_
exports.misc = misc
 
/**
 * render the supplied block for each identifier in the query
 * @static
 */
function identifiers (options) {
  return handlebars.helpers.each(ddata._identifiers(options), options)
}
 
/**
 * render the supplied block for the specified identifier
 * @static
 */
function identifier (options) {
  var result = ddata._identifier(options)
  return result ? options.fn(result) : 'ERROR, Cannot find identifier.'
}
 
/**
 * render the supplied block for each parent (global identifier, or module)
 * @static
 */
function orphans (options) {
  return handlebars.helpers.each(ddata._orphans(options), options)
}
 
/**
 * render the supplied block for each identifier in global scope
 * @static
 */
function globals (options) {
  return handlebars.helpers.each(ddata._globals(options), options)
}
 
/**
 * render the supplied block for each module
 * @static
 */
function modules (options) {
  options.hash.kind = 'module'
  return handlebars.helpers.each(ddata._identifiers(options), options)
}
 
/**
 * render the supplied block for the specified module
 * @static
 */
function module (options) {
  options.hash.kind = 'module'
  var result = ddata._identifiers(options)[0]
  return result ? options.fn(result) : 'ERROR, Cannot find module.'
}
 
/**
 * render the block for each class
 * @static
 */
function classes (options) {
  options.hash.kind = 'class'
  return handlebars.helpers.each(ddata._identifiers(options), options)
}
 
/**
 * render the supplied block for the specified class
 */
function class_ (options) {
  options.hash.kind = 'class'
  var result = ddata._identifier(options)
  return result ? options.fn(result) : 'ERROR, Cannot find class.'
}
 
/**
 * render the block for each function/method
 * @static
 */
function functions (options) {
  options.hash.kind = 'function'
  return handlebars.helpers.each(ddata._identifiers(options), options)
}
 
/**
 * render the supplied block for the specified function
 */
function function_ (options) {
  options.hash.kind = 'function'
  var result = ddata._identifier(options)
  return result ? options.fn(result) : 'ERROR, Cannot find function.'
}
 
/**
 * render the supplied block for the specified function
 */
function namespace (options) {
  options.hash.kind = 'namespace'
  var result = ddata._identifier(options)
  return result ? options.fn(result) : 'ERROR, Cannot find namespace.'
}
 
/**
 * render the supplied block for the specified enum
 */
function enum_ (options) {
  options.hash.kind = 'enum'
  var result = ddata._identifier(options)
  return result ? options.fn(result) : 'ERROR, Cannot find enum.'
}
 
/**
 * render the supplied block for each orphan with no scope set
 * @static
 */
function misc (options) {
  options.hash.scope = undefined
  options.hash['!kind'] = /module|constructor|external/
  options.hash['!isExported'] = true
  return handlebars.helpers.each(ddata._identifiers(options), options)
}