61 lines
1.6 KiB
JavaScript
61 lines
1.6 KiB
JavaScript
#!/usr/bin/env node
|
|
(async function() {
|
|
'use strict';
|
|
|
|
var UglifyJS = require('uglify-js');
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var promisify = require('util').promisify;
|
|
var readFile = promisify(fs.readFile);
|
|
var writeFile = promisify(fs.writeFile);
|
|
var gzip = promisify(require('zlib').gzip);
|
|
|
|
// The order is specific, and it matters
|
|
var files = await Promise.all(
|
|
[
|
|
'../lib/encoding.js',
|
|
'../lib/asn1-packer.js',
|
|
'../lib/x509.js',
|
|
'../lib/ecdsa.js',
|
|
'../lib/rsa.js',
|
|
'../lib/keypairs.js',
|
|
'../lib/asn1-parser.js',
|
|
'../lib/csr.js',
|
|
'../lib/acme.js'
|
|
].map(async function(file) {
|
|
return (await readFile(path.join(__dirname, file), 'utf8')).trim();
|
|
})
|
|
);
|
|
|
|
var header =
|
|
[
|
|
'// Copyright 2015-2019 AJ ONeal. All rights reserved',
|
|
'/* This Source Code Form is subject to the terms of the Mozilla Public',
|
|
' * License, v. 2.0. If a copy of the MPL was not distributed with this',
|
|
' * file, You can obtain one at http://mozilla.org/MPL/2.0/. */'
|
|
].join('\n') + '\n';
|
|
|
|
var file = header + files.join('\n') + '\n';
|
|
await writeFile(path.join(__dirname, '../dist', 'acme.js'), file);
|
|
await writeFile(
|
|
path.join(__dirname, '../dist', 'acme.js.gz'),
|
|
await gzip(file)
|
|
);
|
|
|
|
// TODO source maps?
|
|
var result = UglifyJS.minify(file, {
|
|
compress: true,
|
|
// mangling doesn't save significant
|
|
mangle: false
|
|
});
|
|
if (result.error) {
|
|
throw result.error;
|
|
}
|
|
file = header + result.code;
|
|
await writeFile(path.join(__dirname, '../dist', 'acme.min.js'), file);
|
|
await writeFile(
|
|
path.join(__dirname, '../dist', 'acme.min.js.gz'),
|
|
await gzip(file)
|
|
);
|
|
})();
|