UNPKG

anti

Version:

Anti is an XSS protection module.

52 lines (48 loc) 1.68 kB
var gulp = require('gulp'); var uglify = require('gulp-uglify'); var concat = require('gulp-concat-util'); var fs = require('fs'); gulp.task('default', function() { // Parse Experimental features into a new file var NXBUFFER = ""; var BUFFER = fs.readFileSync('./anti.js', { encoding: 'utf8' }); var INBLOCK = false; for(var i=0; i<BUFFER.length; i++) { if(!INBLOCK) { if ((BUFFER[i] === '/') && (GET(BUFFER, i, 18) === "/*<EXPERIMENTAL>*/")) { INBLOCK = true; }else{ NXBUFFER += (BUFFER[i]); } }else{ if ((BUFFER[i] === '/') && (GET(BUFFER, i, 19) === "/*</EXPERIMENTAL>*/")) { NXBUFFER += '/'; // Make sure we retain /*</EXPERIMENTAL>*/ for easier removal later on INBLOCK = false; } } } // Remove all multi-line comments NXBUFFER = NXBUFFER.replace(/\*<\/EXPERIMENTAL>*\//g, ''); BUFFER = BUFFER.replace(/\*<\/EXPERIMENTAL>*\//g, ''); fs.writeFileSync('./build/anti.js', NXBUFFER); fs.writeFileSync('./build/anti.experimental.js', BUFFER); // Minify, rename and copy minified source + LICENSE gulp.src('./build/anti.js') .pipe(uglify()) .pipe(concat('anti.min.js')) .pipe(concat.header('/*\n' + fs.readFileSync('./LICENSE') + '*/\n')) .pipe(gulp.dest('build')); // Minify, rename and copy minified source + LICENSE gulp.src('./build/anti.experimental.js') .pipe(uglify()) .pipe(concat('anti.experimental.min.js')) .pipe(concat.header('/*\n' + fs.readFileSync('./LICENSE') + '*/\n')) .pipe(gulp.dest('build')); }); function GET(buffer, pos, length) { var value = ""; for(i=0; i<length; i++) { value += buffer[pos+i]; } return value; }