forked from krakenjs/localizr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
44 lines (36 loc) · 2.34 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*───────────────────────────────────────────────────────────────────────────*\
│ Copyright (C) 2014 eBay Software Foundation │
│ │
│ Licensed under the Apache License, Version 2.0 (the "License"); │
│ you may not use this file except in compliance with the License. │
│ You may obtain a copy of the License at │
│ │
│ http://www.apache.org/licenses/LICENSE-2.0 │
│ │
│ Unless required by applicable law or agreed to in writing, software │
│ distributed under the License is distributed on an "AS IS" BASIS, │
│ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. │
│ See the License for the specific language governing permissions and │
│ limitations under the License. │
\*───────────────────────────────────────────────────────────────────────────*/
'use strict';
var fs = require('fs'),
assert = require('assert'),
tagfinder = require('findatag'),
bundle = require('./lib/bundle'),
handler = require('./lib/handler'),
metadata = require('./lib/metadata');
exports.createReadStream = function (options) {
var handle, src, dest;
options = options || {};
assert.ok(options.src, 'No input file specified.');
assert.ok(options.props, 'No properties file specified.');
handle = handler.create(maybeAddMetadata(bundle.create(options.props), options.enableMetadata));
src = fs.createReadStream(options.src);
dest = tagfinder.createParseStream(handle);
// Forward errors
return src.on('error', dest.emit.bind(dest, 'error')).pipe(dest);
};
function maybeAddMetadata(bundle, enable) {
return enable ? metadata.decorate(bundle) : bundle;
}