1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-23 15:49:44 -05:00
Original: 297cf0975e
This commit is contained in:
Ryan Dahl 2019-01-06 14:19:15 -05:00 committed by GitHub
parent 68584f983e
commit c164e696d7
10 changed files with 56 additions and 56 deletions

View file

@ -27,7 +27,11 @@ async function main() {
await checkVersion();
const prettier = run({
args: ["bash", "-c", "prettier --write *.ts */**/*.ts *.md */**/*.md"]
args: [
"bash",
"-c",
"prettier --write *.ts */*.ts */**/*.ts *.md */**/*.md"
]
});
const s = await prettier.status();
exit(s.code);

View file

@ -20,19 +20,17 @@ export class BaseHandler {
return this.log(msg);
}
log(msg: string) { }
async setup() { }
async destroy() { }
log(msg: string) {}
async setup() {}
async destroy() {}
}
export class ConsoleHandler extends BaseHandler {
log(msg: string) {
console.log(msg);
}
}
export abstract class WriterHandler extends BaseHandler {
protected _writer: Writer;
@ -43,7 +41,6 @@ export abstract class WriterHandler extends BaseHandler {
}
}
export class FileHandler extends WriterHandler {
private _file: File;
private _filename: string;
@ -55,11 +52,11 @@ export class FileHandler extends WriterHandler {
async setup() {
// open file in append mode - write only
this._file = await open(this._filename, 'a');
this._file = await open(this._filename, "a");
this._writer = this._file;
}
async destroy() {
await this._file.close();
}
}
}

View file

@ -1,5 +1,10 @@
import { Logger } from "./logger.ts";
import { BaseHandler, ConsoleHandler, WriterHandler, FileHandler } from "./handlers.ts";
import {
BaseHandler,
ConsoleHandler,
WriterHandler,
FileHandler
} from "./handlers.ts";
export class LoggerConfig {
level?: string;
@ -18,14 +23,12 @@ export interface LogConfig {
const DEFAULT_LEVEL = "INFO";
const DEFAULT_NAME = "";
const DEFAULT_CONFIG: LogConfig = {
handlers: {
},
handlers: {},
loggers: {
"": {
level: "INFO",
handlers: [""],
handlers: [""]
}
}
};
@ -38,21 +41,26 @@ const state = {
defaultLogger,
handlers: new Map(),
loggers: new Map(),
config: DEFAULT_CONFIG,
config: DEFAULT_CONFIG
};
export const handlers = {
BaseHandler,
ConsoleHandler,
WriterHandler,
FileHandler,
FileHandler
};
export const debug = (msg: string, ...args: any[]) => defaultLogger.debug(msg, ...args);
export const info = (msg: string, ...args: any[]) => defaultLogger.info(msg, ...args);
export const warning = (msg: string, ...args: any[]) => defaultLogger.warning(msg, ...args);
export const error = (msg: string, ...args: any[]) => defaultLogger.error(msg, ...args);
export const critical = (msg: string, ...args: any[]) => defaultLogger.critical(msg, ...args);
export const debug = (msg: string, ...args: any[]) =>
defaultLogger.debug(msg, ...args);
export const info = (msg: string, ...args: any[]) =>
defaultLogger.info(msg, ...args);
export const warning = (msg: string, ...args: any[]) =>
defaultLogger.warning(msg, ...args);
export const error = (msg: string, ...args: any[]) =>
defaultLogger.error(msg, ...args);
export const critical = (msg: string, ...args: any[]) =>
defaultLogger.critical(msg, ...args);
export function getLogger(name?: string) {
if (!name) {
@ -108,4 +116,4 @@ export async function setup(config: LogConfig) {
}
}
setup(DEFAULT_CONFIG);
setup(DEFAULT_CONFIG);

View file

@ -7,7 +7,7 @@ export interface LogRecord {
datetime: Date;
level: number;
levelName: string;
};
}
export class Logger {
level: number;
@ -17,14 +17,14 @@ export class Logger {
constructor(levelName: string, handlers?: BaseHandler[]) {
this.level = getLevelByName(levelName);
this.levelName = levelName;
this.handlers = handlers || [];
}
_log(level: number, msg: string, ...args: any[]) {
if (this.level > level) return;
// TODO: it'd be a good idea to make it immutable, so
// TODO: it'd be a good idea to make it immutable, so
// no handler mangles it by mistake
// TODO: iterpolate msg with values
const record: LogRecord = {
@ -32,8 +32,8 @@ export class Logger {
args: args,
datetime: new Date(),
level: level,
levelName: getLevelName(level),
}
levelName: getLevelName(level)
};
this.handlers.forEach(handler => {
handler.handle(record);

View file

@ -23,7 +23,6 @@ test(function testDefaultlogMethods() {
log.error("Foobar");
log.critical("Foobar");
const logger = log.getLogger('');
const logger = log.getLogger("");
console.log(logger);
});

View file

@ -4,11 +4,7 @@
// license that can be found in the LICENSE file.
import { Buffer, Reader, ReadResult } from "deno";
import {
test,
assert,
assertEqual
} from "../testing/mod.ts";
import { test, assert, assertEqual } from "../testing/mod.ts";
import { BufReader, BufState, BufWriter } from "./bufio.ts";
import * as iotest from "./iotest.ts";
import { charCode, copyBytes, stringsReader } from "./util.ts";

View file

@ -1,10 +1,6 @@
import { readFile } from "deno";
import {
test,
assert,
assertEqual
} from "../testing/mod.ts";
import { test, assert, assertEqual } from "../testing/mod.ts";
// Promise to completeResolve when all tests completes
let completeResolve;
@ -27,7 +23,9 @@ export function runTests(serverReadyPromise: Promise<any>) {
assert(res.headers.has("access-control-allow-headers"));
assertEqual(res.headers.get("content-type"), "text/yaml");
const downloadedFile = await res.text();
const localFile = new TextDecoder().decode(await readFile("./azure-pipelines.yml"));
const localFile = new TextDecoder().decode(
await readFile("./azure-pipelines.yml")
);
assertEqual(downloadedFile, localFile);
maybeCompleteTests();
});

View file

@ -6,11 +6,7 @@
// https://github.com/golang/go/blob/master/src/net/http/responsewrite_test.go
import { Buffer } from "deno";
import {
test,
assert,
assertEqual
} from "../testing/mod.ts";
import { test, assert, assertEqual } from "../testing/mod.ts";
import {
listenAndServe,
ServerRequest,

View file

@ -6,11 +6,7 @@
import { BufReader } from "./bufio.ts";
import { TextProtoReader, append } from "./textproto.ts";
import { stringsReader } from "./util.ts";
import {
test,
assert,
assertEqual
} from "../testing/mod.ts";
import { test, assert, assertEqual } from "../testing/mod.ts";
function reader(s: string): TextProtoReader {
return new TextProtoReader(new BufReader(stringsReader(s)));

View file

@ -1,24 +1,30 @@
# Testing
# Testing
## Usage
```ts
import { test, assert, equal, assertEqual } from 'https://deno.land/x/testing/mod.ts';
import {
test,
assert,
equal,
assertEqual
} from "https://deno.land/x/testing/mod.ts";
test({
name: 'testing example',
name: "testing example",
fn() {
assert(equal("world", "world"));
assert(!equal("hello", "world"));
assert(equal({ hello: "world" }, { hello: "world" }));
assert(!equal({ world: "hello" }, { hello: "world" }));
assertEqual("world", "world");
assertEqual({hello: "world"}, {hello: "world"});
},
assertEqual({ hello: "world" }, { hello: "world" });
}
});
```
Short syntax (named function instead of object):
```ts
test(function example() {
assert(equal("world", "world"));
@ -26,6 +32,6 @@ test(function example() {
assert(equal({ hello: "world" }, { hello: "world" }));
assert(!equal({ world: "hello" }, { hello: "world" }));
assertEqual("world", "world");
assertEqual({hello: "world"}, {hello: "world"});
assertEqual({ hello: "world" }, { hello: "world" });
});
```