Skip to content

Commit

Permalink
Adding a bunch of gulp utilities
Browse files Browse the repository at this point in the history
This should allow a developer to write a gulpfile in TypeScript to
compile a TypeScript project.
  • Loading branch information
pspeter3 committed Jan 29, 2015
1 parent 338059f commit 429c0c5
Show file tree
Hide file tree
Showing 26 changed files with 709 additions and 0 deletions.
20 changes: 20 additions & 0 deletions gulp-autoprefixer/gulp-autoprefixer-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
/// <reference path="./gulp-autoprefixer.d.ts"/>
/// <reference path="../gulp/gulp.d.ts"/>
import gulp = require("gulp");
import autoprefixer = require("gulp-autoprefixer");

gulp.src("test.css")
.pipe(autoprefixer())
.pipe(gulp.dest("build"));

gulp.src("test.css")
.pipe(autoprefixer({ browsers: ["Chrome"]}))
.pipe(gulp.dest("build"));

gulp.src("test.css")
.pipe(autoprefixer({cascade: false}))
.pipe(gulp.dest("build"));

gulp.src("test.css")
.pipe(autoprefixer({remove: false}))
.pipe(gulp.dest("build"));
18 changes: 18 additions & 0 deletions gulp-autoprefixer/gulp-autoprefixer.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
// Type definitions for gulp-autoprefixer
// Project: https://github.com/sindresorhus/gulp-autoprefixer
// Definitions by: Asana <https://asana.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../node/node.d.ts"/>

declare module "gulp-autoprefixer" {
interface Options {
browsers?: string[];
cascade?: boolean;
remove?: boolean;
}

function autoPrefixer(opts?: Options): NodeJS.ReadWriteStream;

export = autoPrefixer;
}
25 changes: 25 additions & 0 deletions gulp-gh-pages/gulp-gh-pages-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/// <reference path="./gulp-gh-pages.d.ts"/>
/// <reference path="../gulp/gulp.d.ts"/>
import gulp = require("gulp");
import ghPages = require("gulp-gh-pages");

gulp.src("test.css")
.pipe(ghPages());

gulp.src("test.css")
.pipe(ghPages({remoteUrl: "https://github.com/Asana/DefinitelyTyped.git"}));

gulp.src("test.css")
.pipe(ghPages({origin: "origin"}));

gulp.src("test.css")
.pipe(ghPages({branch: "master"}));

gulp.src("test.css")
.pipe(ghPages({cacheDir: "/tmp"}));

gulp.src("test.css")
.pipe(ghPages({push: false}));

gulp.src("test.css")
.pipe(ghPages({message: "master"}));
21 changes: 21 additions & 0 deletions gulp-gh-pages/gulp-gh-pages.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Type definitions for gulp-gh-pages
// Project: https://github.com/rowoot/gulp-gh-pages
// Definitions by: Asana <https://asana.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../node/node.d.ts"/>

declare module "gulp-gh-pages" {
interface Options {
remoteUrl?: string;
origin?: string;
branch?: string;
cacheDir?: string;
push?: boolean;
message?: string;
}

function ghPages(opts?: Options): NodeJS.ReadWriteStream;

export = ghPages;
}
10 changes: 10 additions & 0 deletions gulp-if/gulp-if-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
/// <reference path="./gulp-if.d.ts"/>
/// <reference path="../gulp/gulp.d.ts"/>
import gulp = require("gulp");
import _if = require("gulp-if");

gulp.src("test.css")
.pipe(_if(true, gulp.src("test.css")));

gulp.src("test.css")
.pipe(_if(false, gulp.src("test.css"), gulp.src("test.css")));
11 changes: 11 additions & 0 deletions gulp-if/gulp-if.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// Type definitions for gulp-if
// Project: https://github.com/robrich/gulp-if
// Definitions by: Asana <https://asana.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../node/node.d.ts"/>

declare module "gulp-if" {
function gulpIf(condition: boolean, stream: NodeJS.ReadWriteStream, elseStream?: NodeJS.ReadWriteStream): NodeJS.ReadWriteStream;
export = gulpIf;
}
32 changes: 32 additions & 0 deletions gulp-istanbul/gulp-istanbul-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
/// <reference path="./gulp-istanbul.d.ts"/>
/// <reference path="../gulp/gulp.d.ts"/>
import gulp = require("gulp");
import istanbul = require("gulp-istanbul");

function testFramework(): NodeJS.ReadWriteStream {
return null;
}

gulp.task('test', function (cb) {
gulp.src(['lib/**/*.js', 'main.js'])
.pipe(istanbul()) // Covering files
.pipe(gulp.dest('test-tmp/'))
.on('finish', function () {
gulp.src(['test/*.html'])
.pipe(testFramework())
.pipe(istanbul.writeReports()) // Creating the reports after tests runned
.on('end', cb);
});
});

gulp.task('test', function (cb) {
gulp.src(['lib/**/*.js', 'main.js'])
.pipe(istanbul({includeUntested: true})) // Covering files
.pipe(istanbul.hookRequire())
.on('finish', function () {
gulp.src(['test/*.html'])
.pipe(testFramework())
.pipe(istanbul.writeReports({reporters: ['text']})) // Creating the reports after tests runned
.on('end', cb);
});
});
51 changes: 51 additions & 0 deletions gulp-istanbul/gulp-istanbul.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Type definitions for gulp-istanbul
// Project: https://github.com/SBoudrias/gulp-istanbul
// Definitions by: Asana <https://asana.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../node/node.d.ts"/>

declare module "gulp-istanbul" {
function GulpIstanbul(opts?: GulpIstanbul.Options): NodeJS.ReadWriteStream;

module GulpIstanbul {
export function hookRequire(): NodeJS.ReadWriteStream;
export function summarizeCoverage(opts?: {coverageVariable: string}): Coverage;
export function writeReports(opts?: ReportOptions): NodeJS.ReadWriteStream;

interface Options {
coverageVariable?: string;
includeUntested?: boolean;
embedSource?: boolean;
preserveComments?: boolean;
noCompact?: boolean;
noAutoWrap?: boolean;
codeGenerationOptions?: Object;
debug?: boolean;
walkDebug?: boolean;
}

interface Coverage {
lines: CoverageStats;
statements: CoverageStats;
functions: CoverageStats;
branches: CoverageStats;
}

interface CoverageStats {
total: number;
covered: number;
skipped: number;
pct: number;
}

interface ReportOptions {
dir?: string;
reporters?: string[];
reportOpts?: {dir?: string};
coverageVariable?: string;
}
}

export = GulpIstanbul;
}
9 changes: 9 additions & 0 deletions gulp-mocha/gulp-mocha-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/// <reference path="./gulp-mocha.d.ts"/>
/// <reference path="../gulp/gulp.d.ts"/>
import gulp = require("gulp");
import mocha = require("gulp-mocha");

gulp.task('default', function () {
return gulp.src('test.js', {read: false})
.pipe(mocha({reporter: 'nyan'}));
});
12 changes: 12 additions & 0 deletions gulp-mocha/gulp-mocha.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
// Type definitions for gulp-mocha
// Project: https://github.com/sindresorhus/gulp-mocha
// Definitions by: Asana <https://asana.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../mocha/mocha.d.ts"/>
/// <reference path="../node/node.d.ts"/>

declare module "gulp-mocha" {
function mocha(setupOptions: MochaSetupOptions): NodeJS.ReadWriteStream;
export = mocha;
}
29 changes: 29 additions & 0 deletions gulp-rename/gulp-rename-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/// <reference path="./gulp-rename.d.ts"/>
/// <reference path="../gulp/gulp.d.ts"/>
import gulp = require("gulp");
import rename = require("gulp-rename");

// rename via string
gulp.src("./src/main/text/hello.txt")
.pipe(rename("main/text/ciao/goodbye.md"))
.pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/goodbye.md

// rename via function
gulp.src("./src/**/hello.txt")
.pipe(rename((path) => {
path.dirname += "/ciao";
path.basename += "-goodbye";
path.extname = ".md"
}))
.pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/hello-goodbye.md

// rename via hash
gulp.src("./src/main/text/hello.txt", { base: process.cwd() })
.pipe(rename({
dirname: "main/text/ciao",
basename: "aloha",
prefix: "bonjour-",
suffix: "-hola",
extname: ".md"
}))
.pipe(gulp.dest("./dist")); // ./dist/main/text/ciao/bonjour-aloha-hola.md
20 changes: 20 additions & 0 deletions gulp-rename/gulp-rename.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// Type definitions for gulp-rename
// Project: https://github.com/hparra/gulp-rename
// Definitions by: Asana <https://asana.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../node/node.d.ts"/>

declare module "gulp-rename" {
interface Options {
dirname?: string;
basename?: string;
prefix?: string;
suffix?: string;
extname?: string;
}
function rename(name: string): NodeJS.ReadWriteStream;
function rename(callback: (path: Options) => any): NodeJS.ReadWriteStream;
function rename(opts: Options): NodeJS.ReadWriteStream;
export = rename;
}
11 changes: 11 additions & 0 deletions gulp-replace/gulp-replace-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
/// <reference path="./gulp-replace.d.ts"/>
/// <reference path="../gulp/gulp.d.ts"/>
import gulp = require("gulp");
import replace = require("gulp-replace");

gulp.task('templates', function(){
gulp.src(['file.txt'])
.pipe(replace("test", "foo"))
.pipe(replace(/foo(.{3})/g, '$1foo'))
.pipe(gulp.dest('build/file.txt'));
});
17 changes: 17 additions & 0 deletions gulp-replace/gulp-replace.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Type definitions for gulp-replace
// Project: https://github.com/lazd/gulp-replace
// Definitions by: Asana <https://asana.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../node/node.d.ts"/>

declare module "gulp-replace" {
interface Options {
skipBinary: boolean;
}

function replace(pattern: string, replacement: string, opts?: Options): NodeJS.ReadWriteStream;
function replace(pattern: RegExp, replacement: string, opts?: Options): NodeJS.ReadWriteStream;

export = replace;
}
16 changes: 16 additions & 0 deletions gulp-sass/gulp-sass-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/// <reference path="./gulp-sass.d.ts"/>
/// <reference path="../gulp/gulp.d.ts"/>
import gulp = require("gulp");
import sass = require("gulp-sass");

gulp.task('sass', function () {
gulp.src('./scss/*.scss')
.pipe(sass())
.pipe(gulp.dest('./css'));
});

gulp.task('sass', function () {
gulp.src('./scss/*.scss')
.pipe(sass({errLogToConsole: true}))
.pipe(gulp.dest('./css'));
});
49 changes: 49 additions & 0 deletions gulp-sass/gulp-sass.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// Type definitions for gulp-sass
// Project: https://github.com/dlmanning/gulp-sass
// Definitions by: Asana <https://asana.com>
// Definitions: https://github.com/borisyankov/DefinitelyTyped

/// <reference path="../node/node.d.ts"/>

declare module "gulp-sass" {
interface SassResults {
css: string;
map: string;
stats: {
entry: string;
start: Date;
end: Date;
duration: number;
includedFiles: string[];
}
}

interface SassOptions {
file?: string;
data?: string;
success?: (results: SassResults) => any;
error?: (err: Error) => any;
includePaths?: string[];
imagePaths?: string[];
indentedSyntax?: boolean;
omitSourceMapUrl?: boolean;
outFile?: string;
outputStyle?: string;
precision?: number;
sourceComments?: boolean;
sourceMap?: boolean | string;
sourceMapEmbed?: boolean;
sourceMapContents?: boolean;
}

interface Options extends SassOptions {
errLogToConsole?: boolean;
onSuccess?: (css: string) => any;
onError?: (err: Error) => any;
sync?: boolean;
}

function sass(opts?: Options): NodeJS.ReadWriteStream;

export = sass;
}
Loading

0 comments on commit 429c0c5

Please sign in to comment.