Skip to content

Commit 5d5ddb0

Browse files
author
piersh
committed
check for valid const-typed parameter docs
1 parent 0956fc9 commit 5d5ddb0

File tree

1 file changed

+39
-22
lines changed

1 file changed

+39
-22
lines changed

docs/preprocessor.js

Lines changed: 39 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -70,27 +70,40 @@ function mergeOverloadedMethods(data) {
7070
}
7171
};
7272

73-
var extractConsts = function(params) {
74-
params &&
75-
params.forEach(function(param) {
76-
if (param.type.split('|').indexOf('Constant') >= 0) {
77-
var match;
78-
if (classitem.name === 'endShape' && param.name === 'mode') {
79-
match = 'CLOSE';
80-
} else {
81-
var constantRe = /either\s+(?:[A-Z0-9_]+\s*,?\s*(?:or)?\s*)+/g;
82-
var execResult = constantRe.exec(param.description);
83-
match = execResult && execResult[0];
84-
}
85-
if (match) {
86-
var reConst = /[A-Z0-9_]+/g;
87-
var matchConst;
88-
while ((matchConst = reConst.exec(match)) !== null) {
89-
methodConsts[matchConst] = true;
90-
}
91-
}
73+
var extractConsts = function(param) {
74+
if (!param.type) {
75+
console.log(param);
76+
}
77+
if (param.type.split('|').indexOf('Constant') >= 0) {
78+
var match;
79+
if (classitem.name === 'endShape' && param.name === 'mode') {
80+
match = 'CLOSE';
81+
} else {
82+
var constantRe = /either\s+(?:[A-Z0-9_]+\s*,?\s*(?:or)?\s*)+/g;
83+
var execResult = constantRe.exec(param.description);
84+
match = execResult && execResult[0];
85+
if (!match) {
86+
throw new Error(
87+
classitem.file +
88+
':' +
89+
classitem.line +
90+
', Constant-typed parameter ' +
91+
fullName +
92+
'(...' +
93+
param.name +
94+
'...) is missing valid value enumeration. ' +
95+
'See inline_documentation.md#specify-parameters.'
96+
);
97+
}
98+
}
99+
if (match) {
100+
var reConst = /[A-Z0-9_]+/g;
101+
var matchConst;
102+
while ((matchConst = reConst.exec(match)) !== null) {
103+
methodConsts[matchConst] = true;
92104
}
93-
});
105+
}
106+
}
94107
};
95108

96109
var processOverloadedParams = function(params) {
@@ -125,10 +138,10 @@ function mergeOverloadedMethods(data) {
125138
);
126139
} else {
127140
paramNames[param.name] = param;
141+
extractConsts(param);
128142
}
129143
});
130144

131-
extractConsts(params);
132145
return params;
133146
};
134147

@@ -182,7 +195,11 @@ function mergeOverloadedMethods(data) {
182195
method.overloads.push(makeOverload(classitem));
183196
return false;
184197
} else {
185-
extractConsts(classitem.params);
198+
if (classitem.params) {
199+
classitem.params.forEach(function(param) {
200+
extractConsts(param);
201+
});
202+
}
186203
methodsByFullName[fullName] = classitem;
187204
}
188205

0 commit comments

Comments
 (0)