forked from sashin/sashinexists
run npm install to generate a package lock
This commit is contained in:
112
node_modules/watcher/test/tree.js
generated
vendored
Normal file
112
node_modules/watcher/test/tree.js
generated
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
|
||||
/* IMPORT */
|
||||
|
||||
import fs from 'node:fs';
|
||||
import path, { dirname } from 'node:path';
|
||||
import process from 'node:process';
|
||||
|
||||
/* MAIN */
|
||||
|
||||
class Tree {
|
||||
|
||||
static ROOT = path.join ( process.cwd (), 'test', '__TREES__' );
|
||||
|
||||
static BLUEPRINT = [
|
||||
'home/a/file1',
|
||||
'home/a/file2',
|
||||
'home/b/file1',
|
||||
'home/b/file2',
|
||||
'home/e/sub/file1',
|
||||
'home/e/file1',
|
||||
'home/e/file2',
|
||||
'home/shallow/1/2/file1',
|
||||
'home/shallow/1/2/file2',
|
||||
'home/deep/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/file1',
|
||||
'home/deep/1/2/3/4/5/6/7/8/9/10/11/12/13/14/15/16/17/18/19/20/21/22/23/file2',
|
||||
'home/empty/'
|
||||
];
|
||||
|
||||
constructor ( id ) {
|
||||
this.root = path.join ( Tree.ROOT, String ( id ) );
|
||||
}
|
||||
|
||||
build () {
|
||||
Tree.BLUEPRINT.forEach ( path => {
|
||||
if ( path.endsWith ( '/' ) ) {
|
||||
fs.mkdirSync ( this.path ( path ), { recursive: true } );
|
||||
} else {
|
||||
fs.mkdirSync ( dirname ( this.path ( path ) ), { recursive: true } );
|
||||
fs.writeFileSync ( this.path ( path ), '' );
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
copy ( path1, path2, delay = 0 ) {
|
||||
setTimeout ( () => {
|
||||
fs.cpSync ( this.path ( path1 ), this.path ( path2 ), { recursive: true } );
|
||||
}, delay );
|
||||
}
|
||||
|
||||
modify ( path, delay = 0 ) {
|
||||
setTimeout ( () => {
|
||||
fs.appendFileSync ( this.path ( path ), 'content' );
|
||||
}, delay );
|
||||
}
|
||||
|
||||
newDir ( path, delay = 0 ) {
|
||||
setTimeout ( () => {
|
||||
fs.mkdirSync ( this.path ( path ), { recursive: true } );
|
||||
}, delay );
|
||||
}
|
||||
|
||||
newDirs ( path, count ) {
|
||||
return Array ( count ).fill ().map ( ( _, nr ) => {
|
||||
const id = 'newdir_' + nr;
|
||||
const dpath = this.path ( path, id );
|
||||
fs.mkdirSync ( dpath, { recursive: true } );
|
||||
return dpath;
|
||||
});
|
||||
}
|
||||
|
||||
newFile ( path, delay = 0 ) {
|
||||
setTimeout ( () => {
|
||||
fs.mkdirSync ( dirname ( this.path ( path ) ), { recursive: true } );
|
||||
fs.writeFileSync ( this.path ( path ), '' );
|
||||
}, delay );
|
||||
}
|
||||
|
||||
newFiles ( path, count ) {
|
||||
return Array ( count ).fill ().map ( ( _, nr ) => {
|
||||
const id = 'newfile_' + nr;
|
||||
const fpath = this.path ( path, id );
|
||||
fs.mkdirSync ( dirname ( fpath ), { recursive: true } );
|
||||
fs.writeFileSync ( fpath, '' );
|
||||
return fpath;
|
||||
});
|
||||
}
|
||||
|
||||
path ( ...paths ) {
|
||||
if ( paths[0].startsWith ( 'home' ) ) {
|
||||
return path.join ( this.root, ...paths ).replace ( /\/$/, '' );
|
||||
} else {
|
||||
return path.join ( ...paths ).replace ( /\/$/, '' );
|
||||
}
|
||||
}
|
||||
|
||||
remove ( path, delay = 0 ) {
|
||||
setTimeout ( () => {
|
||||
fs.rmSync ( this.path ( path ), { recursive: true } );
|
||||
}, delay );
|
||||
}
|
||||
|
||||
rename ( path1, path2, delay = 0 ) {
|
||||
setTimeout ( () => {
|
||||
fs.renameSync ( this.path ( path1 ), this.path ( path2 ) );
|
||||
}, delay );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* EXPORT */
|
||||
|
||||
export default Tree;
|
||||
Reference in New Issue
Block a user