Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
export function writeToFileIterable(filename: string, data: Iterable): fs.WriteStream {
const sourceStream = iterableToStream(data);
const writeStream = fs.createWriteStream(filename);
const zip = filename.match(/\.gz$/) ? zlib.createGzip() : new stream.PassThrough();
return sourceStream.pipe(zip).pipe(writeStream);
}
return new Promise((resolve) => {
iterableToStream(words.map(a => a + '\n')).pipe(outputStream).on('finish', () => resolve());
});
});
notify('Create Trie', !!outputFile);
const pOutputStream = createWriteStream(outputFile);
notify(`Generating...`, !!outputFile);
const lines = await fileToLines(filename);
const toLower = lowerCase ? (a: string) => a.toLowerCase() : (a: string) => a;
const wordsRx = lines
.map(toLower)
.map(a => a.trim())
.filter(a => !!a);
notify('Processing Trie');
const root = wordsRx.reduce((node: Trie.TrieNode, word: string) => Trie.insert(word, node), {} as Trie.TrieNode);
notify('Export Trie');
const serialStream = iterableToStream(Trie.serializeTrie(root, (base - 0) || 32));
const outputStream = await pOutputStream;
return new Promise((resolve) => {
serialStream.pipe(outputStream).on('finish', () => resolve());
});
});