alasql
Version:
AlaSQL.js - JavaScript SQL database library for relational and graph data manipulation with support of localStorage, IndexedDB, and Excel
203 lines (186 loc) • 5.55 kB
JavaScript
//
// gulpfile.js
// Gulp for Alasql
// Дата: 06.08.2014
// (c) 2014-2015, Andrey Gershun
//
var gulp = require('gulp');
module.exports = gulp;
//var connect = require('gulp-connect');
//var livereload = require('gulp-livereload');
//var changed = require('gulp-changed');
//var jison = require('gulp-jison');
var concat = require('gulp-concat-sourcemap');
//var uglify = require('gulp-uglify');
//var jisonLex = require('gulp-jison-lex');
var shell = require('gulp-shell');
gulp.task('js-merge-worker', function () {
return gulp.src([
'./src/05copyright.js',
'./src/99worker-start.js',
'./src/99worker.js',
'./src/99worker-finish.js',
])
// .pipe(changed('./dist/'))
.pipe(concat('alasql-worker.js'))
// .pipe(uglify())
.pipe(gulp.dest('./dist'))
});
gulp.task('js-merge', function () {
return gulp.src([
'./src/05copyright.js',
'./src/10start.js',
'./src/alasqlparser.js',
'./src/12pretty.js',
'./src/15utility.js',
'./src/16comments.js',
'./src/17alasql.js',
'./src/20database.js',
'./src/21transaction.js',
// './src/22store.js',
'./src/23table.js',
'./src/24view.js',
'./src/25queryclass.js',
'./src/28yy.js',
'./src/30statements.js',
'./src/35search.js',
'./src/38query.js',
'./src/39dojoin.js',
'./src/40select.js',
'./src/41exists.js',
'./src/420from.js',
'./src/421join.js',
'./src/422where.js',
'./src/423groupby.js',
'./src/424select.js',
'./src/425having.js',
'./src/426orderby.js',
'./src/43rollup.js',
'./src/44defcols.js',
'./src/45union.js',
'./src/46apply.js',
'./src/47over.js',
'./src/50expression.js',
'./src/52linq.js',
'./src/55functions.js',
// './src/56sprintf.js',
'./src/57case.js',
'./src/58json.js',
'./src/59convert.js',
'./src/60createtable.js',
'./src/61date.js',
'./src/62droptable.js',
'./src/63createvertex.js',
'./src/64altertable.js',
'./src/65createindex.js',
'./src/66dropindex.js',
'./src/67withselect.js',
'./src/68if.js',
'./src/69while.js',
'./src/70insert.js',
'./src/72delete.js',
'./src/74update.js',
'./src/74update.js',
'./src/75merge.js',
'./src/76usedatabase.js',
'./src/77declare.js',
'./src/78show.js',
'./src/79set.js',
'./src/80console.js',
'./src/81commit.js',
'./src/821tsql.js',
'./src/822mysql.js',
'./src/823postgres.js',
'./src/824oracle.js',
'./src/825sqlite.js',
'./src/830into.js',
'./src/831xls.js',
'./src/832xlsxml.js',
'./src/84from.js',
'./src/843xml.js',
'./src/844gexf.js',
'./src/85help.js',
'./src/86print.js',
'./src/87source.js',
'./src/88require.js',
'./src/89assert.js',
'./src/90websql.js',
'./src/91indexeddb.js',
'./src/92localstorage.js',
'./src/93sqlite.js',
'./src/94filestorage.js',
'./src/97saveas.js',
'./src/FileSaver.js',
'./src/98finish.js',
'./src/99worker.js'
])
// .pipe(changed('./dist/'))
.pipe(concat('alasql.js'))
// .pipe(uglify())
.pipe(gulp.dest('./dist'))
});
gulp.task('jison-compile', function () {
return gulp.src('./src/*.jison', {read: false})
.pipe(shell([
'jison ./src/alasqlparser.jison -o ./src/alasqlparser.js',
]));
});
gulp.task('uglify', function () {
return gulp.src('./alasql.js', {read: false})
.pipe(shell([
'uglifyjs dist/alasql.js -o dist/alasql.min.js',
'uglifyjs dist/alasql-worker.js -o dist/alasql-worker.min.js',
]));
});
gulp.task('copy-dist', function(){
gulp.src(['./dist/alasql.js','./alasql.js.map'])
.pipe(gulp.dest('./'));
});
gulp.task('copy-dist-org', function(){
gulp.src(['./dist/alasql.min.js','./dist/alasql-worker.min.js'])
.pipe(gulp.dest('./console/'));
});
// Additional task to update alasql.org/console directory
gulp.task('copy-console-org', function(){
gulp.src(['./console/*'])
.pipe(gulp.dest('../alasql-org/console/'));
});
// , {
// templateData: {
// f: function (s) {
// return s.replace(/$/, '.bak')
// }
// }
// }))
// gulp.task('jison-compile', function () {
// return gulp.src('./src/*.jison')
// .pipe(changed('./dist/'))
// .pipe(jison({ moduleType: 'commonjs' }))
// .pipe(gulp.dest('./src/'))
// // .pipe(livereload());
// });
// gulp.task('jison-lex-compile', function () {
// return gulp.src('./src/*.jisonlex')
// // .pipe(changed('./dist/'))
// .pipe(jisonLex())
// .pipe(gulp.dest('./src2/'))
// // .pipe(livereload());
// });
// Главная задача
gulp.task('default', ['js-merge' /*, 'jison-compile', 'jison-lex-compile' */], function(){
gulp.watch('./src/*.js',function(){ gulp.run('js-merge'); });
gulp.watch('./src/99worker*.js',function(){ gulp.run('js-merge-worker'); });
gulp.watch('./src/*.jison',function(){ gulp.run('jison-compile'); });
gulp.watch('./dist/alasql.js',function(){ gulp.run('uglify'); });
gulp.watch('./dist/alasql.min.js',function(){
gulp.run('copy-dist');
gulp.run('copy-dist-org');
});
gulp.watch('./dist/alasql-worker.js',function(){
gulp.run('copy-dist');
gulp.run('copy-dist-org');
});
gulp.watch('./console/*',function(){ gulp.run('copy-console-org'); });
// gulp.watch('./src/*.jison',function(){ gulp.run('jison-compile'); gulp.run('js-merge');});
// gulp.watch('./src/*.jisonlex',function(){ gulp.run('jison-lex-compile'); gulp.run('js-merge');});
});