diff --git a/.gitignore b/.gitignore index 479e1cb..60bd827 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ examples/**/*.d.ts coverage es6 .DS_Store -.vscode/ \ No newline at end of file +.vscode/ +npm-debug.log \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js index 75134a5..549a691 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -7,17 +7,52 @@ const runSequence = require('run-sequence'); const istanbul = require('gulp-istanbul'); const firebaseServer = require('./tests/firebaseServer'); const uglify = require('gulp-uglify'); -const size = require('gulp-filesize'); +const size = require('gulp-size'); +const ts = require('gulp-typescript'); +const rollup = require('gulp-better-rollup') +const rename = require('gulp-rename'); +const tsProject = ts.createProject('tsconfig.json'); const execSync = require('child_process').execSync; const exit = () => process.exit(0); -gulp.task('clean', () => del(['examples/*.js', 'examples/*.js.map', '!examples/index.js', 'dist'])); +gulp.task('clean', () => del(['examples/*.js', 'examples/*.js.map', '!examples/index.js', 'dist', 'es6'])); gulp.task('ts', () => { - const tsCode = execSync('tsc'); - const rollupCode = execSync('node rollup.config'); - const uglifyCode = execSync('uglifyjs --compress --mangle -- ./dist/querybase.umd.js > ./dist/querybase.umd.min.js'); + const tsResult = tsProject.src() + .pipe(tsProject()); + + return tsResult.js + .pipe(gulp.dest('./es6')); + // const tsCode = execSync('tsc'); + // const rollupCode = execSync('node rollup.config'); + // const uglifyCode = execSync('uglifyjs --compress --mangle -- ./dist/querybase.umd.js > ./dist/querybase.umd.min.js'); +}); + +gulp.task('rollup', () => { + return gulp.src('./es6/entry.js') + .pipe(rollup({ + entry: './es6/entry.js' + }, 'umd')) + .pipe(rename('querybase.umd.js')) + .pipe(gulp.dest('./dist')); +}); + +gulp.task('uglify', () => { + return gulp + .src('./dist/querybase.umd.js') + .pipe(uglify({ mangle: true })) + .pipe(rename('querybase.umd.min.js')) + .pipe(gulp.dest('./dist')); +}); + +gulp.task('size', () => { + return gulp + .src('./dist/querybase.umd.min.js') + .pipe(size({ + showFiles: true, + gzip: true + })); }); gulp.task('pre-test', () => { @@ -41,4 +76,4 @@ gulp.task('firebaseServer', () => { firebaseServer.initializeApp(); }); -gulp.task('default', runSequence('clean', 'ts', 'test', exit)); \ No newline at end of file +gulp.task('default', runSequence('clean', 'ts', 'rollup', 'test', 'uglify', 'size', exit)); \ No newline at end of file diff --git a/package.json b/package.json index b300cd1..a0b4dd4 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,15 @@ "coveralls": "^2.11.9", "del": "^2.2.0", "gulp": "^3.9.0", - "gulp-connect": "^2.3.1", - "gulp-filesize": "0.0.6", + "gulp-better-rollup": "^1.0.2", "gulp-istanbul": "^0.10.3", "gulp-mocha": "^2.2.0", + "gulp-rename": "^1.2.2", + "gulp-rollup": "^2.5.1", + "gulp-size": "^2.1.0", "gulp-sourcemaps": "^1.6.0", - "gulp-uglify": "^1.5.3", + "gulp-typescript": "^3.1.3", + "gulp-uglify": "^2.0.0", "mocha": "^2.3.4", "rollup": "^0.36.4", "run-sequence": "^1.1.5", diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index 45dca09..0000000 --- a/rollup.config.js +++ /dev/null @@ -1,27 +0,0 @@ -const rollup = require('rollup'); -const fs = require('fs'); - -rollup.rollup({ - // The bundle's starting point. This file will be - // included, along with the minimum necessary code - // from its dependencies - entry: 'es6/entry.js', -}).then(function (bundle) { - // Generate bundle + sourcemap - const result = bundle.generate({ - // output format - 'amd', 'cjs', 'es', 'iife', 'umd' - format: 'umd', - moduleName: 'querybase' - }); - - //fs.writeFileSync('querybase.js', result.code); - - // Alternatively, let Rollup do it for you - // (this returns a promise). This is much - // easier if you're generating a sourcemap - bundle.write({ - format: 'umd', - dest: './dist/querybase.umd.js', - moduleName: 'querybase' - }); -}); \ No newline at end of file diff --git a/src/entry.ts b/src/entry.ts index 981f82b..03df817 100644 --- a/src/entry.ts +++ b/src/entry.ts @@ -1,10 +1,10 @@ -import { Querybase, DatabaseReference } from './Querybase'; +import { Querybase, DatabaseReference } from './querybase'; import { _ } from './QuerybaseUtils'; import { QuerybaseQuery } from './QuerybaseQuery'; /** * Convienence function to match Firebase SDK design. - * use: + * use: * const ref = firebase.database.ref('items'); * querybase.ref(ref, ['prop1', 'prop2']); */ @@ -29,4 +29,4 @@ export { Querybase, QuerybaseQuery, _ as QuerybaseUtils -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json index 2df41e1..e7eece0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -13,5 +13,11 @@ "firebase", "node" ] - } + }, + "files": [ + "./src/entry.ts", + "./src/querybase.ts", + "./src/QuerybaseQuery.ts", + "./src/QuerybaseUtils.ts" + ] } \ No newline at end of file