cspell-tools
Advanced tools
Comparing version 4.1.5 to 4.1.6
@@ -7,2 +7,3 @@ #!/usr/bin/env node | ||
const compiler_1 = require("./compiler"); | ||
const compiler = require("./compiler"); | ||
const path = require("path"); | ||
@@ -21,2 +22,6 @@ const program = require("commander"); | ||
} | ||
const log = (message, ...optionalParams) => { | ||
console.log(`${new Date().toISOString()} ${message}`, ...optionalParams); | ||
}; | ||
compiler.setLogger(log); | ||
function run(program, argv) { | ||
@@ -49,5 +54,6 @@ program.exitOverride(); | ||
.option('-n, --no-compress', 'By default the files are Gzipped, this will turn that off.') | ||
.option('--trie3', '[Beta] Use file format trie3') | ||
.action((src, options) => { | ||
const result = processAction(src, '.trie', options, async (words, dst) => { | ||
return compiler_1.compileTrie(words, dst); | ||
return compiler_1.compileTrie(words, dst, options); | ||
}); | ||
@@ -78,6 +84,8 @@ resolve(result); | ||
.concatMap(files => files) | ||
.map(async (s) => { | ||
const words = await iterateWordsFromFile_1.streamWordsFromFile(s, readerOptions); | ||
.map(async (filename) => { | ||
log(`Reading ${path.basename(filename)}`); | ||
const words = await iterateWordsFromFile_1.streamWordsFromFile(filename, readerOptions); | ||
log(`Done reading ${path.basename(filename)}`); | ||
const f = { | ||
src: s, | ||
src: filename, | ||
words, | ||
@@ -91,6 +99,6 @@ }; | ||
await r; | ||
console.log(`Complete.`); | ||
log(`Complete.`); | ||
} | ||
function toFilename(name, ext) { | ||
return path.basename(name).replace(/((\.txt|\.dic|\.aff)(\.gz)?)?$/, '') + ext; | ||
return path.basename(name).replace(/((\.txt|\.dic|\.aff|\.trie)(\.gz)?)?$/, '') + ext; | ||
} | ||
@@ -111,5 +119,5 @@ function toTargetFile(filename, destination, ext) { | ||
const dst = srcToTarget(src); | ||
console.log('Process "%s" to "%s"', src, dst); | ||
log('Process "%s" to "%s"', src, dst); | ||
await action(words, dst); | ||
console.log('Done "%s" to "%s"', src, dst); | ||
log('Done "%s" to "%s"', src, dst); | ||
}); | ||
@@ -126,3 +134,3 @@ for (const p of toProcess) { | ||
const { src } = ftp; | ||
console.log('Process "%s" to "%s"', src, dst); | ||
log('Process "%s" to "%s"', src, dst); | ||
return ftp; | ||
@@ -132,3 +140,3 @@ }) | ||
await action(words, dst); | ||
console.log('Done "%s"', dst); | ||
log('Done "%s"', dst); | ||
} | ||
@@ -135,0 +143,0 @@ if (require.main === module) { |
import { Sequence } from 'gensequence'; | ||
import * as Trie from 'cspell-trie-lib'; | ||
export declare type Logger = (message?: any, ...optionalParams: any[]) => void; | ||
export declare function setLogger(logger?: Logger): void; | ||
export declare function normalizeWords(lines: Sequence<string>): Sequence<string>; | ||
@@ -11,3 +13,7 @@ export declare function lineToWords(line: string): Sequence<string>; | ||
export declare function normalizeWordsToTrie(words: Sequence<string>): Trie.TrieNode; | ||
export declare function compileTrie(words: Sequence<string>, destFilename: string): Promise<void>; | ||
export interface CompileTrieOptions { | ||
base?: number; | ||
trie3?: boolean; | ||
} | ||
export declare function compileTrie(words: Sequence<string>, destFilename: string, options: CompileTrieOptions): Promise<void>; | ||
export {}; |
@@ -14,2 +14,10 @@ "use strict"; | ||
const regExpRepeatChars = /(.)\1{3,}/i; | ||
let log = defaultLogger; | ||
function setLogger(logger) { | ||
log = (logger !== null && logger !== void 0 ? logger : defaultLogger); | ||
} | ||
exports.setLogger = setLogger; | ||
function defaultLogger(message, ...optionalParams) { | ||
console.log(message, ...optionalParams); | ||
} | ||
function normalizeWords(lines) { | ||
@@ -63,8 +71,11 @@ return lines.concatMap(line => lineToWords(line)); | ||
function normalizeWordsToTrie(words) { | ||
const result = normalizeWords(words) | ||
.reduce((node, word) => Trie.insert(word, node), {}); | ||
return result; | ||
const trie = Trie.buildTrie(normalizeWords(words)); | ||
return trie.root; | ||
} | ||
exports.normalizeWordsToTrie = normalizeWordsToTrie; | ||
async function compileTrie(words, destFilename) { | ||
async function compileTrie(words, destFilename, options) { | ||
var _a; | ||
log('Reading Words into Trie'); | ||
const base = (_a = options.base, (_a !== null && _a !== void 0 ? _a : 32)); | ||
const version = options.trie3 ? 3 : 1; | ||
const destDir = path.dirname(destFilename); | ||
@@ -74,5 +85,9 @@ const pDir = fs_extra_1.mkdirp(destDir); | ||
const [root] = await Promise.all([pRoot, pDir]); | ||
return fileWriter_1.writeSeqToFile(Trie.serializeTrie(root, { base: 32, comment: 'Built by cspell-tools.' }), destFilename); | ||
log('Reduce duplicate word endings'); | ||
const trie = Trie.consolidate(root); | ||
log(`Writing to file ${path.basename(destFilename)}`); | ||
await fileWriter_1.writeSeqToFile(Trie.serializeTrie(trie, { base, comment: 'Built by cspell-tools.', version }), destFilename); | ||
log(`Done writing to file ${path.basename(destFilename)}`); | ||
} | ||
exports.compileTrie = compileTrie; | ||
//# sourceMappingURL=wordListCompiler.js.map |
{ | ||
"name": "cspell-tools", | ||
"version": "4.1.5", | ||
"version": "4.1.6", | ||
"description": "Tools to assist with the development of cSpell", | ||
@@ -44,6 +44,6 @@ "typings": "dist/index.d.ts", | ||
"cspell-io": "^4.0.19", | ||
"cspell-trie-lib": "^4.1.1", | ||
"cspell-trie-lib": "^4.1.2", | ||
"cspell-util-bundle": "^4.0.6", | ||
"fs-extra": "^8.1.0", | ||
"gensequence": "^2.1.3", | ||
"gensequence": "^3.0.1", | ||
"glob": "^7.1.6", | ||
@@ -75,3 +75,3 @@ "hunspell-reader": "^3.1.3", | ||
}, | ||
"gitHead": "331057e642545d13c2ce019636b99a535f8f966c" | ||
"gitHead": "f0658565489fa4a2fd38e2f31820ce9fbbe9bfba" | ||
} |
19535
343
- Removedgensequence@2.3.0(transitive)
Updatedcspell-trie-lib@^4.1.2
Updatedgensequence@^3.0.1