UNPKG

939 Btext/coffeescriptView Raw
1creek = require('./creek')
2
3agg = creek.lazyBucketedAggregator.create()
4
5publicInterface = {}
6
7publicInterface.track = (name, opts) -> agg.track(name, opts)
8
9for name, code of creek.aggregators
10 publicInterface[name] = code
11
12publicInterface.interface = (interfaceName, opts) ->
13 opts ?= {}
14 require("./interfaces/#{interfaceName}").init(agg, opts)
15
16publicInterface.parser = (parserName, opts) ->
17 opts ?= {}
18 require("./parsers/#{parserName}").init agg, opts, (record) ->
19 bucket = if opts.bucketedBy? then record[opts.bucketedBy] else null
20 timestamp = if opts.timestampedBy? then this record[opts.timestampedBy] else new Date()
21 agg.push((bucket or 'default'), timestamp, record)
22
23exports.boot = (configFile) ->
24 Script = process.binding('evals').Script
25 code = require('fs').readFileSync(configFile, 'utf8')
26 jsCode = require('coffee-script').compile(code)
27 Script.runInNewContext(jsCode, publicInterface, configFile)
\No newline at end of file