File: build.js

package info (click to toggle)
autosize.js 4.0.2~dfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 120 kB
  • sloc: makefile: 8; sh: 2
file content (73 lines) | stat: -rw-r--r-- 1,493 bytes parent folder | download | duplicates (2)
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
var pkg = require('./package.json');
var fs = require('fs');
var ugly = require('uglify-js');
var jshint = require('jshint').JSHINT;
var babel = require('babel-core');
var gaze = require('gaze');

function lint(full) {
	jshint(full.toString(), {
		browser: true,
		undef: true,
		unused: true,
		immed: true,
		eqeqeq: true,
		eqnull: true,
		noarg: true,
		immed: false,
		predef: ['define', 'module', 'exports', 'Map']
	});

	if (jshint.errors.length) {
		jshint.errors.forEach(function (err) {
			console.log(err.line+':'+err.character+' '+err.reason);
		});
	} else {
		console.log('linted')
	}

	return true;
}

function build(code) {
	var minified = ugly.minify(code).code;
	var header = [
		`/*!`,
		`	${pkg.name} ${pkg.version}`,
		`	license: ${pkg.license}`,
		`	${pkg.homepage}`,
		`*/`,
		``
	].join('\n');

	fs.writeFile('dist/'+pkg.name+'.js', header+code);
	fs.writeFile('dist/'+pkg.name+'.min.js', header+minified);
	console.log('dist built');
}

function transform(filepath) {
	babel.transformFile(filepath, {
		plugins: [
			"add-module-exports", ["transform-es2015-modules-umd", {"strict": true, "noInterop": true}]
		],
		presets: ["env"],
	}, function (err,res) {
		if (err) {
			return console.log(err);
		} else {
			lint(res.code);
			build(res.code);
		}
	});
}

gaze('src/'+pkg.name+'.js', function(err, watcher){
	// On file changed
	this.on('changed', function(filepath) {
		transform(filepath);
	});

	console.log('watching');
});

transform('src/'+pkg.name+'.js');