swc/crates/swc_bundler/tests/.cache/deno/ef2702d20291c40faaef6ea5e15ae52132e12808.ts
2021-11-09 20:42:49 +09:00

21 lines
592 B
TypeScript

// Loaded from https://deno.land/x/dndb@0.2.4/src/methods/findOne.js
import { matches, project } from '../../deps.ts';
import { ReadFileStream } from '../storage.ts';
export default async (filename, query, projection) => {
let stream = new ReadFileStream(filename);
query = query || {};
return new Promise((resolve, reject) => {
stream.on('document', obj => {
if (matches(query, obj)) {
obj = Object.keys(projection).length ? project(obj, projection) : obj;
resolve(obj)
}
})
stream.on('end', () => {
return resolve(null);
})
})
}