diff --git a/lib/factories.js b/lib/factories.js index 475386c57c..50741c06fd 100644 --- a/lib/factories.js +++ b/lib/factories.js @@ -588,6 +588,21 @@ var objectVisitor = function (self, schema, data, callback) { }; +function check_options_correctness_against_schema(schema, options) { + // check correctness of option fields + var possible_fields = schema.fields.map(function (field) { + return field.name; + }); + var current_fields = Object.keys(options); + var invalid_options_fields = _.difference(current_fields, possible_fields); + if (invalid_options_fields.length > 0) { + var err = new Error(); + console.log("expected schema", schema.name); + require("./utils").display_trace_from_this_projet_only(); + console.log("invalid_options_fields= ", invalid_options_fields); + } + assert(invalid_options_fields.length === 0 && " invalid field found in option"); +} /** * base constructor for all OPC-UA Object * @@ -611,18 +626,7 @@ function BaseObject(schema,options) { }; options = options || {}; - - // check correctness of option fields - var possible_fields = schema.fields.map(function(field){return field.name;}); - var current_fields = Object.keys(options); - var invalid_options_fields =_.difference(current_fields,possible_fields); - if(invalid_options_fields.length>0) { - var err = new Error(); - console.log("expected schema" ,schema.name ); - require("./utils").display_trace_from_this_projet_only(); - console.log("invalid_options_fields= ",invalid_options_fields); - } - assert( invalid_options_fields.length === 0 && " invalid field found in option"); + check_options_correctness_against_schema(schema, options); var data = { options: options,