forked from bioinformatics-ua/dicoogle-client-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
gulpfile.js
94 lines (86 loc) · 2.6 KB
/
gulpfile.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
* Copyright (C) 2017 Universidade de Aveiro, DETI/IEETA, Bioinformatics Group - http://bioinformatics.ua.pt/
*
* This file is part of Dicoogle/dicoogle-client-js.
*
* Dicoogle/dicoogle-client-js is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Dicoogle/dicoogle-client-js is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Dicoogle. If not, see <http://www.gnu.org/licenses/>.
*/
"use strict";
const browserify = require("browserify");
const buffer = require("vinyl-buffer");
const eslint = require("gulp-eslint");
const fs = require("fs");
const gulp = require("gulp");
const header = require("gulp-header");
const rm = require("gulp-rm");
const source = require("vinyl-source-stream");
const sourcemaps = require("gulp-sourcemaps");
const ts = require("gulp-typescript");
const tsProject = ts.createProject("tsconfig.json");
const uglify = require("gulp-uglify");
var _licenseText = null;
function licenseText() {
if (!_licenseText) {
_licenseText = fs.readFileSync("license-header.txt", "UTF-8");
}
return _licenseText;
}
function lint() {
return gulp
.src(["src/*.js", "test/*.js", "test/mock/*.js", "bin/*.js"])
.pipe(eslint())
.pipe(eslint.format())
.pipe(eslint.failAfterError());
}
exports.lint = lint;
function main() {
return tsProject
.src()
.pipe(buffer())
.pipe(sourcemaps.init({ loadMaps: true }))
.pipe(tsProject())
.pipe(sourcemaps.write("./"))
.pipe(gulp.dest("lib"));
}
exports.main = main;
function bundle() {
// set up the browserify instance on a task basis
var b = browserify({
entries: "./lib/index.js",
debug: false,
transform: [
[
"envify",
{
_: "purge",
NODE_ENV: "production"
}
]
]
});
return b
.bundle()
.pipe(source("dicoogle-client.min.js"))
.pipe(buffer())
.pipe(uglify())
.pipe(header(licenseText()))
.pipe(gulp.dest("dist"));
}
exports.bundle = bundle;
function clean() {
return gulp.src(["dist/*", "lib/*", "coverage/**", ".nyc_output/**", "docs/**"], { read: false }).pipe(rm());
}
exports.clean = clean;
exports.default = gulp.series(lint, main);
gulp.task("default", exports.default);