Merge pull request #5 from FullScreenShenanigans/gulp-shenanigans

Moved build process to gulp-shenanigans
This commit is contained in:
Josh Goldberg
2016-07-25 20:37:39 -07:00
committed by GitHub
13 changed files with 42 additions and 185 deletions
+5 -1
View File
@@ -1,4 +1,8 @@
dist/**
lib/**
src/**/*.js*
test/**/*.js
test/index.html
test/utils/**
!test/utils/mocks.ts
node_modules/
npm-debug.log
+3 -54
View File
@@ -1,55 +1,4 @@
const gulp = require("gulp");
const merge = require("merge2");
const mochaPhantomJS = require("gulp-mocha-phantomjs");
const runSequence = require("run-sequence");
const ts = require("gulp-typescript");
const tslint = require("gulp-tslint");
gulp.task("tslint", () => {
return gulp
.src(["src/**/*.ts", "!src/**/*.d.ts"])
.pipe(tslint())
.pipe(tslint.report("verbose"));
});
gulp.task("tsc", () => {
const tsProject = ts.createProject("tsconfig.json");
return tsProject
.src()
.pipe(ts(tsProject))
.js.pipe(gulp.dest("src"));
});
gulp.task("test", () => {
return gulp
.src("test/unit/index.html")
.pipe(mochaPhantomJS());
});
gulp.task("dist", function() {
const tsProject = ts.createProject(
"tsconfig.json",
{
outFile: "dist/StringFilr.js",
removeComments: true
});
const tsResult = tsProject
.src()
.pipe(ts(tsProject));
return merge([
tsResult.dts.pipe(gulp.dest("dist")),
tsResult.js.pipe(gulp.dest("dist"))
]);
});
gulp.task("watch", ["default"], () => {
gulp.watch("src/**/*.ts", ["default"]);
});
gulp.task("default", ["tsc", "tslint", "dist"], cb => {
runSequence(["test"], cb);
require("gulp-shenanigans").initialize({
gulp: require("gulp"),
packageName: "StringFilr"
});
+2 -12
View File
@@ -1,7 +1,7 @@
{
"name": "stringfilr",
"description": "A path-based cache for quick loops in nested data structures.",
"version": "0.4.0",
"version": "0.5.0",
"author": {
"name": "Josh Goldberg",
"email": "josh@fullscreenmario.com"
@@ -15,16 +15,6 @@
},
"license": "MIT",
"devDependencies": {
"chai": "^3.5.0",
"gulp": "^3.9.1",
"gulp-mocha-phantomjs": "^0.11.0",
"gulp-tslint": "^5.0.0",
"gulp-typescript": "^2.13.4",
"merge2": "^1.0.2",
"mocha": "^2.4.5",
"requirejs": "^2.2.0",
"run-sequence": "^1.2.0",
"tslint": "^3.10.2",
"typescript": "^1.8.10"
"gulp-shenanigans": "^0.3.1"
}
}
+7
View File
@@ -0,0 +1,7 @@
/// <reference path="../../node_modules/@types/chai/index.d.ts" />
/// <reference path="../../node_modules/@types/mocha/index.d.ts" />
/// <reference path="../../lib/StringFilr.d.ts" />
/// <reference path="../utils/MochaLoader.ts" />
/// <reference path="../utils/mocks.ts" />
mochaLoader.addTest("_", (): void => { });
+11
View File
@@ -0,0 +1,11 @@
{
"compilerOptions": {
"target": "es3",
"declaration": false
},
"files": [
"utils/mocks.ts",
"utils/MochaLoader.ts",
"StringFilr/_.ts"
]
}
-9
View File
@@ -1,9 +0,0 @@
define(["mocks"], function (mocks) {
return function () {
var expect = require("chai").expect;
it("tests haven't been implemented", function () {
// ...
});
};
});
-18
View File
@@ -1,18 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<title>EightBittr Unit Tests</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../../node_modules/mocha/mocha.css" />
</head>
<body>
<div id="mocha"></div>
<script src="../../node_modules/chai/chai.js" type="text/javascript"></script>
<script src="../../node_modules/mocha/mocha.js" type="text/javascript"></script>
<script data-main="require" src="../../node_modules/requirejs/require.js" type="text/javascript"></script>
<script src="phantom.js" type="text/javascript"></script>
</body>
</html>
-20
View File
@@ -1,20 +0,0 @@
define(["StringFilr"], function (StringFilrModule) {
var StringFilr = StringFilrModule.StringFilr;
var mocks = {
/**
*
*/
mockItemValue: function (settings) {
return new ItemValue(settings)
},
/**
*
*/
mockStringFilr: function (settings) {
return new StringFilr(settings)
}
};
return mocks;
});
-1
View File
@@ -1 +0,0 @@
require(["unit"]);
-5
View File
@@ -1,5 +0,0 @@
require(
["unit"],
function () {
mocha.run();
});
-63
View File
@@ -1,63 +0,0 @@
var sources = (function () {
var config = {
paths: {
// Source code
"StringFilr": "../../src/StringFilr",
// External libraries
"chai": "../../node_modules/chai/chai"
}
};
requirejs.config(config);
return Object.keys(config.paths).concat("mocks");
})();
var tests = {
"StringFilr": [
"_"
]
};
require(sources, function () {
var classTests = {};
var requiredTests = 0;
var loadedTests = 0;
var runTests = function () {
mocha.setup("bdd");
for (var className in classTests) {
describe(className, function () {
for (var functionName in classTests[className]) {
describe(functionName, classTests[className][functionName]);
}
});
}
mocha.run();
};
var generateOnTestLoad = function (className, functionName) {
requiredTests += 1;
return function (functionTests) {
classTests[className][functionName] = functionTests;
loadedTests += 1;
if (loadedTests === requiredTests) {
runTests();
}
}
}
for (var className in tests) {
classTests[className] = {};
tests[className].forEach(function (functionName) {
require(
[className + "Tests/" + functionName],
generateOnTestLoad(className, functionName));
});
}
});
+11
View File
@@ -0,0 +1,11 @@
/// <reference path="../../lib/StringFilr.d.ts" />
const mocks = {
/**
* @param settings Settings for the StringFilr.
* @returns An StringFilr instance.
*/
mockStringFilr: (settings?: StringFilr.IStringFilrSettings): StringFilr.IStringFilr => {
return new StringFilr.StringFilr(settings);
}
};
+3 -2
View File
@@ -6,7 +6,8 @@
"declaration": true,
"outDir": "dist"
},
"exclude": [
"node_modules"
"files": [
"src/IStringFilr.ts",
"src/StringFilr.ts"
]
}