Javascript Framework
npm install exir
- What is eXir?
- Why eXir?
- Installation
- Package Manager
- From Source
- Getting Started
- Documentation & Tutorials
- Examples
What's included :
- Core Utils
- Extended Collection utilities: chunk, omit, join, etc.
- Function helpers: throttle, debounce, etc.
- String analyzers and transformers.
- Concise Type Checking: isNull, isObj, etc.
- DOM Utils
Basic DOM manipulation utility functions.
- Flexible, Fool-Proof element/class/attribute/style CRUD
- Painless, Predicable Event Handling
- Optional native method wrappers for addEventListener, etc. for debugging or other purposes
- HTTP Client/Methods
Examples
An elegant wrapper around XHR to satisfy your every request!
- Convenient Http Methods Get, Post, ...
- Supports Promises, async/await
- Timeout and retry
- Rate Limiting
- Request cancellation
- Web Components
Examples
Reusable/Dynamic pure js components (css-in-js included).
- Dynamically Rendered Components (virtual dom)
- Reactive State Management (beta)
- Routing (coming soon)
All of the above in a bundle of less than 15Kb gzipped, which could be the size of a whole web app using only what's necessary (tree-shaking).
---
shell script
$ npm i exir
`
`shell script
$ yarn add exir
`
$3
Clone the repository and install dependencies using your preferred package manager
`sh
$ git clone https://github.com/kasra-sh/exir.git
$ cd exir
$ npm install
`
To regenerate extensions and bundles, make sure you have Parcel installed globally:
`sh
$ npm run bundle
`
---Getting Started
$3
Include a monolithic bundle file directly in your html file, bundle files having "*-ext" suffix include extensions.
`html
`
$3
CommonJS require() example:
`js
// Core
// namespace
const X = require("exir/core");
// functions
const {join} = require("exir/core/collections");
const {debounce} = require("exir/core/functions");// Dom
// namespace
const Dom = require("exir/dom");
// functions
const {toggleClass} = require("exir/dom/classes");
// Http
// namespace
const Http = require("exir/http");
// http methods
const {sendGet, Post} = require("exir/http/methods");
// http client
const {XHttpClient} = require("exir/http/client");
// View-Model
const {mount, Component, VNode} = require("exir/vm/app");
// All Extensions
require("exir/ext");
// Collection Extensions
require("exir/ext/collections.ext");
// Dom Extensions
require("exir/ext/dom.ext");
`ECMAScript Modules(ESM)
import example:
`js
// Core
import {join, flatMap, debounce} from "exir/core/collections"// Dom
import {css, toggleClass, event} from "exir/dom"
// Http
import {XHttpClient, Get, sendPost} from "exir/http"
// View-Model
import {mount, Component, VNode} from "exir/vm/app"
// All Extensions
import "exir/ext";
// Collection Extensions
import "exir/ext/collections.ext";
// Dom Extensions
import "exir/ext/dom.ext";
``Also read Tutorials and Documentation