Switch to Gulp Task Runner

This commit is contained in:
Josh Johnson 2016-01-13 18:01:51 -05:00
parent a7e8c3a1af
commit a49c22958a
6 changed files with 76 additions and 60 deletions

3
.vscode/launch.json vendored
View file

@ -8,8 +8,7 @@
"runtimeExecutable": "${execPath}", "runtimeExecutable": "${execPath}",
"args": [ "args": [
"--extensionDevelopmentPath=${workspaceRoot}" "--extensionDevelopmentPath=${workspaceRoot}"
], ]
"preLaunchTask": "tsc"
} }
] ]
} }

32
.vscode/tasks.json vendored
View file

@ -1,15 +1,21 @@
// Available variables which can be used inside of strings.
// ${workspaceRoot}: the root folder of the team
// ${file}: the current opened file
// ${fileBasename}: the current opened file's basename
// ${fileDirname}: the current opened file's dirname
// ${fileExtname}: the current opened file's extension
// ${cwd}: the current working directory of the spawned process
{ {
"version": "0.1.0", "version": "0.1.0",
"command": "tsc", "command": "gulp",
"isShellCommand": true, "isShellCommand": true,
"showOutput": "silent", "args": [
"problemMatcher": "$tsc-watch" "--no-color"
],
"tasks": [
{
"taskName": "build",
"args": [],
"isBuildCommand": true,
"isWatching": false,
"problemMatcher": [
"$lessCompile",
"$tsc",
"$jshint"
]
}
]
} }

9
gulpfile.js Normal file
View file

@ -0,0 +1,9 @@
var gulp = require('gulp');
var shell = require('gulp-shell');
gulp.task('compile-typescript', function () {
gulp.src('package.json').pipe(shell('tsc'));
});
gulp.task('build', ['compile-typescript']);

View file

@ -113,7 +113,9 @@
], ],
"devDependencies": { "devDependencies": {
"vscode": "^0.10.7", "vscode": "^0.10.7",
"typescript": "^1.6.2" "typescript": "^1.6.2",
"gulp": "^3.9.0",
"gulp-shell": "^0.5.1"
}, },
"dependencies": { "dependencies": {
"xmldom": "DotJoshJohnson/xmldom#2794915", "xmldom": "DotJoshJohnson/xmldom#2794915",

View file

@ -1,23 +1,23 @@
'use strict'; 'use strict';
let child_process = require('child_process'); let child_process = require('child_process');
export class ChildProcess { export class ChildProcess {
static async spawnAsync(executable: string, args: string[]): Promise<void> { static async spawnAsync(executable: string, args: string[]): Promise<void> {
return new Promise<void>((resolve, reject) => { return new Promise<void>((resolve, reject) => {
let handle = child_process.spawn(executable, args); let handle = child_process.spawn(executable, args);
handle.on('close', (code: string) => { handle.on('close', (code: string) => {
if (code == '0') { if (code == '0') {
resolve(); resolve();
} }
else { else {
reject(code); reject(code);
} }
}); });
}); });
} }
} }

View file

@ -1,23 +1,23 @@
'use strict'; 'use strict';
import * as xpath from 'xpath'; import * as xpath from 'xpath';
let DOMParser = require('xmldom').DOMParser; let DOMParser = require('xmldom').DOMParser;
export class XPathEvaluator { export class XPathEvaluator {
static evaluate(query: string, xml: string): Node[] { static evaluate(query: string, xml: string): Node[] {
let nodes: Node[] = new Array<Node>(); let nodes: Node[] = new Array<Node>();
let xdoc: Document = new DOMParser().parseFromString(xml, 'text/xml'); let xdoc: Document = new DOMParser().parseFromString(xml, 'text/xml');
let resolver: xpath.XPathNSResolver = xpath.createNSResolver(xdoc); let resolver: xpath.XPathNSResolver = xpath.createNSResolver(xdoc);
let expression: xpath.XPathExpression = xpath.createExpression(query, resolver); let expression: xpath.XPathExpression = xpath.createExpression(query, resolver);
let result: xpath.XPathResult = expression.evaluate(xdoc, xpath.XPathResult.ORDERED_NODE_ITERATOR_TYPE); let result: xpath.XPathResult = expression.evaluate(xdoc, xpath.XPathResult.ORDERED_NODE_ITERATOR_TYPE);
let node: Node; let node: Node;
while (node = result.iterateNext()) { while (node = result.iterateNext()) {
nodes.push(node); nodes.push(node);
} }
return nodes; return nodes;
} }
} }