@ehmicky/dev-tasks
Version:
Automated development tasks for my own projects
41 lines (29 loc) • 824 B
JavaScript
import{fileURLToPath}from"node:url";
import{exec}from"gulp-execa";
import pFilter from"p-filter";
import{pathExists}from"path-exists";
import{
JAVASCRIPT_EXTS_STR,
SOURCES_DIRS,
TYPESCRIPT_EXT,
TYPESCRIPT_TESTS_EXT}from
"../../files.js";
const JSCPD_CONFIG=fileURLToPath(new URL(".jscpd.json",import.meta.url));
export const jscpd=async()=>{
const sourceDirs=await pFilter(SOURCES_DIRS,pathExists);
if(sourceDirs.length===0){
return
}
try{
await runJscpd(sourceDirs,true)
}catch{
await runJscpd(sourceDirs,false)
}
};
const runJscpd=async(sourceDirs,silent)=>{
const sourceDirsStr=sourceDirs.join(" ");
await exec(
`jscpd --config=${JSCPD_CONFIG} --pattern=**/*.{${JAVASCRIPT_EXTS_STR},${TYPESCRIPT_EXT}} --ignore=**/*.${TYPESCRIPT_TESTS_EXT} ${sourceDirsStr}`,
{echo:false,stdout:silent?"ignore":"inherit"}
)
};