typescript-closure-tools
Version:
Command-line tools to convert closure-style JSDoc annotations to typescript, and to convert typescript sources to closure externs files
719 lines (676 loc) • 26.1 kB
text/typescript
/// <reference path="phonegap.d.ts" />
function test_accelerometer() {
var watchID = null;
var options = { frequency: 3000 };
watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options);
if (watchID) {
navigator.accelerometer.clearWatch(watchID);
watchID = null;
}
function onSuccess(acceleration: Acceleration) {
var element = document.getElementById('accelerometer');
element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' +
'Acceleration Y: ' + acceleration.y + '<br />' +
'Acceleration Z: ' + acceleration.z + '<br />' +
'Timestamp: ' + acceleration.timestamp + '<br />';
}
function onError() {
alert('onError!');
}
}
function test_camera() {
var pictureSource;
var destinationType;
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
pictureSource = navigator.camera.PictureSourceType;
destinationType = navigator.camera.DestinationType;
}
function onPhotoDataSuccess(imageData) {
var smallImage = <HTMLImageElement>document.getElementById('smallImage');
smallImage.style.display = 'block';
smallImage.src = "data:image/jpeg;base64," + imageData;
}
function onPhotoURISuccess(imageURI) {
var largeImage = <HTMLImageElement>document.getElementById('largeImage');
largeImage.style.display = 'block';
largeImage.src = imageURI;
}
function capturePhoto() {
navigator.camera.getPicture(onPhotoDataSuccess, onFail, {
quality: 50,
destinationType: destinationType.DATA_URL
});
}
function capturePhotoEdit() {
navigator.camera.getPicture(onPhotoDataSuccess, onFail, {
quality: 20, allowEdit: true,
destinationType: destinationType.DATA_URL
});
}
function getPhoto(source) {
navigator.camera.getPicture(onPhotoURISuccess, onFail, {
quality: 50,
destinationType: destinationType.FILE_URI,
sourceType: source
});
}
function onFail(message) {
alert('Failed because: ' + message);
}
var popover = new CameraPopoverOptions(300, 300, 100, 100, 1);
var options = <CameraOptions>{ quality: 50, destinationType: 1, sourceType: 1, popoverOptions: popover };
navigator.camera.getPicture(onSuccess, onFail, options);
function onSuccess(imageData) {
var image = <HTMLImageElement>document.getElementById('myImage');
image.src = "data:image/jpeg;base64," + imageData;
}
}
function test_capture() {
var capture = navigator.device.capture;
function captureSuccess(mediaFiles) {
var i, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
uploadFile(mediaFiles[i]);
}
}
function captureError(error) {
var msg = 'An error occurred during capture: ' + error.code;
navigator.notification.alert(msg, null, 'Uh oh!');
}
function captureAudio() {
navigator.device.capture.captureAudio(captureSuccess, captureError, { limit: 2 });
}
function uploadFile(mediaFile) {
var ft = new FileTransfer(),
path = mediaFile.fullPath,
name = mediaFile.name;
ft.upload(path,
"http://my.domain.com/upload.php",
function (result) {
console.log('Upload success: ' + result.responseCode);
console.log(result.bytesSent + ' bytes sent');
},
function (error) {
console.log('Error uploading file ' + path + ': ' + error.code);
},
{ fileName: name });
}
var options = { limit: 3, duration: 10 };
navigator.device.capture.captureAudio(captureSuccess, captureError, options);
function captureSuccess2(mediaFiles) {
var i, path, len;
for (i = 0, len = mediaFiles.length; i < len; i += 1) {
path = mediaFiles[i].fullPath;
}
};
function captureError2(error) {
navigator.notification.alert('Error code: ' + error.code, null, 'Capture Error');
};
navigator.device.capture.captureImage(captureSuccess2, captureError2, { limit: 2 });
function captureImage() {
navigator.device.capture.captureImage(captureSuccess2, captureError2, { limit: 2 });
}
function captureVideo() {
navigator.device.capture.captureVideo(captureSuccess2, captureError2, { limit: 2 });
}
}
function test_compass() {
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
navigator.compass.getCurrentHeading(onSuccess, onError);
}
function onSuccess(heading) {
alert('Heading: ' + heading.magneticHeading);
}
function onError(compassError) {
alert('Compass Error: ' + compassError.code);
}
}
function test_compass2() {
var watchID = null;
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
startWatch();
}
function startWatch() {
var options = { frequency: 3000 };
watchID = navigator.compass.watchHeading(onSuccess, onError, options);
}
function stopWatch() {
if (watchID) {
navigator.compass.clearWatch(watchID);
watchID = null;
}
}
function onSuccess(heading) {
var element = document.getElementById('heading');
element.innerHTML = 'Heading: ' + heading.magneticHeading;
}
function onError(compassError) {
alert('Compass error: ' + compassError.code);
}
}
function test_compass3() {
var watchID = null;
function startWatch() {
var options = { frequency: 3000 };
watchID = navigator.compass.watchHeading(onSuccess, onError, options);
}
function stopWatch() {
if (watchID) {
navigator.compass.clearWatch(watchID);
watchID = null;
}
}
function onSuccess(heading) {
var element = document.getElementById('heading');
element.innerHTML = 'Heading: ' + heading.magneticHeading;
}
function onError(compassError) {
alert('Compass error: ' + compassError.code);
}
}
function test_connection() {
var networkState = navigator.connection.type;
var states = {};
states[Connection.UNKNOWN] = 'Unknown connection';
states[Connection.ETHERNET] = 'Ethernet connection';
states[Connection.WIFI] = 'WiFi connection';
states[Connection.CELL_2G] = 'Cell 2G connection';
states[Connection.CELL_3G] = 'Cell 3G connection';
states[Connection.CELL_4G] = 'Cell 4G connection';
states[Connection.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}
function test_contacts() {
var myContact = navigator.contacts.create({ "displayName": "Test User" });
myContact.note = "This contact has a note.";
console.log("The contact, " + myContact.displayName + ", note: " + myContact.note);
function onDeviceReady() {
var options = new ContactFindOptions();
options.filter = "Bob";
navigator.contacts.find(["displayName", "name"], onSuccess, onError, options);
}
function onSuccess(contacts) {
for (var i = 0; i < contacts.length; i++) {
console.log("Display Name = " + contacts[i].displayName);
}
}
function onError(contactError) {
alert('onError!');
}
var contact = navigator.contacts.create();
contact.displayName = "Plumber";
contact.nickname = "Plumber";
var name = new ContactName();
name.givenName = "Jane";
name.familyName = "Doe";
contact.name = name;
contact.save(onSuccess, onError);
var clone = contact.clone();
clone.name.givenName = "John";
console.log("Original contact name = " + contact.name.givenName);
console.log("Cloned contact name = " + clone.name.givenName);
contact.remove(onSuccess, onError);
}
function test_contacts2() {
function onSuccess(contacts) {
for (var i = 0; i < contacts.length; i++) {
console.log("Display Name = " + contacts[i].displayName);
}
}
function onError(contactError) {
alert('onError!');
}
function onDeviceReady() {
var contact = navigator.contacts.create();
contact.displayName = "Plumber";
contact.nickname = "Plumber";
var name = new ContactName();
name.givenName = "Jane";
name.familyName = "Doe";
contact.name = name;
contact.save(onSuccess, onError);
var clone = contact.clone();
clone.name.givenName = "John";
console.log("Original contact name = " + contact.name.givenName);
console.log("Cloned contact name = " + clone.name.givenName);
contact.remove(onSuccess, onError);
}
var options = new ContactFindOptions();
options.filter = "";
var filter = ["displayName", "addresses"];
navigator.contacts.find(filter, onSuccess, onError, options);
var contacts: Contact[] = [];
for (var i = 0; i < contacts.length; i++) {
for (var j = 0; j < contacts[i].addresses.length; j++) {
alert("Pref: " + contacts[i].addresses[j].pref + "\n" +
"Type: " + contacts[i].addresses[j].type + "\n" +
"Formatted: " + contacts[i].addresses[j].formatted + "\n" +
"Street Address: " + contacts[i].addresses[j].streetAddress + "\n" +
"Locality: " + contacts[i].addresses[j].locality + "\n" +
"Region: " + contacts[i].addresses[j].region + "\n" +
"Postal Code: " + contacts[i].addresses[j].postalCode + "\n" +
"Country: " + contacts[i].addresses[j].country);
}
}
var contact = navigator.contacts.create();
var phoneNumbers = [];
phoneNumbers[0] = new ContactField('work', '212-555-1234', false);
phoneNumbers[1] = new ContactField('mobile', '917-555-5432', true); // preferred number
phoneNumbers[2] = new ContactField('home', '203-555-7890', false);
contact.phoneNumbers = phoneNumbers;
contact.save();
var options = new ContactFindOptions();
options.filter = "";
options.multiple = true;
filter = ["displayName"];
navigator.contacts.find(filter, onSuccess, onError, options);
}
function test_device() {
var element = document.getElementById('deviceProperties');
element.innerHTML = 'Device Name: ' + device.name + '<br />' +
'Device Cordova: ' + device.cordova + '<br />' +
'Device Platform: ' + device.platform + '<br />' +
'Device UUID: ' + device.uuid + '<br />' +
'Device Model: ' + device.model + '<br />' +
'Device Version: ' + device.version + '<br />';
}
function test_file() {
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile("readme.txt", null, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.file(gotFile, fail);
}
function gotFile(file) {
readDataUrl(file);
readAsText(file);
}
function readDataUrl(file) {
var reader = new FileReader();
reader.onloadend = function (evt) {
console.log("Read as data URL");
console.log((<any>evt.target).result);
};
reader.readAsDataURL(file);
}
function readAsText(file) {
var reader = new FileReader();
reader.onloadend = function (evt) {
console.log("Read as text");
console.log((<any>evt.target).result);
};
reader.readAsText(file);
}
function fail(evt) {
console.log(evt.target.error.code);
}
}
function test_file2() {
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}
function gotFS(fileSystem) {
fileSystem.root.getFile("readme.txt", { create: true, exclusive: false }, gotFileEntry, fail);
}
function gotFileEntry(fileEntry) {
fileEntry.createWriter(gotFileWriter, fail);
}
function gotFileWriter(writer) {
writer.onwriteend = function (evt) {
console.log("contents of file now 'some sample text'");
writer.truncate(11);
writer.onwriteend = function (evt) {
console.log("contents of file now 'some sample'");
writer.seek(4);
writer.write(" different text");
writer.onwriteend = function (evt) {
console.log("contents of file now 'some different text'");
}
};
};
writer.write("some sample text");
}
function fail(error) {
console.log(error.code);
}
}
function test_file3() {
function onDeviceReady() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
}
function onFileSystemSuccess(fileSystem) {
console.log(fileSystem.name);
console.log(fileSystem.root.name);
}
function fail(evt) {
console.log(evt.target.error.code);
}
var onSetMetadataWin = function () {
console.log("success setting metadata")
}
var onSetMetadataFail = function () {
console.log("error setting metadata")
}
var onGetFileWin = function (parent) {
var data = {};
var metadataKey: any;
var metadataValue: any;
data[metadataKey] = metadataValue;
parent.setMetadata(onSetMetadataWin, onSetMetadataFail, data);
}
var onGetFileFail = function () {
console.log("error getting file")
}
var onFSWin = function (fileSystem) {
var filePath = '';
fileSystem.root.getFile(filePath, { create: true, exclusive: false }, onGetFileWin, onGetFileFail);
}
var onFSFail = function (evt) {
console.log(evt.target.error.code);
}
var localFileSystem:any;
window.requestFileSystem(localFileSystem, 0, onFSWin, onFSFail);
var success: any;
var entry: FileEntry;
var parent = (<any>document.getElementById('parent')).value,
parentName = parent.substring(parent.lastIndexOf('/') + 1),
parentEntry = new DirectoryEntry(parentName, parent);
entry.moveTo(parentEntry, "newFile.txt", success, fail);
entry.remove(success, fail);
entry.getParent(success, fail);
entry.createWriter(success, fail);
entry.file(success, fail);
entry.getMetadata(success, fail);
entry.setMetadata(success, fail, { "com.apple.MobileBackup": 1 });
function win(r) {
console.log("Code = " + r.responseCode);
console.log("Response = " + r.response);
console.log("Sent = " + r.bytesSent);
}
var uri = encodeURI("http://some.server.com/upload.php");
var fileURI = "";
var options = new FileUploadOptions();
options.fileKey = "file";
options.fileName = fileURI.substr(fileURI.lastIndexOf('/') + 1);
options.mimeType = "text/plain";
var params:any = {};
params.headers = { 'headerParam': 'headerValue' };
options.params = params;
var ft = new FileTransfer();
ft.upload(fileURI, uri, win, fail, options);
}
function test_geolocation() {
var onSuccess = function (position) {
alert('Latitude: ' + position.coords.latitude + '\n' +
'Longitude: ' + position.coords.longitude + '\n' +
'Altitude: ' + position.coords.altitude + '\n' +
'Accuracy: ' + position.coords.accuracy + '\n' +
'Altitude Accuracy: ' + position.coords.altitudeAccuracy + '\n' +
'Heading: ' + position.coords.heading + '\n' +
'Speed: ' + position.coords.speed + '\n' +
'Timestamp: ' + position.timestamp + '\n');
};
function onError(error: GeolocationError) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
navigator.geolocation.getCurrentPosition(onSuccess, onError);
}
function test_geolocation2() {
function onSuccess(position) {
var element = document.getElementById('geolocation');
element.innerHTML = 'Latitude: ' + position.coords.latitude + '<br />' +
'Longitude: ' + position.coords.longitude + '<br />' +
'<hr />' + element.innerHTML;
}
function onError(error) {
alert('code: ' + error.code + '\n' +
'message: ' + error.message + '\n');
}
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { timeout: 30000 });
var watchID = navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true });
navigator.geolocation.clearWatch(watchID);
}
function test_globalization() {
navigator.globalization.getPreferredLanguage(
function (language) { alert('language: ' + language.value + '\n'); },
function () { alert('Error getting language\n'); }
);
navigator.globalization.getLocaleName(
function (locale) { alert('locale: ' + locale.value + '\n'); },
function () { alert('Error getting locale\n'); }
);
navigator.globalization.dateToString(
new Date(),
function (date) { alert('date:' + date.value + '\n'); },
function () { alert('Error getting dateString\n'); },
{ formatLength: 'short', selector: 'date and time' }
);
navigator.globalization.stringToDate(
'9/25/2012',
function (date) {
alert('month:' + date.month +
' day:' + date.day +
' year:' + date.year + '\n');
},
function () { alert('Error getting date\n'); },
{ selector: 'date' }
);
navigator.globalization.getDatePattern(
function (date) { alert('pattern: ' + date.pattern + '\n'); },
function () { alert('Error getting pattern\n'); },
{ formatLength: 'short', selector: 'date and time' }
);
navigator.globalization.getDateNames(
function (names) {
for (var i = 0; i < names.value.length; i++) {
alert('month: ' + names.value[i] + '\n');
}
},
function () { alert('Error getting names\n'); },
{ type: 'wide', item: 'months' }
);
navigator.globalization.isDayLightSavingsTime(
new Date(),
function (date) { alert('dst: ' + date.dst + '\n'); },
function () { alert('Error getting names\n'); }
);
navigator.globalization.getFirstDayOfWeek(
function (day) { alert('day: ' + day.value + '\n'); },
function () { alert('Error getting day\n'); }
);
navigator.globalization.numberToString(
3.1415926,
function (number) { alert('number: ' + number.value + '\n'); },
function () { alert('Error getting number\n'); },
{ type: 'decimal' }
);
navigator.globalization.stringToNumber(
'1234.56',
function (number) { alert('number: ' + number.value + '\n'); },
function () { alert('Error getting number\n'); },
{ type: 'decimal' }
);
navigator.globalization.getNumberPattern(
function (pattern) {
alert('pattern: ' + pattern.pattern + '\n' +
'symbol: ' + pattern.symbol + '\n' +
'fraction: ' + pattern.fraction + '\n' +
'rounding: ' + pattern.rounding + '\n' +
'positive: ' + pattern.positive + '\n' +
'negative: ' + pattern.negative + '\n' +
'decimal: ' + pattern.decimal + '\n' +
'grouping: ' + pattern.grouping);
},
function () { alert('Error getting pattern\n'); },
{ type: 'decimal' }
);
navigator.globalization.getCurrencyPattern(
'USD',
function (pattern) {
alert('pattern: ' + pattern.pattern + '\n' +
'code: ' + pattern.code + '\n' +
'fraction: ' + pattern.fraction + '\n' +
'rounding: ' + pattern.rounding + '\n' +
'decimal: ' + pattern.decimal + '\n' +
'grouping: ' + pattern.grouping);
},
function () { alert('Error getting pattern\n'); }
);
}
function test_inAppBrowser() {
var ref = window.open('http://apache.org', '_blank', 'location=yes');
ref.addEventListener('loadstart', function () { alert(event.url); });
ref.removeEventListener('loadstart', null);
ref.close();
}
function test_media() {
var src = '';
var my_media = new Media(src, () => { }, () => { });
var mediaTimer = setInterval(function () {
my_media.getCurrentPosition(
function (position) {
if (position > -1) {
console.log((position) + " sec");
}
},
function (e) {
console.log("Error getting pos=" + e);
}
);
}, 1000);
var counter = 0;
var timerDur = setInterval(function () {
counter = counter + 100;
if (counter > 2000) {
clearInterval(timerDur);
}
var dur = my_media.getDuration();
if (dur > 0) {
clearInterval(timerDur);
document.getElementById('audio_duration').innerHTML = (dur) + " sec";
}
}, 100);
function playAudio(url) {
var my_media = new Media(url,
function () {
console.log("playAudio():Audio Success");
},
function (err) {
console.log("playAudio():Audio Error: " + err);
});
my_media.play();
setTimeout(function () {
my_media.pause();
}, 10000);
}
}
function test_media2() {
function playAudio(url) {
var my_media = new Media(url,
function () {
console.log("playAudio():Audio Success");
},
function (err) {
console.log("playAudio():Audio Error: " + err);
});
my_media.play();
}
var onSuccess: any;
var onError: any;
var my_media = new Media(src, onSuccess, onError);
my_media.play();
my_media.stop();
my_media.release();
setTimeout(function () {
my_media.seekTo(10000);
}, 5000);
my_media.stopRecord();
var src = "myrecording.mp3";
var mediaRec = new Media(src,
function () {
console.log("recordAudio():Audio Success");
},
function (err) {
console.log("recordAudio():Audio Error: " + err.code);
}
);
mediaRec.startRecord();
}
var onConfirm: any;
function test_notification() {
function alertDismissed() { }
navigator.notification.alert(
'You are the winner!',
alertDismissed,
'Game Over',
'Done'
);
navigator.notification.confirm(
'You are the winner!',
onConfirm,
'Game Over',
'Restart,Exit'
);
navigator.notification.confirm(
'You are the winner!',
onConfirm,
'Game Over',
['Restart','Exit']
);
navigator.notification.beep(2);
navigator.notification.vibrate(2500);
}
function test_splashscreen() {
navigator.splashscreen.show();
navigator.splashscreen.hide();
}
function test_storage() {
var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
db.transaction(populateDB, errorCB, successCB);
function populateDB(tx: SQLTransaction) {
tx.executeSql('DROP TABLE IF EXISTS DEMO');
tx.executeSql('CREATE TABLE IF NOT EXISTS DEMO (id unique, data)');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (1, "First row")');
tx.executeSql('INSERT INTO DEMO (id, data) VALUES (2, "Second row")');
}
function errorCB(err) {
alert("Error processing SQL: " + err);
}
function successCB() {
alert("success!");
}
db.changeVersion("1.0", "1.1");
function queryDB(tx) {
tx.executeSql('SELECT * FROM DEMO', [], querySuccess, errorCB);
}
function querySuccess(tx, resultSet) {
console.log("Returned rows = " + resultSet.rows.length);
if (!resultSet.rowsAffected) {
console.log('No rows affected!');
return false;
}
console.log("Last inserted row ID = " + resultSet.insertId);
}
var db = window.openDatabase("Database", "1.0", "Cordova Demo", 200000);
db.transaction(queryDB, errorCB);
function querySuccessSet(tx, results) {
var len = results.rows.length;
console.log("DEMO table: " + len + " rows found.");
for (var i = 0; i < len; i++) {
console.log("Row = " + i + " ID = " + results.rows.item(i).id + " Data = " + results.rows.item(i).data);
}
}
var storage = window.localStorage;
var keyName = window.localStorage.key(0);
window.localStorage.setItem("key", "value");
var value = window.localStorage.getItem("key");
window.localStorage.removeItem("key");
window.localStorage.clear();
}