JSContextFoundation 0.1.1

JSContextFoundation 0.1.1

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Mar 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Zheng-Xiang Ke.



  • By
  • Zheng-Xiang Ke

JSContextFoundation

JSContextFoundation is a Swift adapter for the JavaScriptCore Framework to build up the JavaScript runtime environment.

Requirements

  • iOS 8.0 or higher
  • Swift 2.3 or higher

Installation

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)

JavaScript Runtime Environment

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][, ...]);

Usage

import JSContextFoundation

let jsContext = JSContextFoundation()

Import JavaScript Module

To import JavaScript module, the source of module can be file path or URL:

File Path

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")
}

// ...

URL

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.

Author

Zheng-Xiang Ke, [email protected]

License

JSContextFoundation is available under the MIT license. See the LICENSE file for more info.