All Projects → smclab → titaniumifier

smclab / titaniumifier

Licence: LGPL-2.1 license
Get a Titanium™ SDK CommonJS module out of a Node package!

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to titaniumifier

liferay-connector
Liferay JSON WS wrapper for Node and Titanium SDK
Stars: ✭ 16 (-83.16%)
Mutual labels:  node-js, titanium-sdk
Phaser Node Kit
Rapid Game Development with PhaserJS and Node for Modern Browsers
Stars: ✭ 39 (-58.95%)
Mutual labels:  browserify, node-js
serverless-plugin-browserifier
Reduce the size and speed up your Node.js based lambda's using browserify.
Stars: ✭ 26 (-72.63%)
Mutual labels:  browserify, node-js
Common Shakeify
browserify tree shaking plugin using `common-shake`
Stars: ✭ 101 (+6.32%)
Mutual labels:  browserify, commonjs
Browserify Rails
Browserify + Rails = a great way to modularize your legacy JavaScript
Stars: ✭ 701 (+637.89%)
Mutual labels:  browserify, commonjs
Minipack
📦 A simplified example of a modern module bundler written in JavaScript
Stars: ✭ 2,625 (+2663.16%)
Mutual labels:  browserify, commonjs
whynote
Command Line Interface to Creating Notes/Tasks
Stars: ✭ 15 (-84.21%)
Mutual labels:  node-js
fn-rate
🌠 Rate the skins of Fortnite and see what skins are most appreciated!
Stars: ✭ 14 (-85.26%)
Mutual labels:  node-js
influx-crypto-watcher
Server that let you monitor many cryptocurrencies and store the OHLC data in InfluxDB (visualisation with grafana)
Stars: ✭ 49 (-48.42%)
Mutual labels:  node-js
gupack
基于gulp的前端构建工具
Stars: ✭ 13 (-86.32%)
Mutual labels:  browserify
Becoditive-API
The official API of beCoditive with many endpoints like memes, animals, image manipulation, url shortner, etc.
Stars: ✭ 14 (-85.26%)
Mutual labels:  node-js
typedarray-to-buffer
Convert a typed array to a Buffer without a copy.
Stars: ✭ 64 (-32.63%)
Mutual labels:  browserify
aws-sqs-sns-client
AWS SNS SQS client UI
Stars: ✭ 26 (-72.63%)
Mutual labels:  node-js
BotBlock.org
BotBlock - The List of Discord Bot Lists and Services
Stars: ✭ 29 (-69.47%)
Mutual labels:  node-js
ministun
A zero dependency STUN server
Stars: ✭ 26 (-72.63%)
Mutual labels:  node-js
moneywave-nodejs
A client library for moneywave API
Stars: ✭ 16 (-83.16%)
Mutual labels:  node-js
sdk-node
VULCAN UONET+ JavaScript SDK
Stars: ✭ 11 (-88.42%)
Mutual labels:  node-js
babyfoot
Simple CQRS/ES Node+Express+TypeScript REST API
Stars: ✭ 14 (-85.26%)
Mutual labels:  node-js
Node.js-Material-Starter-Template
Node.js Jade Material Starter Template
Stars: ✭ 17 (-82.11%)
Mutual labels:  node-js
cypress-browserify-preprocessor
Cypress preprocessor for bundling JavaScript via browserify
Stars: ✭ 23 (-75.79%)
Mutual labels:  browserify

Titaniumifier

Build Status npm Gitter

Build your Titanium CommonJS Modules as they should be: as CommonJS packages, allowing more than one file.

Developed around substack’s browserify, titaniumifier is a tool that can be used to build a zip file following Titanium SDK conventions with a package.json as its starting point.

Documentation

The Titaniumifier Wiki is where you’ll find the most up to date documentation.

Installation and usage

If you’re serious with it you can use the Grunt plugin.

If you just want to test it out you can use the titaniumifier CLI (good for quick tests):

# install it globally
$ [sudo] npm install --global titaniumifier

# move into a node package
$ cd path/to/project

# this will build dist/NAME-commonjs.VERSION.zip
$ titaniumifier --out dist

What is it for?

You’ll want to give titaniumifier a try if you want to write

  • a Titanium CommonJS distributable module
    • more complex than a single file,
    • some npm dependencies;
  • a package that works on both Node.js and Titanium SDK;
  • a wrapper for an existing package existing on npm.

Once you’re done writing your package you’ll be able to publish it on npm for users to

  • use it with Node.js;
  • include it as a dependency of a titaniumified package.

What is it not for?

Even with titaniumifier you still wont be ablo to

  • use or depend on ‘complex’ e ‘deeply node-ish’ packages like socket.io without work;
  • install Node.js packages in your app using npm install ...;

TODO

  • Make the built module easily debuggable from Titanium Studio (this is pretty big;)
  • Document and explore transpilation (this is a research mostly related to source maps/debug features;)
  • Make titaniumified repositories crawlable from gitTio;
  • Shim the following globals
    • Buffer with Titanium.Buffer
    • TypedArrays,
    • set/clearImmediate,
    • process.nextTick;
  • Shim the following built-ins
    • http,
    • net (with Titanium.Network.TCPSocket),
    • stream (and make fs work with it.)

The shimming process could be a community effort into the development of ti-http, ti-net etc. Contact us if you’re interested in working on it. In case don’t limit yourself to pure JS, give native development a chance.

Compatibility

Titanium SDK

The reference packages have been tested extensively from Titanium SDK 3.2 onward. There should be no reson for titaniumified packages to not work on older SDK versions.

Issues with Titanium SDK 3.x will be considered critical. With older versions we’ll try to do our best.

Because it does not mangle your Resources folder it is compatible with Alloy and TiShadow (and similars.) Please report any issue you have.

Node.js (in packages)

Currently Node.js 0.10 environment is shimmed in the packaging process. Once Node.js 0.12 is out there will be some interesting challenge to cope with (generators, WeakMap etc.)

Once that happens we’ll shim whatever is necessary.

Node.js (build-time)

This code is tested against Node.js 0.10 and 0.11.

Please steal this code (aka examples)

At the moment, you’ll use titaniumifier through its grunt plugin, grunt-titaniumifier.

There are 2 reference packages at the moment:

Contributing and whishlist

If you feel like helping, we’ll accept pull requests with great joy.

Here are a few ideas to help this project:

We love feedback

Please, don’t be afraid in opening new issues, even just for asking some help.

Credits

Humbly made by the spry ladies and gents at SMC.

License

This library, titaniumifier, is free software ("Licensed Software"); you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; including but not limited to, the implied warranty of MERCHANTABILITY, NONINFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].