aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build/generateMschema.js49
1 files changed, 29 insertions, 20 deletions
diff --git a/build/generateMschema.js b/build/generateMschema.js
index af795891..8718fdb8 100644
--- a/build/generateMschema.js
+++ b/build/generateMschema.js
@@ -24,39 +24,48 @@ schema.methodSchemas = {
};
items.forEach(function(item){
- // schema[item] = {};
schema.modules.enum.push(item);
for (var q in faker[item]) {
//console.log(item + '.' + q);
+
+ // check to see if an existing schema existing on the function
var fnLine = faker[item][q].toString().split('\n').slice(0,1)[0];
var prop;
- // find first (
- var start = fnLine.search(/\(/);
+ if (typeof faker[item][q].schema === "object") {
+ // if so, we'll want to merge that onto the exported schemas here
+ prop = faker[item][q].schema;
+ } else {
+ // if not, fall back to the ones we can parse from the method itself
- // find first )
- var end = fnLine.search(/\)/);
+ // find first (
+ var start = fnLine.search(/\(/);
- // substr on those positions
- fnLine = fnLine.substr(start + 1, end - start - 1)
+ // find first )
+ var end = fnLine.search(/\)/);
- if (fnLine === "") {
- //console.log(item + '.' + q, 'no arguments')
- prop = {
- };
- } else {
- // split on ,
- fnLine = fnLine.split(',');
- //console.log(item + '.' + q, fnLine);
- prop = {};
- fnLine.forEach(function(arg){
- prop[arg] = {
- type: "any"
+ // substr on those positions
+ fnLine = fnLine.substr(start + 1, end - start - 1)
+ if (fnLine === "") {
+ //console.log(item + '.' + q, 'no arguments')
+ prop = {
};
- });
+ } else {
+ // split on ,
+ fnLine = fnLine.split(',');
+ //console.log(item + '.' + q, fnLine);
+ prop = {};
+ prop.properties = {};
+ fnLine.forEach(function(arg){
+ prop.properties[arg] = {
+ type: "any"
+ };
+ });
+ }
}
+
schema.methods.enum.push(item + '.' + q);
schema.methodSchemas[item + '.' + q] = prop;
}