copy-folder-util 1.1.6 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/bin/cli.js +1 -1
- package/dist/copy-folder.d.ts +8 -3
- package/dist/copy-folder.js +17 -12
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -54,7 +54,7 @@ Command-line flags:
|
|
|
54
54
|
| `--quiet` | Suppress informational messages. | N/A |
|
|
55
55
|
| `--summary` | Only print out the single line summary message. | N/A |
|
|
56
56
|
|
|
57
|
-
Examples
|
|
57
|
+
### 4. Examples
|
|
58
58
|
- `copy-folder build --basename=index dist` <br>
|
|
59
59
|
Only copies files with filenames matching `index.*`.
|
|
60
60
|
|
package/bin/cli.js
CHANGED
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
import { cliArgvUtil } from 'cli-argv-util';
|
|
25
25
|
import { copyFolder } from '../dist/copy-folder.js';
|
|
26
26
|
|
|
27
|
-
// Parameters and
|
|
27
|
+
// Parameters and Flags
|
|
28
28
|
const validFlags = ['cd', 'ext', 'note', 'quiet', 'summary'];
|
|
29
29
|
const cli = cliArgvUtil.parse(validFlags);
|
|
30
30
|
const source = cli.params[0];
|
package/dist/copy-folder.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
//! copy-folder-util v1.1.
|
|
1
|
+
//! copy-folder-util v1.1.7 ~~ https://github.com/center-key/copy-folder-util ~~ MIT License
|
|
2
2
|
|
|
3
3
|
export type Settings = {
|
|
4
|
-
basename: string;
|
|
5
|
-
cd: string;
|
|
4
|
+
basename: string | null;
|
|
5
|
+
cd: string | null;
|
|
6
6
|
fileExtensions: string[];
|
|
7
7
|
};
|
|
8
8
|
export type Results = {
|
|
@@ -19,6 +19,11 @@ export type ReporterSettings = {
|
|
|
19
19
|
summaryOnly: boolean;
|
|
20
20
|
};
|
|
21
21
|
declare const copyFolder: {
|
|
22
|
+
extraneous: {
|
|
23
|
+
files: string[];
|
|
24
|
+
folders: string[];
|
|
25
|
+
};
|
|
26
|
+
assert(ok: unknown, message: string | null): void;
|
|
22
27
|
cp(sourceFolder: string, targetFolder: string, options?: Partial<Settings>): Results;
|
|
23
28
|
reporter(results: Results, options?: Partial<ReporterSettings>): Results;
|
|
24
29
|
};
|
package/dist/copy-folder.js
CHANGED
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
//! copy-folder-util v1.1.
|
|
1
|
+
//! copy-folder-util v1.1.7 ~~ https://github.com/center-key/copy-folder-util ~~ MIT License
|
|
2
2
|
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import fs from 'fs';
|
|
5
5
|
import log from 'fancy-log';
|
|
6
6
|
import path from 'path';
|
|
7
7
|
import slash from 'slash';
|
|
8
|
-
const extraneousFiles = ['.DS_Store', 'Thumbs.db', 'desktop.ini'];
|
|
9
|
-
const extraneousFolders = ['.git', 'node_modules'];
|
|
10
8
|
const copyFolder = {
|
|
9
|
+
extraneous: {
|
|
10
|
+
files: ['.DS_Store', 'Thumbs.db', 'desktop.ini'],
|
|
11
|
+
folders: ['.git', 'node_modules'],
|
|
12
|
+
},
|
|
13
|
+
assert(ok, message) {
|
|
14
|
+
if (!ok)
|
|
15
|
+
throw new Error(`[copy-folder-util] ${message}`);
|
|
16
|
+
},
|
|
11
17
|
cp(sourceFolder, targetFolder, options) {
|
|
12
18
|
const defaults = {
|
|
13
19
|
basename: null,
|
|
@@ -16,21 +22,20 @@ const copyFolder = {
|
|
|
16
22
|
};
|
|
17
23
|
const settings = { ...defaults, ...options };
|
|
18
24
|
const startTime = Date.now();
|
|
19
|
-
const
|
|
20
|
-
const startFolder = settings.cd ?
|
|
21
|
-
const source =
|
|
22
|
-
const target =
|
|
25
|
+
const cleanPath = (folder) => !folder ? '' : slash(path.normalize(folder)).replace(/\/$/, '');
|
|
26
|
+
const startFolder = settings.cd ? cleanPath(settings.cd) + '/' : '';
|
|
27
|
+
const source = cleanPath(startFolder + sourceFolder);
|
|
28
|
+
const target = cleanPath(startFolder + targetFolder);
|
|
23
29
|
if (targetFolder)
|
|
24
30
|
fs.mkdirSync(target, { recursive: true });
|
|
25
|
-
const
|
|
31
|
+
const error = !sourceFolder ? 'Must specify the source folder path.' :
|
|
26
32
|
!targetFolder ? 'Must specify the target folder path.' :
|
|
27
33
|
!fs.existsSync(source) ? 'Source folder does not exist: ' + source :
|
|
28
34
|
!fs.existsSync(target) ? 'Target folder cannot be created: ' + target :
|
|
29
35
|
!fs.statSync(source).isDirectory() ? 'Source is not a folder: ' + source :
|
|
30
36
|
!fs.statSync(target).isDirectory() ? 'Target is not a folder: ' + target :
|
|
31
37
|
null;
|
|
32
|
-
|
|
33
|
-
throw new Error('[copy-folder-util] ' + errorMessage);
|
|
38
|
+
copyFolder.assert(!error, error);
|
|
34
39
|
const filterOff = {
|
|
35
40
|
base: !settings.basename,
|
|
36
41
|
ext: !Array.isArray(settings.fileExtensions) || !settings.fileExtensions.length,
|
|
@@ -42,11 +47,11 @@ const copyFolder = {
|
|
|
42
47
|
const isFile = fs.statSync(origin).isFile();
|
|
43
48
|
const name = path.basename(origin);
|
|
44
49
|
const ext = path.extname(origin);
|
|
45
|
-
const keepFolder = !isFile && !
|
|
50
|
+
const keepFolder = !isFile && !copyFolder.extraneous.folders.includes(name);
|
|
46
51
|
const keepFile = isFile &&
|
|
47
52
|
(filterOff.base || name.replace(/[.].*/, '') === settings.basename) &&
|
|
48
53
|
(filterOff.ext || settings.fileExtensions.includes(ext)) &&
|
|
49
|
-
!
|
|
54
|
+
!copyFolder.extraneous.files.includes(name);
|
|
50
55
|
if (keepFile)
|
|
51
56
|
files.push({
|
|
52
57
|
origin: relativePath(posixPath(origin), source),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "copy-folder-util",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.7",
|
|
4
4
|
"description": "Recursively copy files from one folder to another folder (CLI tool designed for use in npm package.json scripts)",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
},
|
|
46
46
|
"runScriptsConfig": {
|
|
47
47
|
"clean": [
|
|
48
|
-
"rimraf build dist spec/
|
|
48
|
+
"rimraf build dist spec/target"
|
|
49
49
|
],
|
|
50
50
|
"lint": [
|
|
51
51
|
"jshint . --exclude-path .gitignore",
|
|
@@ -67,18 +67,18 @@
|
|
|
67
67
|
"slash": "~5.1"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
|
-
"@eslint/js": "~9.
|
|
70
|
+
"@eslint/js": "~9.39",
|
|
71
71
|
"@types/fancy-log": "~2.0",
|
|
72
|
-
"@types/node": "~24.
|
|
73
|
-
"add-dist-header": "~1.
|
|
72
|
+
"@types/node": "~24.10",
|
|
73
|
+
"add-dist-header": "~1.6",
|
|
74
74
|
"assert-deep-strict-equal": "~1.2",
|
|
75
75
|
"copy-file-util": "~1.3",
|
|
76
|
-
"eslint": "~9.
|
|
76
|
+
"eslint": "~9.39",
|
|
77
77
|
"jshint": "~2.13",
|
|
78
78
|
"mocha": "~11.7",
|
|
79
|
-
"rimraf": "~6.
|
|
79
|
+
"rimraf": "~6.1",
|
|
80
80
|
"run-scripts-util": "~1.3",
|
|
81
81
|
"typescript": "~5.9",
|
|
82
|
-
"typescript-eslint": "~8.
|
|
82
|
+
"typescript-eslint": "~8.46"
|
|
83
83
|
}
|
|
84
84
|
}
|