Skip to content
This repository was archived by the owner on Apr 8, 2020. It is now read-only.

Commit de3fd30

Browse files
Remove angular-cli-middleware's dependency on Promise
1 parent e3d1f07 commit de3fd30

File tree

1 file changed

+27
-26
lines changed

1 file changed

+27
-26
lines changed

src/Microsoft.AspNetCore.SpaServices.Extensions/Content/Node/angular-cli-middleware.js

Lines changed: 27 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,18 @@ module.exports = {
1414
'--watch'
1515
]);
1616
proc.stdout.pipe(process.stdout);
17-
waitForLine(proc.stdout, /chunk/).then(function () {
18-
callback();
19-
});
17+
waitForLine(proc.stdout, /chunk/, function () { callback() });
2018
},
2119

2220
startAngularCliServer: function startAngularCliServer(callback, options) {
23-
getOSAssignedPortNumber().then(function (portNumber) {
21+
getOSAssignedPortNumber(function (err, portNumber) {
22+
if (err) {
23+
callback(err);
24+
return;
25+
}
26+
2427
// Start @angular/cli dev server on private port, and pipe its output
25-
// back to the ASP.NET host process.
26-
// TODO: Support streaming arbitrary chunks to host process's stdout
27-
// rather than just full lines, so we can see progress being logged
28+
// back to the ASP.NET host process
2829
var devServerProc = executeAngularCli([
2930
'serve',
3031
'--port', portNumber.toString(),
@@ -35,7 +36,7 @@ module.exports = {
3536

3637
// Wait until the CLI dev server is listening before letting ASP.NET start the app
3738
console.log('Waiting for @angular/cli service to start...');
38-
waitForLine(devServerProc.stdout, /open your browser on (http\S+)/).then(function (matches) {
39+
waitForLine(devServerProc.stdout, /open your browser on (http\S+)/, function (matches) {
3940
var devServerUrl = url.parse(matches[1]);
4041
console.log('@angular/cli service has started on internal port ' + devServerUrl.port);
4142
callback(null, {
@@ -46,18 +47,16 @@ module.exports = {
4647
}
4748
};
4849

49-
function waitForLine(stream, regex) {
50-
return new Promise(function (resolve, reject) {
51-
var lineReader = readline.createInterface({ input: stream });
52-
var listener = function (line) {
53-
var matches = regex.exec(line);
54-
if (matches) {
55-
lineReader.removeListener('line', listener);
56-
resolve(matches);
57-
}
58-
};
59-
lineReader.addListener('line', listener);
60-
});
50+
function waitForLine(stream, regex, callback) {
51+
var lineReader = readline.createInterface({ input: stream });
52+
var listener = function (line) {
53+
var matches = regex.exec(line);
54+
if (matches) {
55+
lineReader.removeListener('line', listener);
56+
callback(matches);
57+
}
58+
};
59+
lineReader.addListener('line', listener);
6160
}
6261

6362
function executeAngularCli(args) {
@@ -67,12 +66,14 @@ function executeAngularCli(args) {
6766
});
6867
}
6968

70-
function getOSAssignedPortNumber() {
71-
return new Promise(function (resolve, reject) {
72-
var server = net.createServer();
73-
server.listen(0, 'localhost', function () {
69+
function getOSAssignedPortNumber(callback) {
70+
var server = net.createServer();
71+
server.listen(0, 'localhost', function (err) {
72+
if (err) {
73+
callback(err);
74+
} else {
7475
var portNumber = server.address().port;
75-
server.close(function () { resolve(portNumber); });
76-
});
76+
server.close(function () { callback(null, portNumber); });
77+
}
7778
});
7879
}

0 commit comments

Comments
 (0)