49 lines
1.0 KiB
JavaScript
49 lines
1.0 KiB
JavaScript
const binding = require('node-gyp-build')(__dirname);
|
|
const path = require('path');
|
|
|
|
function normalizeOptions(dir, opts = {}) {
|
|
if (Array.isArray(opts.ignore)) {
|
|
opts = Object.assign({}, opts, {
|
|
ignore: opts.ignore.map(ignore => path.resolve(dir, ignore)),
|
|
});
|
|
}
|
|
|
|
return opts;
|
|
}
|
|
|
|
exports.writeSnapshot = (dir, snapshot, opts) => {
|
|
return binding.writeSnapshot(
|
|
path.resolve(dir),
|
|
path.resolve(snapshot),
|
|
normalizeOptions(dir, opts),
|
|
);
|
|
};
|
|
|
|
exports.getEventsSince = (dir, snapshot, opts) => {
|
|
return binding.getEventsSince(
|
|
path.resolve(dir),
|
|
path.resolve(snapshot),
|
|
normalizeOptions(dir, opts),
|
|
);
|
|
};
|
|
|
|
exports.subscribe = async (dir, fn, opts) => {
|
|
dir = path.resolve(dir);
|
|
opts = normalizeOptions(dir, opts);
|
|
await binding.subscribe(dir, fn, opts);
|
|
|
|
return {
|
|
unsubscribe() {
|
|
return binding.unsubscribe(dir, fn, opts);
|
|
},
|
|
};
|
|
};
|
|
|
|
exports.unsubscribe = (dir, fn, opts) => {
|
|
return binding.unsubscribe(
|
|
path.resolve(dir),
|
|
fn,
|
|
normalizeOptions(dir, opts),
|
|
);
|
|
};
|