typedphonegap

0.0.3 • Public • Published

TypedPhoneGap

TypeScript layer for PhoneGap (Apache Cordova) version 3.4.0 and all core plugins

Quick links:

Motivation

TypeScript definitions allow editing code with some degree of type checking and code completion. It saves time and eliminates bugs.

It turns out that simple .d.ts is not enough, since Cordova API is weird. So TypedPhoneGap provides a little JavaScript layer as well. To see why it is worth it, consider for example how Cordova has you write (with inappbrowser plugin):

window.open('http://apache.org', '_blank', 'location=yes');    

Here, what should go into options string? You do not know without reading the docs.

TypedPhoneGap, on the other hand, makes everything pleasantly typed:

import IAB = TypedPhoneGap.InAppBrowser;
var iab = IAB.getPlugin();
iab.openWindow('http://apache.org', IAB.Target.blank, {
  location: true
});

You can examine Options interface to see what is available. Also, where possible, getPlugin functions do checks and fire informative exceptions when you forget to configure your application with a given plugin.

Status

Rewritten for version 3.4.0 and TypeScript 0.9.7. Currently testing, API subject to change.

Building

Build the project with npm. In the root folder, do:

npm install

This should obtain three files:

build/TypedPhoneGap.d.ts
build/TypedPhoneGap.js
build/TypedPhoneGap.min.js

Usage

In your application, reference the .d.ts for TypeScript development and include the .js or .min.js after cordova.js.

The project includes a command-line tool to help populate files in a project generated by the cordova tool. Synopsis:

cd myapp
npm install -g typedphonegap
typedphonegap install

This populates your project with:

www/js/TypedPhoneGap.js
www/js/TypedPhoneGap.min.js
www/typings/TypedPhoneGap.d.ts

License

All files are released under Apache 2.0 License.

Contributing

Contributions are welcome, especially for testing the code on real-world examples.

Package Sidebar

Install

npm i typedphonegap

Weekly Downloads

1

Version

0.0.3

License

Apache-2.0

Last publish

Collaborators

  • t0yv0