Skip to content
This repository was archived by the owner on Nov 25, 2025. It is now read-only.

Commit 244ff67

Browse files
author
Giedrius Grabauskas
committed
Added LICENSE and README.
1 parent f92eadc commit 244ff67

10 files changed

Lines changed: 818 additions & 52 deletions

File tree

LICENSE

Lines changed: 661 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
glob-uglifyjs
2+
===========
3+
Uglify files with glob pattern.
4+
5+
## Usage
6+
```sh
7+
$ glob-uglifyjs -h
8+
```
9+
10+
## License
11+
Released under the [PGL-3.0 license](LICENSE).

dist/arguments.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,9 @@ exports.default = yargs
1212
describe: "Files glob pattern",
1313
type: "string"
1414
})
15+
.require("pattern", "Pattern required")
1516
.config('config')
1617
.alias('c', 'config')
1718
.default('config', 'glob-uglifyjs.config.json')
18-
.option("", {
19-
alias: "",
20-
describe: "",
21-
type: ""
22-
})
2319
.usage('Usage: glob-uglifyjs [options]')
2420
.argv;

dist/cli.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
const arguments_1 = require('./arguments');
22
const main_1 = require('./main');
3-
new main_1.default(arguments_1.default.pattern, arguments_1.default.options);
3+
new main_1.default(arguments_1.default.pattern, arguments_1.default.options || {});

dist/main.js

Lines changed: 66 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,18 @@ const options_1 = require('./options');
1313
const fs = require('fs');
1414
const JS_EXTENSION = ".js";
1515
const MINIFY_EXTENSION_PREFIX = ".min";
16+
class RejectionError {
17+
constructor(error, type = undefined) {
18+
this.error = error;
19+
this.type = type;
20+
}
21+
get Type() {
22+
return this.type;
23+
}
24+
get Error() {
25+
return this.error;
26+
}
27+
}
1628
class GlobsUglifyJs {
1729
constructor(globPattern, options) {
1830
this.options = new options_1.default(options);
@@ -25,12 +37,19 @@ class GlobsUglifyJs {
2537
main() {
2638
return __awaiter(this, void 0, void 0, function* () {
2739
let rejected = false;
28-
let filesList = yield this.getGlobs(this.globPattern);
40+
let filesList = yield this.getGlobs(this.globPattern)
41+
.catch(error => {
42+
console.log(error);
43+
rejected = true;
44+
});
45+
if (rejected) {
46+
return;
47+
}
2948
if (filesList.length === 0) {
3049
console.log("No files found.");
3150
return;
3251
}
33-
yield this.recursiveUglify(filesList.slice())
52+
yield this.recursiveUglify(filesList.slice(0))
3453
.catch(error => {
3554
console.log(error);
3655
rejected = true;
@@ -39,7 +58,7 @@ class GlobsUglifyJs {
3958
return;
4059
}
4160
if (this.options.RemoveSource) {
42-
yield this.deleteFiles(filesList.slice())
61+
yield this.deleteFiles(filesList.slice(0))
4362
.catch(error => {
4463
console.log(error);
4564
rejected = true;
@@ -71,7 +90,7 @@ class GlobsUglifyJs {
7190
yield this.deleteFile(file)
7291
.catch(error => {
7392
rejected = true;
74-
reject(error);
93+
reject(new RejectionError(error, "deleteFile"));
7594
});
7695
if (!rejected) {
7796
yield this.deleteFiles(fileList);
@@ -94,39 +113,59 @@ class GlobsUglifyJs {
94113
});
95114
});
96115
}
116+
uglifyFile(file) {
117+
return __awaiter(this, void 0, void 0, function* () {
118+
return new Promise((resolve, reject) => {
119+
try {
120+
let outputData = uglifyjs.minify(file);
121+
resolve(outputData);
122+
}
123+
catch (error) {
124+
reject(error);
125+
}
126+
});
127+
});
128+
}
97129
recursiveUglify(filesList) {
98130
return __awaiter(this, void 0, void 0, function* () {
99131
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
100132
let file = filesList.shift();
101133
if (file != null) {
102134
let rejected = false;
103-
let outputData = uglifyjs.minify(file);
135+
let outputData = yield this.uglifyFile(file)
136+
.catch(error => {
137+
reject(new RejectionError(error, "uglifyFile"));
138+
rejected = true;
139+
});
140+
if (rejected) {
141+
return;
142+
}
104143
let outPath = this.resolveOutFilePath(file);
105144
yield this.ensureDirectoryExistence(outPath)
106145
.catch(error => {
146+
console.log(error);
107147
rejected = true;
108-
reject(error);
148+
reject(new RejectionError(error, "ensureDirectoryExistence"));
109149
});
110150
if (rejected) {
111151
return;
112152
}
113153
yield this.writeToFile(outPath, outputData.code)
114154
.catch(error => {
115155
rejected = true;
116-
reject(error);
156+
reject(new RejectionError(error, "writeToFile"));
117157
});
118158
if (rejected) {
119159
return;
120160
}
121161
yield this.recursiveUglify(filesList)
122162
.catch(error => {
123163
rejected = true;
124-
reject(error);
164+
reject(new RejectionError(error, "recursiveUglify"));
125165
});
126-
if (rejected) {
127-
return;
166+
if (!rejected) {
167+
resolve();
128168
}
129-
resolve();
130169
}
131170
else {
132171
resolve();
@@ -137,13 +176,22 @@ class GlobsUglifyJs {
137176
ensureDirectoryExistence(filePath) {
138177
return __awaiter(this, void 0, void 0, function* () {
139178
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
179+
let rejected = false;
140180
let dirname = path.dirname(filePath);
141-
if (yield this.directoryExists(dirname)) {
181+
let directoryExist = yield this.directoryExists(dirname);
182+
if (directoryExist) {
142183
resolve();
143184
return;
144185
}
145-
yield this.ensureDirectoryExistence(dirname);
146-
fs.mkdir(dirname, (error) => {
186+
yield this.ensureDirectoryExistence(dirname)
187+
.catch(error => {
188+
reject(error);
189+
rejected = true;
190+
});
191+
if (rejected) {
192+
return;
193+
}
194+
fs.mkdir(dirname, error => {
147195
if (error) {
148196
reject(error);
149197
}
@@ -182,9 +230,9 @@ class GlobsUglifyJs {
182230
for (let i = 0; i < files.length; i++) {
183231
let file = files[i];
184232
var fullPath = path.join(directoryPath, file);
185-
yield this.deleteEmptyDirectories(fullPath).catch(error => {
186-
console.log("Error: ", error);
187-
reject(error);
233+
yield this.deleteEmptyDirectories(fullPath)
234+
.catch(error => {
235+
reject(new RejectionError(error, "deleteEmptyDirectories"));
188236
rejected = true;
189237
});
190238
if (rejected) {
@@ -202,7 +250,7 @@ class GlobsUglifyJs {
202250
if (files.length == 0) {
203251
yield this.removeDirectory(directoryPath)
204252
.catch(error => {
205-
reject(error);
253+
reject(new RejectionError(error, "removeDirectory"));
206254
rejected = true;
207255
});
208256
}

dist/options.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ class OptionsConstructor {
1212
};
1313
if (importData != null) {
1414
if (importData.Cwd != null) {
15-
process.chdir(importData.Cwd);
15+
if (importData.Cwd.length > 0) {
16+
process.chdir(importData.Cwd);
17+
}
1618
delete importData.Cwd;
1719
}
1820
this.options.Cwd = process.cwd();

src/arguments.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,9 @@ export default yargs
1818
describe: "Files glob pattern",
1919
type: "string"
2020
})
21+
.require("pattern", "Pattern required")
2122
.config('config')
2223
.alias('c', 'config')
2324
.default('config', 'glob-uglifyjs.config.json')
24-
.option("", {
25-
alias: "",
26-
describe: "",
27-
type: ""
28-
})
2925
.usage('Usage: glob-uglifyjs [options]')
3026
.argv as Arguments;

src/cli.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
import Arguments from './arguments';
22
import GlobsUglifyJs from './main';
33

4-
new GlobsUglifyJs(Arguments.pattern, Arguments.options);
4+
new GlobsUglifyJs(Arguments.pattern, Arguments.options || {});

0 commit comments

Comments
 (0)