mirror of
				https://github.com/therootcompany/acme.js.git
				synced 2024-11-16 17:29:00 +00:00 
			
		
		
		
	
		
			
	
	
		
			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) | ||
|  | 	); | ||
|  | })(); |