GithubHelp home page GithubHelp logo

classicvalues / elemental2 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from google/elemental2

0.0 0.0 0.0 301 KB

Type checked access to browser APIs for Java code.

License: Apache License 2.0

Java 50.92% Shell 10.10% Starlark 38.98%

elemental2's Introduction

Elemental2 · Build Status

Elemental2 provides type checked access to all browser APIs for Java code. This is done by using closure extern files and generating JsTypes, which are part of the new JsInterop specification that is both implemented in GWT and J2CL.

Bazel dependencies

If your project uses Bazel, add this repository as an external dependency in your WORKSPACE file:

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "com_google_elemental2",
    strip_prefix = "elemental2-1.1.0",
    url = "https://github.com/google/elemental2/archive/1.1.0.zip",
)

load("@com_google_elemental2//build_defs:repository.bzl", "load_elemental2_repo_deps")
load_elemental2_repo_deps()

load("@com_google_elemental2//build_defs:workspace.bzl", "setup_elemental2_workspace")
setup_elemental2_workspace()

Now from you can add elemental2 targets as needed to your j2cl_library deps.

Following are the different elemental2 modules and their target names:

module Bazel targets for J2CL
core @com_google_elemental2//:elemental2-core-j2cl
dom @com_google_elemental2//:elemental2-dom-j2cl
promise @com_google_elemental2//:elemental2-promise-j2cl
indexeddb @com_google_elemental2//:elemental2-indexeddb-j2cl
svg @com_google_elemental2//:elemental2-svg-j2cl
webgl @com_google_elemental2//:elemental2-webgl-j2cl
media @com_google_elemental2//:elemental2-media-j2cl
webstorage @com_google_elemental2//:elemental2-webstorage-j2cl

Maven dependencies

If your project uses Maven, add the following maven dependencies in your pom.xml:

<dependency>
  <groupId>com.google.elemental2</groupId>
  <artifactId>${artifact-id}</artifactId>
  <version>1.1.0</version>
</dependency>
module artifact-id
core elemental2-core
dom elemental2-dom
promise elemental2-promise
indexeddb elemental2-indexeddb
svg elemental2-svg
webgl elemental2-webgl
media elemental2-media
webstorage elemental2-webstorage

Download the jar files

You can also download manually the jars files.

module jar file
core elemental2-core.jar
dom elemental2-dom.jar
promise elemental2-promise.jar
indexeddb elemental2-indexeddb.jar
svg elemental2-svg.jar
webgl elemental2-webgl.jar
media elemental2-media.jar
webstorage elemental2-webstorage.jar

GWT

Elemental2 v1.0.0+ requires GWT 2.9 or above.

If you use Elemental2 with GWT, you need to inherit the right gwt module in your gwt.xml file:

module GWT module name
core elemental2.core.Core
dom elemental2.dom.Dom
promise elemental2.promise.Promise
indexeddb elemental2.indexeddb.IndexedDb
svg elemental2.svg.Svg
webgl elemental2.webgl.WebGl
media elemental2.media.Media
webstorage elemental2.webstorage.WebStorage

Build GWT compatible maven jar files

If you want to modify and/or build the last version on your own, follow the instructions below:

    $ npm install -g @bazel/bazelisk
    $ alias bazel=bazelisk
  • Clone this git repository:
    $ git clone https://github.com/google/elemental2.git
  • Run the release script:
        $ cd elemental2
        $ ./maven/release_elemental.sh --version local --no-deploy

The script will output the directory containing the generated jar files that can be used with maven.

Contributing

Please refer to the contributing document.

Licensing

Please refer to the license file.

Disclaimer

This is not an official Google product.

elemental2's People

Contributors

bugreportuser avatar gkdn avatar ibaca avatar jdramaix avatar kant avatar lauraharker avatar niloc132 avatar nreid260 avatar paulcapron avatar realityforge avatar swuecho avatar tbroyer avatar tjgq avatar vegegoku avatar zbynek 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.