angular-ide
Version:
Provides a seamless integration with the Angular IDE from the command-line for developers looking for an enhanced development experience with Angular.
96 lines (75 loc) • 2.17 kB
JavaScript
const NGEventType = require('../utils/consts').NGEventType;
const BuildStatus = require('../utils/consts').BuildStatus;
const NGServerStatus = require('../utils/consts').NGServerStatus;
// TODO: Replace the hardocoded params with real ones
function extractBuildError(text) {
let buildEvent = null;
if (text.indexOf('ERROR in') >= 0) {
buildEvent = {
type: NGEventType.BUILD_ERROR,
params: {
file: '/work/genuitec/testy_angular3/src/app/index.ts:5:19',
line: '5',
column: '19',
},
};
}
return buildEvent;
}
function extractNGServerRunning(text) {
let buildEvent = null;
const serverIsRunning = /NG Live Development Server is running|NG Live Development Server is listening|Angular Live Development Server|Project is running at/;
if (text.match(serverIsRunning)) {
buildEvent = {
type: NGEventType.NG_SERVER_STATUS,
params: {
status: NGServerStatus.RUNNING,
},
};
}
return buildEvent;
}
function extractBuildStarted(text) {
let buildEvent = null;
const webpackCompiling = /webpack: bundle is now INVALID|Compiling...|building modules|building/;
if (text.match(webpackCompiling)) {
buildEvent = {
type: NGEventType.BUILD_STATUS,
params: {
status: BuildStatus.BUILD_STARTED,
},
};
}
return buildEvent;
}
function extractBuildFinished(text) {
let buildEvent = null;
const webpackBuildFinished = /webpack: bundle is now VALID|Compiled successfully.|Failed to compile|Compiled with warnings/;
if (text.match(webpackBuildFinished)) {
buildEvent = {
type: NGEventType.BUILD_STATUS,
params: {
status: BuildStatus.BUILD_FINISHED,
},
};
}
return buildEvent;
}
const buildEventExtractors = [
extractNGServerRunning,
extractBuildStarted,
extractBuildFinished,
extractBuildError,
];
function extractNGEvent(text) {
let buildEvent = null;
for (let i = 0; i < buildEventExtractors.length; i++) {
buildEvent = buildEventExtractors[i].call(this, text);
if (buildEvent) {
break;
}
}
return buildEvent;
}
module.exports = extractNGEvent;
;