Skip to content

Commit 804fb44

Browse files
committed
Restructure Typescript project
Configure TS compile options Update dependencies Update Blazor to 0.5.1 Move JS initialization from global to extension specific namespace
1 parent a14d2c1 commit 804fb44

File tree

14 files changed

+127
-103
lines changed

14 files changed

+127
-103
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ bld/
2424
[Bb]in/
2525
[Oo]bj/
2626
[Ll]og/
27+
dist/
2728

2829
# Visual Studio 2015 cache/options directory
2930
.vs/

src/Blazor.Extensions.Logging.JS/Blazor.Extensions.Logging.JS.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<ItemGroup>
1919
<PackageReference Include="Microsoft.Extensions.FileProviders.Embedded" Version="2.1.1" />
20-
<PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.5.0" />
20+
<PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.5.1" />
2121
<WebpackInputs Include="**\*.ts" Exclude="dist\**;node_modules\**" />
2222
</ItemGroup>
2323

src/Blazor.Extensions.Logging.JS/package-lock.json

Lines changed: 11 additions & 25 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/Blazor.Extensions.Logging.JS/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
},
1010
"devDependencies": {
1111
"@types/emscripten": "0.0.31",
12-
"webpack": "^4.16.0",
13-
"webpack-cli": "^3.0.8",
12+
"ts-loader": "^4.4.2",
1413
"typescript": "^2.9.2",
15-
"ts-loader": "^4.4.2"
14+
"webpack": "^4.16.3",
15+
"webpack-cli": "^3.1.0"
1616
}
1717
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { LogObject, LogObjectType, LogLevel } from './LogObject';
2+
3+
interface IBrowserConsoleLogger {
4+
Log(logObjectValue: string): void;
5+
}
6+
7+
export class BrowserConsoleLogger implements IBrowserConsoleLogger {
8+
Log(logObjectValue: string): void {
9+
const logObject: LogObject = JSON.parse(logObjectValue);
10+
let logMethod: Function = console.log;
11+
12+
// if we've a table, we'll print it as a table anyway, it is unlikely that the developer want to log errornous data as a table.
13+
if (logObject.type === LogObjectType.Table) {
14+
logMethod = console.table;
15+
} else {
16+
switch (logObject.logLevel) {
17+
case LogLevel.Trace:
18+
logMethod = console.trace;
19+
break;
20+
case LogLevel.Debug:
21+
logMethod = console.debug;
22+
break;
23+
case LogLevel.Warning:
24+
logMethod = console.warn;
25+
break;
26+
case LogLevel.Error:
27+
case LogLevel.Critical:
28+
logMethod = console.error;
29+
break;
30+
}
31+
}
32+
33+
logMethod(logObject.payload);
34+
35+
if (logObject.exception) {
36+
logMethod("Exception: ", logObject.exception);
37+
}
38+
}
39+
}

src/Blazor.Extensions.Logging.JS/src/Initialize.ts

Lines changed: 0 additions & 64 deletions
This file was deleted.
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { BrowserConsoleLogger } from './BrowserConsoleLogger';
2+
3+
namespace Logging {
4+
const blazorExtensions: string = 'BlazorExtensions';
5+
// define what this extension adds to the window object inside BlazorExtensions
6+
const extensionObject = {
7+
Logging: {
8+
BrowserConsoleLogger: new BrowserConsoleLogger()
9+
}
10+
};
11+
12+
export function initialize(): void {
13+
if (typeof window !== 'undefined' && !window[blazorExtensions]) {
14+
// when the library is loaded in a browser via a <script> element, make the
15+
// following APIs available in global scope for invocation from JS
16+
window[blazorExtensions] = {
17+
...extensionObject
18+
};
19+
} else {
20+
window[blazorExtensions] = {
21+
...window[blazorExtensions],
22+
...extensionObject
23+
};
24+
}
25+
}
26+
}
27+
28+
Logging.initialize();

src/Blazor.Extensions.Logging.JS/src/LogObject.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export type LogObject = {
55
exception: string;
66
}
77

8-
// Enum coming from Microsoft.Extensions.Logging
8+
// enum coming from Microsoft.Extensions.Logging
99
export enum LogLevel {
1010
Trace = 0,
1111
Debug = 1,

src/Blazor.Extensions.Logging.JS/tsconfig.json

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22
"compilerOptions": {
33
"noImplicitAny": false,
44
"noEmitOnError": true,
5-
"removeComments": false,
5+
"removeComments": true,
66
"sourceMap": true,
7-
"target": "es5",
8-
"lib": ["es2015", "dom"],
9-
"strict": true
7+
"target": "es6",
8+
"module": "commonjs",
9+
"lib": ["es2016", "dom"],
10+
"strict": true,
11+
"alwaysStrict": true,
12+
"preserveConstEnums": true
1013
},
1114
"exclude": [
1215
"node_modules"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"tabSize": 2,
3+
"indentSize": 2,
4+
"convertTabsToSpaces": true,
5+
"insertSpaceAfterCommaDelimiter": true,
6+
"insertSpaceAfterSemicolonInForStatements": true,
7+
"insertSpaceBeforeAndAfterBinaryOperators": true,
8+
"insertSpaceAfterKeywordsInControlFlowStatements": true,
9+
"insertSpaceAfterFunctionKeywordForAnonymousFunctions": true,
10+
"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
11+
"insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
12+
"insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false,
13+
"insertSpaceBeforeFunctionParenthesis": false,
14+
"placeOpenBraceOnNewLineForFunctions": false,
15+
"placeOpenBraceOnNewLineForControlBlocks": false
16+
}

0 commit comments

Comments
 (0)