gardr-validator v1.1.0
garðr-validator
Collect data from a display-ads lifecyle and validate the data. This project tries to give a nice framework for doing this.
Installation
$ npm install
Examples
See the web-gui for this project: https://github.com/gardr/validator-web/blob/master/lib/routes/validate.js#L284
Writing intrumentation and validators
Intrument / Hook example filename: 'someData.js':
module.exports = {
'onBeforeExit': function (api, config) {
api.switchToIframe();
if (config.someConfigBoolean){
api.set('collectedData', api.evaluate(function(config){
return window.someData;
}, config));
}
}
};
Preprocessor example filename 'fixSomethingAsync.js'
module.exports = {
'dependencies': ['someData'],
'preprocess': function(harvested, output, next, globalOptions){
output('someKey', {data: harvested.someData||{}});
setTimeout(next, 1);
}
};
Validator example filename 'someData.js'
module.exports = {
'preprocessors': [
'fixSomethingAsync'
],
'dependencies': [
'someData'
],
'validate': function(harvested, report, next, globalOptions){
if (this.someConfigBoolean){
if (harvested.someData){
report.error('Some message');
}
}
}
};
Adding instrumentation/hooks etc to a run
var run = require('gardr-validator');
var options = {
'include': [
{
name: 'someData',
path: '/resolved/path/to/someData.js'
}
],
'config':{
'someData': {
'someConfigBoolean': true
}
}
};
run(options, function(phantomError, harvest, report){
if (phantomError){
// do something
return;
}
assert(harvest.someData);
assert(harvest.someKey);
assert(report.errors.length === 1);
})
Options to runner
{
instrument: [
'actions', // defaults to files in /lib/rule/instrument/actions.js
{name: 'css'},
{name: 'custom', path: '/absolute/path/to/file'},
{name: 'custom2', code: 'var someCode = "";'}
],
preprocess: [
//..
],
validate: [
//..
]
//rest of runner default options, see /config folder.
}
Contributing
YES, pull requests with tests. Be sure to create a issue and let us know you are working on it - maybe we can help out with insights etc.
Running tests
$ npm test
Configuration options via process.env / ENV variables
- GOOG_PAGESPEED_API_KEY
- GOOG_SAFE_BROWSE_API_KEY
Alternatives
(please let us know of alternatives to this project)
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago