Giter VIP home page Giter VIP logo

tic-bundle's Introduction

tic-bundle logo

license GPLv3 npm tic-bundle

tic-bundle

Simple CLI tool for bundling TIC-80 cartridge code. Supports any language!

Content

Installation

// Yarn
yarn add tic-bundle --dev

// Npm
npm i tic-bundle --save-dev

Example

Config

{
  files: ['ui.js', 'main.js']
}

Input

src/main.js

function TIC() {

};

src/ui.js

function ui() {
  return 'ui';
};

Output

build.js

// script: js

function ui() {
  return 'ui';
};

function TIC() {

};

CLI

package.json

{
  "scripts": {
    "watch": "tic-bundle"
  }
}

CLI options

  • -r / --root - Root folder
  • -w / --wait - Wait interval
  • -c / --config - Path to config file
  • -o / --output - Bundled file output path
  • -n / --name - Bundle file name
  • -f / --file - Bundle file extension
  • -s / --script - Language

Configuration

tic-bundle supports config files. By default, tic-bundle looks for a .ticbundle.js file in the current directory, but an alternative location can be specified using -c <file> or --config <file>.

The specificity is as folows:

  • CLI
  • .ticbundle.js
  • .ticbundle.json
  • Default config

Default config

{
  root: 'src',
  wait: 200,
  metadata: {
    title: null,
    author: null,
    desc: null,
    script: 'js',
    input: null,
    saveid: null
  },
  output: {
    path: './',
    extension: 'js',
    name: 'build'
  },
  files: [],
  after: null
}

Options

  • root (default src) - Folder to watch.
  • wait (default 200) - Chokidar awaitWriteFinish.stabilityThreshold
  • metadata - Cartridge metadata
  • metadata.title - The name of the cart.
  • metadata.author - The name of the developer.
  • metadata.description - Optional description of the game.
  • metadata.script (default js) - Used scripting language.
  • metadata.input - Selects gamepad, mouse or keyboard input source.
  • metadata.saveid - Allows save data to be shared within multiple games on a copy of TIC.
  • output.path (default ./) - Bundled file output path.
  • output.extension (default js) - Bundle file output extension
  • output.name (default build) - Bundled file name.
  • files - Files to bundle. Files will be ordered by index (top first, bottom last).
  • after - Run after generating the bundle, this can be used to further modify the bundle.

Babel

after can be used to transform the bundled code. A common use-case for js is transforming ES6 syntax to ES5.

Example

.ticbundle.js

module.exports = {
  after: bundle => {
    const { code } = require('@babel/standalone').transform(bundle, {
      plugins: [require('@babel/plugin-transform-arrow-functions')]
    });
    
    return  code;
  }
};

Donating

ko-fi

tic-bundle's People

Contributors

chronodave avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.