Giter Site home page Giter Site logo

clulib's Introduction

clulib - closure-library utilities

Build status npm version MIT license

Sauce Test Status

Clulib is a JavaScript library that aims to complement google's closure-library. Some parts build ontop of existing closure classes (e.g. the ComponentManager), while other parts provide useful functionality not present inside the closure-library.

Usage

To use clulib, install the closure-library and closure-compiler packages. Recommended versions for both are 20170626.0.0 or higher.

Example package.json:

"google-closure-compiler": "20170626.0.0",
"google-closure-library": "20170626.0.0",

To include clulib, include all files under ./src into your build process. All modules are prefixed with clulib (e.g. clulib.array).

Clulib is written with closure's goog.module system. See goog.module: an ES6 module like alternative to goog.provide on the closure-compiler wiki page, for infos on how to use it.

Clulib heavily uses newer ECMAScript features. The closure-compiler can compile these down to ES5. The required input language compiler option for clulib is ECMASCRIPT_2017. Because of this, uncompiled code can only run on current Browsers (Chrome is recommended).

Clulib is compatible with closure's ADVANCED_OPTIMIZATIONS mode.

This project follows Semantic Versioning as closely as possible.

Running the test specs

Checkout https://github.com/b-strauss/clulib.git

Required tools:

  • Python
  • Java
  • Yarn
  • Chrome Browser

Run yarn install to install all npm packages.

To generate the closure deps for local testing run: yarn deps. The html file under ./spec_runner_dev.html can then run the uncompiled test code. Because of the newer ECMAScript features, this requires a modern browser (Chrome is recommended).

To generate the compiled and minified version for local testing run: yarn compile. The html file under ./spec_runner_prod.html can then run the compiled test code on all supported Browsers. You can also run yarn compile-debug to compile with assertions enabled for testing, this enables additional runtime checks but significantly increases the output size. yarn compile-nti will compile using closure's new type inference.

The command yarn test starts a local karma test runner on Chrome and runs all test specs that have been compiled with yarn compile.

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.