forked from itsjustcon/JavaScriptCoreBrowserObjectModel
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConsole.swift
More file actions
60 lines (48 loc) · 1.59 KB
/
Console.swift
File metadata and controls
60 lines (48 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//
// Console.swift
// JavaScriptCoreBrowserObjectModel
//
// Created by Connor Grady on 10/7/17.
// Copyright © 2017 Connor Grady. All rights reserved.
//
import Foundation
import JavaScriptCore
@objc protocol ConsoleProtocol : JSExport {
//init()
//init(stdout: TextOutputStream?, stderr: TextOutputStream?)
func debug(_ message: String) -> Void
func error(_ message: String) -> Void
func info(_ message: String) -> Void
func log(_ message: String) -> Void
func warn(_ message: String) -> Void
}
@objc open class Console: NSObject, ConsoleProtocol {
static var `default` = {
return Console()
}()
private var stdout: TextOutputStream? //= ""
private var stderr: TextOutputStream? //= ""
public init(stdout: TextOutputStream? = nil, stderr: TextOutputStream? = nil) {
super.init()
self.stdout = stdout
self.stderr = stderr ?? stdout
}
public func debug(_ message: String) -> Void {
//print(String(message) + "\n")
//guard var stdout = stdout else { return }
//print(String(message) + "\n", to: &stdout)
stdout?.write(String(message) + "\n")
}
public func error(_ message: String) -> Void {
stderr?.write(String(message) + "\n")
}
public func info(_ message: String) -> Void {
stdout?.write(String(message) + "\n")
}
public func log(_ message: String) -> Void {
stdout?.write(String(message) + "\n")
}
public func warn(_ message: String) -> Void {
stdout?.write(String(message) + "\n")
}
}