diff --git a/.gitignore b/.gitignore
index 76f1baa..0c03478 100644
--- a/.gitignore
+++ b/.gitignore
@@ -39,6 +39,8 @@ Icon
node_modules
bin
dist
-npm-debug.log
app
-coverage
\ No newline at end of file
+app-min
+temp
+npm-debug.log
+coverage
diff --git a/definitions/definitions.d.ts b/definitions/definitions.d.ts
deleted file mode 100644
index 6c02163..0000000
--- a/definitions/definitions.d.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-///
-///
-///
\ No newline at end of file
diff --git a/gulpfile.js b/gulpfile.js
index 3bf38b7..47d0e23 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -1,65 +1,48 @@
'use strict';
+var coveralls = require('gulp-coveralls');
+var del = require('del');
+var exec = require('child_process').exec;
+var flatten = require('gulp-flatten');
var gulp = require('gulp');
var mocha = require('gulp-mocha');
var coveralls = require('gulp-coveralls');
var tsc = require('gulp-typescript');
+var oneJsBuild = require('gulp-onejs-build');
var karma = require('karma').server;
-var del = require('del');
-var paths = {
- app: 'app/',
- dist: 'dist/',
- amd: 'dist/amd',
- commonjs: 'dist/commonjs',
- appSourceDest: 'app/src',
- appTestDest: 'app/test',
- libSource: ['src/*.ts'],
- libTest: ['test/*.ts']
-};
-
-var shouldExit = true;
-
-gulp.task('clean', function(cb) {
- del([paths.dist, paths.app], cb);
+oneJsBuild.gulpTasks.all({
+ gulp: gulp,
+ rootDir: __dirname,
+ karma: karma
});
-gulp.task('build-source', ['clean'], function() {
- var tsResult = gulp.src(paths.libSource)
- .pipe(tsc({
- module: 'amd',
- target: 'ES5',
- declarationFiles: true
- }));
+var shouldExit = true;
- tsResult.dts.pipe(gulp.dest(paths.amd));
- tsResult.js.pipe(gulp.dest(paths.amd))
- return tsResult.js.pipe(gulp.dest(paths.appSourceDest));
+gulp.task('tdd', [], function (done) {
+ karma.start({
+ configFile: __dirname + '/karma.conf.js'
+ }, done);
});
-gulp.task('build-test', ['clean', 'build-source'], function() {
- return gulp.src(paths.libTest)
- .pipe(tsc({
- module: 'amd',
- target: 'ES5',
- declarationFiles: false
- }))
- .pipe(gulp.dest(paths.appTestDest));
+gulp.task('ciTest', ['test-preprocess'], function (done) {
+ karma.start({
+ configFile: __dirname + '/karma-ci.conf.js'
+ }, done);
});
-gulp.task('build', ['build-source', 'build-test']);
-
-gulp.task('test', ['build'], function (done) {
- karma.start({
- configFile: __dirname + '/karma.conf.js',
- singleRun: true
- }, done);
+gulp.task('covertest', ['ciTest'], function() {
+ return gulp.src('bin/coverage/**/lcov.info')
});
-gulp.task('covertest', ['build','test'], function() {
+gulp.task('covertest', ['build', 'test'], function() {
return gulp.src('coverage/**/lcov.info')
.pipe(coveralls());
+});
+gulp.task('watch', ['default'], function() {
+ shouldExit = false;
+ return gulp.watch(oneJsBuild.gulpTasks.paths.src.glob, ['default']);
});
gulp.task('default', ['build', 'test']);
diff --git a/package.json b/package.json
index 9c56f09..bf3acb8 100644
--- a/package.json
+++ b/package.json
@@ -20,8 +20,10 @@
"del": "^0.1.3",
"gulp": "^3.8.5",
"gulp-coveralls": "^0.1.3",
+ "gulp-flatten": "0.0.4",
"gulp-jasmine": "^0.2.0",
"gulp-mocha": "^1.1.0",
+ "gulp-onejs-build": "^1.2.0",
"gulp-requirejs": "^0.1.3",
"gulp-rjs": "^0.1.0",
"gulp-typescript": "2.0.0",
diff --git a/test/Block.test.ts b/test/Block.test.ts
index 0e26ad2..ccc02ff 100644
--- a/test/Block.test.ts
+++ b/test/Block.test.ts
@@ -1,15 +1,16 @@
-///
+///
import chai = require("chai");
+import Block = require('../Block');
+import IBinding = require('../IBinding');
+import Binding = require('../Binding');
+import BlockProcessor = require('../BlockProcessor');
+import BlockType = require('../BlockType');
+import BaseView = require('../BaseView');
+import View = require('../View');
+import EventGroup = require('../EventGroup');
+
var assert = chai.assert;
-import Block = require('../src/Block');
-import IBinding = require('../src/IBinding');
-import Binding = require('../src/Binding');
-import BlockProcessor = require('../src/BlockProcessor');
-import BlockType = require('../src/BlockType');
-import BaseView = require('../src/BaseView');
-import View = require('../src/View');
-import EventGroup = require('../src/EventGroup');
describe('Block', function () {
diff --git a/test/DomUtils.test.ts b/test/DomUtils.test.ts
index 048bf31..70bc159 100644
--- a/test/DomUtils.test.ts
+++ b/test/DomUtils.test.ts
@@ -1,8 +1,8 @@
-///
+///
import chai = require("chai");
-import List = require("../src/List");
-import DomUtils = require("../src/DomUtils");
+import List = require("../List");
+import DomUtils = require("../DomUtils");
var expect = chai.expect;
var assert = chai.assert;
diff --git a/test/EventGroup.test.ts b/test/EventGroup.test.ts
index 4727ba1..03b9ece 100644
--- a/test/EventGroup.test.ts
+++ b/test/EventGroup.test.ts
@@ -1,8 +1,8 @@
-///
+///
import chai = require("chai");
-import List = require("../src/List");
-import EventGroup = require("../src/EventGroup");
+import List = require("../List");
+import EventGroup = require("../EventGroup");
var expect = chai.expect;
var assert = chai.assert;
diff --git a/test/IfBlock.test.ts b/test/IfBlock.test.ts
index 33c41e1..8fc55fe 100644
--- a/test/IfBlock.test.ts
+++ b/test/IfBlock.test.ts
@@ -1,11 +1,12 @@
-///
+///
import chai = require("chai");
+import Block = require('../Block');
+import BlockProcessor = require('../BlockProcessor');
+import BlockType = require('../BlockType');
+import View = require('../View');
+
var assert = chai.assert;
-import Block = require('../src/Block');
-import BlockProcessor = require('../src/BlockProcessor');
-import BlockType = require('../src/BlockType');
-import View = require('../src/View');
describe('Block', function () {
diff --git a/test/List.test.ts b/test/List.test.ts
index 92aa181..9982ceb 100644
--- a/test/List.test.ts
+++ b/test/List.test.ts
@@ -1,9 +1,9 @@
-///
+///
import chai = require('chai');
-import List = require('../src/List');
-import EventGroup = require('../src/EventGroup');
-import ViewModel = require('../src/ViewModel');
+import List = require('../List');
+import EventGroup = require('../EventGroup');
+import ViewModel = require('../ViewModel');
var assert = chai.assert;
diff --git a/test/Observable.test.ts b/test/Observable.test.ts
index 66560dc..8f0e476 100644
--- a/test/Observable.test.ts
+++ b/test/Observable.test.ts
@@ -1,8 +1,8 @@
-///
+///
import chai = require("chai");
-import Observable = require("../src/Observable");
-import EventGroup = require("../src/EventGroup");
+import Observable = require("../Observable");
+import EventGroup = require("../EventGroup");
var assert = chai.assert;
diff --git a/test/Promise.test.ts b/test/Promise.test.ts
index 1d8f75d..bf99b81 100644
--- a/test/Promise.test.ts
+++ b/test/Promise.test.ts
@@ -1,7 +1,7 @@
-///
+///
import chai = require("chai");
-import Promise = require("../src/Promise");
+import Promise = require("../Promise");
var expect = chai.expect;
var assert = chai.assert;
diff --git a/test/RepeaterBlock.test.ts b/test/RepeaterBlock.test.ts
index c55b5eb..0e956a7 100644
--- a/test/RepeaterBlock.test.ts
+++ b/test/RepeaterBlock.test.ts
@@ -1,12 +1,13 @@
-///
+///
import chai = require("chai");
+import Block = require('../Block');
+import BlockProcessor = require('../BlockProcessor');
+import BlockType = require('../BlockType');
+import View = require('../View');
+import List = require('../List');
+
var assert = chai.assert;
-import Block = require('../src/Block');
-import BlockProcessor = require('../src/BlockProcessor');
-import BlockType = require('../src/BlockType');
-import View = require('../src/View');
-import List = require('../src/List');
describe('Block', function () {
diff --git a/test/Scheduler.test.ts b/test/Scheduler.test.ts
index 048556d..9a6eb32 100644
--- a/test/Scheduler.test.ts
+++ b/test/Scheduler.test.ts
@@ -1,7 +1,7 @@
-///
+///
import chai = require("chai");
-import Scheduler = require('../src/Scheduler');
+import Scheduler = require('../Scheduler');
var assert = chai.assert;
diff --git a/test/View.test.ts b/test/View.test.ts
index fd4f328..ef6c8e4 100644
--- a/test/View.test.ts
+++ b/test/View.test.ts
@@ -1,9 +1,9 @@
-///
+///
import chai = require("chai");
-import View = require("../src/View");
-import Block = require("../src/Block");
-import BlockType = require('../src/BlockType');
+import View = require("../View");
+import Block = require("../Block");
+import BlockType = require('../BlockType');
var assert = chai.assert;
diff --git a/test/ViewModel.test.ts b/test/ViewModel.test.ts
index 253b84f..d1c84a5 100644
--- a/test/ViewModel.test.ts
+++ b/test/ViewModel.test.ts
@@ -1,8 +1,8 @@
-///
+///
import chai = require("chai");
-import ViewModel = require("../src/ViewModel");
-import View = require("../src/View");
+import ViewModel = require("../ViewModel");
+import View = require("../View");
var assert = chai.assert;
diff --git a/tsd.json b/tsd.json
new file mode 100644
index 0000000..95469f2
--- /dev/null
+++ b/tsd.json
@@ -0,0 +1,15 @@
+{
+ "version": "v4",
+ "repo": "borisyankov/DefinitelyTyped",
+ "ref": "master",
+ "path": "typings",
+ "bundle": "typings/tsd.d.ts",
+ "installed": {
+ "chai/chai.d.ts": {
+ "commit": "2544abac24320d3f0edb67d256dcee8faf0e6f14"
+ },
+ "mocha/mocha.d.ts": {
+ "commit": "2544abac24320d3f0edb67d256dcee8faf0e6f14"
+ }
+ }
+}
diff --git a/definitions/chai.d.ts b/typings/chai/chai.d.ts
similarity index 99%
rename from definitions/chai.d.ts
rename to typings/chai/chai.d.ts
index fc767c6..a2ef137 100644
--- a/definitions/chai.d.ts
+++ b/typings/chai/chai.d.ts
@@ -94,6 +94,7 @@ declare module chai {
that: Expect;
and: Expect;
have: Expect;
+ has: Expect;
with: Expect;
at: Expect;
of: Expect;
diff --git a/definitions/mocha.d.ts b/typings/mocha/mocha.d.ts
similarity index 100%
rename from definitions/mocha.d.ts
rename to typings/mocha/mocha.d.ts
diff --git a/definitions/rewire.d.ts b/typings/rewire.d.ts
similarity index 100%
rename from definitions/rewire.d.ts
rename to typings/rewire.d.ts
diff --git a/typings/tsd.d.ts b/typings/tsd.d.ts
new file mode 100644
index 0000000..c7ba7d9
--- /dev/null
+++ b/typings/tsd.d.ts
@@ -0,0 +1,3 @@
+///
+///
+///
\ No newline at end of file