core package for detect duplicates, depends only on eventemitter3.
npm install @jscpd/finder --save
import {Tokenizer} from '@jscpd/tokenizer';
import {
MemoryStore,
IOptions,
IClone,
IStore,
ITokenizer
} from '@jscpd/core';
import {EntryWithContent, getFilesToDetect, InFilesDetector} from '@jscpd/finder';
const options: IOptions = {
minLines: 5,
maxLines: 500,
path: ['list of folders and files to analyse for clones']
}
const tokenizer: ITokenizer = new Tokenizer();
// here you can use any store what implement IStore interface
const store: IStore = new MemoryStore();
const statistic = new Statistic(options);
const files: EntryWithContent[] = getFilesToDetect(options);
const detector = new InFilesDetector(tokenizer, store, statistic, options);
( async () => {
const clones: IClone[] = await detector.detect(files);
})();
MIT © Andrey Kucherenko