-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathgulpfile.js
112 lines (97 loc) · 3.34 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/*!
* ioBroker gulpfile
* Date: 2019-01-28
*/
"use strict";
const gulp = require("gulp");
const fs = require("fs");
const pkg = require("./package.json");
const iopackage = require("./io-package.json");
const version = (pkg && pkg.version) ? pkg.version : iopackage.common.version;
const fileName = "words.js";
const EMPTY = "";
const languages = {
en: {},
de: {},
ru: {},
pt: {},
nl: {},
fr: {},
it: {},
es: {},
pl: {},
"zh-cn": {}
};
const terser = require('gulp-terser');
const concat = require('gulp-concat');
//TASKS
gulp.task("updatePackages", function (done) {
iopackage.common.version = pkg.version;
iopackage.common.news = iopackage.common.news || {};
if (!iopackage.common.news[pkg.version]) {
const news = iopackage.common.news;
const newNews = {};
newNews[pkg.version] = {
en: "news",
de: "neues",
ru: "новое",
pt: "novidades",
nl: "nieuws",
fr: "nouvelles",
it: "notizie",
es: "noticias",
pl: "nowości",
"zh-cn": "新"
};
iopackage.common.news = Object.assign(newNews, news);
}
fs.writeFileSync("io-package.json", JSON.stringify(iopackage, null, 4));
done();
});
gulp.task("updateReadme", function (done) {
const readme = fs.readFileSync("README.md").toString();
const pos = readme.indexOf("## Changelog\n");
if (pos !== -1) {
const readmeStart = readme.substring(0, pos + "## Changelog\n".length);
const readmeEnd = readme.substring(pos + "## Changelog\n".length);
if (readme.indexOf(version) === -1) {
const timestamp = new Date();
const date = timestamp.getFullYear() + "-" +
("0" + (timestamp.getMonth() + 1).toString(10)).slice(-2) + "-" +
("0" + (timestamp.getDate()).toString(10)).slice(-2);
let news = "";
if (iopackage.common.news && iopackage.common.news[pkg.version]) {
news += "* " + iopackage.common.news[pkg.version].en;
}
fs.writeFileSync("README.md", readmeStart + "### " + version + " (" + date + ")\n" + (news ? news + "\n\n" : "\n") + readmeEnd);
}
}
done();
});
gulp.task("default", gulp.series("updatePackages", "updateReadme"));
//Compress ThreeJS Javascript files
gulp.task('compress-three', function () {
const sourceJsFiles = [
'node_modules/three/build/three.js',
'node_modules/three/examples/js/controls/OrbitControls.js',
'node_modules/three/examples/js/loaders/GLTFLoader.js',
];
const targetFolder = 'widgets/vis-3dmodel/lib';
const targetJsFile = 'three.min.js';
return gulp.src(sourceJsFiles)
.pipe(concat(targetJsFile))
.pipe(terser())
.pipe(gulp.dest(targetFolder));
});
//Compess Loglevel Javascript files
gulp.task('compress-loglevel', function () {
const sourceJsFiles = [
'node_modules/loglevel/dist/loglevel.js'
];
const targetFolder = 'widgets/vis-3dmodel/lib';
const targetJsFile = 'loglevel.min.js';
return gulp.src(sourceJsFiles)
.pipe(concat(targetJsFile))
.pipe(terser())
.pipe(gulp.dest(targetFolder));
});