JSPM

  • Created
  • Published
  • Downloads 8
  • Score
    100M100P100Q76090F
  • License MIT

Javascript Framework

Package Exports

  • xeer-js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (xeer-js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

XEER JS

npm License: MIT Gzipped Size Compatibility ES5

An experimental javascript framework aiming to be a complete prototyping framework (at least).

XEER framework contains :

  • Stream Processing ( lodash )
  • DOM Manipulation ( jQuery )
  • Async REST Client ( Axios )
  • VirtualDOM
  • Dynamic ViewModel Components ( React, Vue, Mithril, ... )

Installation

Package Manager

Simply use any package manager (npm, yarn, pnpm, ...) to install from npmjs.org shell script $ npm i xeer-js #### From Source Clone the repository and install dependencies using your prefered package manager sh $ git clone https://github.com/kasra-sh/xeer-js.git $ cd xeer-js $ npm install

Usage

Node module

Use any package manager (npm, yarn, pnpm, ...) to install from npmjs.org

$ npm i xeer-js

Bundled

Clone the repository and install dependencies using your prefered package manager

$ git clone https://github.com/kasra-sh/xeer-js.git
$ cd xeer-js
$ npm install
$ npm bundle

bundled files are generated in dist directory. xeer-bundle-es5.js supports IE9+ and xeer-bundle.js is for modern browsers supporting async/await syntax.

Extensions

Extensions are helper methods appended to prototypes which help make the code cleaner.
For example X.addClass($('div'), 'container') will become $('div').$addClass('container').
Extension method names all have $ prepended to their names to prevent method overrides or duplication.

How to use

  • If using a bundled version, extensions are enabled by default.
    <!-- Modern !-->
        <script src="xeer-bundle.js"></script>
    <!-- Legacy !-->
        <script src="xeer-bundle-es5.js"></script>
        <script>
          var obj = {
              ABC: "text1",
              ACD: "text2",
              BAR: 1
          }
          console.log(obj.$filter((v,k)=>k.$startsWith('A')));
          // Outputs object { ABC: "text1", ACD: "text2" }
        </script>
    <!-- ... !-->
  • If using as module in a node project:
    // All extensions
    require("xeer-js/ext"); 
    
    // Stream processing extensions
    require("xeer-js/stream.ext");  
    
    // DOM extensions
    require("xeer-js/dom.ext");

TODO

  • ViewModel Rendering
  • Documentation
  • Better code generation
  • Experiment with other packagers