zettapi_client
Version:
Client side CRUD operations in angular to use with zettapi_server rest api to get started quickly in any CMS project
65 lines (57 loc) • 1.58 kB
JavaScript
var rollup = require('rollup').rollup;
var pack = require('../package.json');
var banner = require('./banner.js');
var fs = require('fs');
var zlib = require('zlib');
var uglify = require('uglify-js');
var toUpper = function(_, c) {
return c ? c.toUpperCase() : '';
};
const classifyRE = /(?:^|[-_\/])(\w)/g;
var classify = function(str) {
return str.replace(classifyRE, toUpper);
};
var zip = function() {
return new Promise(function(resolve, reject) {
fs.readFile('dist/' + pack.name + '.min.js', function(err, buf) {
if (err) return reject(err);
zlib.gzip(buf, function(err, buf) {
if (err) return reject(err);
write('dist/' + pack.name + '.min.js.gz', buf).then(resolve);
});
});
});
};
var write = function(dest, code) {
return new Promise(function(resolve, reject) {
fs.writeFile(dest, code, function(err) {
if (err) return reject(err);
resolve();
});
});
};
var packageRollup = function(options) {
return rollup({
entry: 'src/sweetalert2.js'
})
.then(function(bundle) {
var code = bundle.generate({
format: options.format,
banner: banner,
moduleName: classify(pack.name)
}).code.replace(/sweetAlert\.version = '(.*)'/, "sweetAlert.version = '" + pack.version + "'");
if (options.minify) {
code = uglify.minify(code, {
fromString: true
}).code;
}
return write(options.dest, code);
});
};
module.exports = {
packageRollup: packageRollup,
write: write,
zip: zip,
classify: classify,
toUpper: toUpper
};