From a796fed43f7a5fee4a16f137156dc16932ef84d4 Mon Sep 17 00:00:00 2001 From: Jason Dent Date: Tue, 24 Dec 2019 11:15:50 +0100 Subject: [PATCH] [cspell-trie] support reading trie.gz and text.gz files --- packages/cspell-trie/bin.js | 5 +++++ packages/cspell-trie/package.json | 5 +++-- packages/cspell-trie/src/app.ts | 7 ++++--- 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100755 packages/cspell-trie/bin.js diff --git a/packages/cspell-trie/bin.js b/packages/cspell-trie/bin.js new file mode 100755 index 00000000000..e0fd0ec4099 --- /dev/null +++ b/packages/cspell-trie/bin.js @@ -0,0 +1,5 @@ +#!/usr/bin/env node + +'use strict'; + +require('./dist/app'); diff --git a/packages/cspell-trie/package.json b/packages/cspell-trie/package.json index 36ea7790630..eda67c771e9 100644 --- a/packages/cspell-trie/package.json +++ b/packages/cspell-trie/package.json @@ -1,11 +1,12 @@ { "name": "cspell-trie", "version": "4.1.8", - "description": "Trie Data Structure and tools to support cspell.", - "bin": "./dist/app.js", + "description": "Trie Data Structure reader for cspell", + "bin": "bin.js", "main": "dist/index.js", "types": "dist/index.d.ts", "files": [ + "bin.js", "dist/**", "!**/*.map", "!**/*.test.*" diff --git a/packages/cspell-trie/src/app.ts b/packages/cspell-trie/src/app.ts index 548da38adcc..c08af9aa4f9 100644 --- a/packages/cspell-trie/src/app.ts +++ b/packages/cspell-trie/src/app.ts @@ -8,6 +8,8 @@ import * as path from 'path'; import * as Trie from 'cspell-trie-lib'; import { Sequence, genSequence } from 'gensequence'; import { iterableToStream } from 'iterable-to-stream'; +import * as zlib from 'zlib'; + const UTF8: BufferEncoding = 'utf8'; @@ -76,7 +78,8 @@ if (!commander.args.length) { } async function fileToLines(filename: string): Promise> { - const file = await fs.readFile(filename, UTF8); + const buffer = await fs.readFile(filename); + const file = (filename.match(/\.gz$/) ? zlib.gunzipSync(buffer) : buffer).toString(UTF8); return genSequence(file.split(/\r?\n/)); } @@ -93,5 +96,3 @@ function notify(message: any, useStdOut = true) { console.error(message); } } - -