/jsca2js

Utility to convert JSON in Appcelerator's JSCA format to JavaScript

Primary LanguageJavaScript

jsca2js

This project provides a set of utilities to convert APIs written in Appcelerator's JSCA specification to JSDoc annotated JavaScript files.

A good use case for these utilities is to generate a JavaScript file for the Titanium JSON API, which can then be used in IDE's such as IntelliJ IDEA, NetBeans or Sublime Text 2 (using SublimeCodeIntel plugin) for code completion and documentation lookup.

If you drop this Javascript API in the root of your Titanium mobile project, smart JS editors' code completion will help you write this kind of stuff easily:

var win = Ti.UI.createWindow(options);
win.<completion for Window proxy object>

Also, this project tries to find Alloy framework JSCA files and convert them too.

Converting JSCA JSON to JavaScript

The main function used to convert JSCA JSON to JavaScript is named convertJsca2Js and is provided through the jsca2js.py script. This function expects a JSON object containing the API in the JSCA specification and produces a string containing the converted JavaScript.

Creating the Titanium JavaScript file

The titanium-mobile.py script can be used to create a JavaScript file for Titanium Mobile API. This script will automatically fetch the api.json file from the Titanium Developer site (and cache it locally) and produce the corresponding JavaScript file.

JSCA files location

You can find the files inside Titanium SDKs folder named api.jsca

On Macs, for example: /Users/{YOUR USER}/Library/Application Support/Titanium/mobilesdk/osx/{TI SDK VERSION}

Usage:

titanium-mobile.py <titanium-version> (optional)<alloy-titanium-version>

Output

The script will produce the JavaScript file in the current directory with a name that follows the following format:

titanium-mobile-<titanium-version>.js

If the script would find Alloy JSCA file too, it will produce one more file with a name:

titanium-mobile-alloy-<titanium-version>.js

PS

Be aware that versions of Titanium and Alloy framework can be different. Check firstly Appcelerator Portal in JSON SDK section to find the proper latest version of Alloy framework. The titanium version for alloy is in the URL for the alloy file (eg. the 1.3.x alloy json is at version 3.2.0 of titanium).