TestsTested | ✓ |
LangLanguage | SwiftSwift |
License | MIT |
ReleasedLast Release | Mar 2017 |
SwiftSwift Version | 3.0 |
SPMSupports SPM | ✓ |
Maintained by Zheng-Xiang Ke.
JSContextFoundation is a Swift adapter for the JavaScriptCore Framework to build up the JavaScript runtime environment.
Swift 2.3
pod 'JSContextFoundation', '~> 0.0.1'
Swift 3.1
pod 'JSContextFoundation', '~> 0.1.1'
Swift 2.3
.Package(url: "https://github.com/kf99916/JSContextFoundation.git", majorVersion: 0.0.1)
Swift 3.1
.Package(url: "https://github.com/kf99916/JSContextFoundation.git", majorVersion: 0.1.1)
JSContextFoundation builds up the global objects for the JavaScript runtime environment to allow you execute JavaScript code like as in browser or Node.js. Here is the support list for the global objects:
global;
window;
console
.log([data][, ...]);
.info([data][, ...]);
.warn([data][, ...]);
.error([data][, ...]);
import JSContextFoundation
let jsContext = JSContextFoundation()
To import JavaScript module, the source of module can be file path or URL:
let path = NSBundle(forClass: self.dynamicType).pathForResource("Module", ofType: "js")!
do {
try jsContext.requireWithPath(path)
} catch JSContextFoundationError.FileNotFound {
print(path + " is not found")
} catch JSContextFoundationError.FileNotLoaded {
print(path + " cannot be loaded")
} catch {
print("Unknow Exception")
}
// ...
let url = NSURL(string: "https://FQDN/Module.js")!
jsContext.requireWithUrl(url, completionHandler: {error in
if let error = error {
switch error {
case JSContextFoundationError.FileNotFound:
print(url.absoluteString + " is not found")
case JSContextFoundationError.FileNotDownloaded:
print(url.absoluteString + " is not downloaded")
default:
print("Unknown Error")
}
return
}
// ...
})
All other usage is the same as JSContext. See JSContext in the Apple document for details.
Zheng-Xiang Ke, [email protected]
JSContextFoundation is available under the MIT license. See the LICENSE file for more info.