2.5.6 • Published 1 month ago

@jay-js/system v2.5.6

Weekly downloads
-
License
MIT
Repository
github
Last release
1 month ago

@jay-js/system

@jay-js/system is a versatile and lightweight JavaScript library designed to help streamline your front-end development with useful utilities and components. It includes functionality for handling drag and drop, lazy-loading modules, managing application state, and client-side routing.

Installation

You can install the @jay-js/system package using either npm or yarn:

Using npm:

npm install @jay-js/system

Using yarn:

yarn add @jay-js/system

Usage

Draggable

Easily enable drag and drop functionality for your elements:

import { Draggable } from "@jay-js/system";

const element = document.getElementById("my-draggable-element");
Draggable(element,{
  onDragStart: (event) => {
    console.log("drag started", event);
  },
  onDrop: (event, element) => {
    console.log("dropped", event, element);
  }
});

LazyModule (Lazy Loading)

Lazy-load your modules to improve the performance of your application:

import { LazyModule } from "@jay-js/system";

const loaderElement = document.createElement("div");
loaderElement.innerHTML = "Loading...";

function MyLazyComponent(){
  return LazyModule({
    module: "MyComponent",
    import: () => import("./components/MyComponent"),
  }, loaderElement);
};

document.body.appendChild(MyLazyComponent());

State

Manage your application state efficiently:

import { State } from "@jay-js/system";

interface Person {
  name: string;
  age: number;
}

const person = State<Person>({
  name: "John",
  age: 30,
});

person.sub("mySubscription", (data) => {
  console.log("data changed", data);
});

person.set((data) => {
  data.name = "Jane";
  return data;
});

Router

Implement client-side routing with ease:

import { Router, Navigate } from "@jay-js/system";

const routes = [
  {
    path: "/",
    element: () => document.createElement("div"),
    target: document.getElementById("app"),
  },
  {
    path: "/about",
    element: () => document.createElement("div"),
    target: document.getElementById("app"),
  },
];

Router(routes);

document.getElementById("about-link").addEventListener("click", () => {
  Navigate("/about");
});

Additional Information

The @jay-js/system library is designed to be flexible and efficient. Its components and utilities can be easily integrated into your projects to improve your development experience. As your project grows, you can rely on the @jay-js/system library to keep your codebase maintainable and performant.

2.5.6

1 month ago

1.2.5

9 months ago

1.2.4

9 months ago

1.2.3

10 months ago

2.4.3

6 months ago

2.4.2

7 months ago

2.4.4

6 months ago

2.1.0

7 months ago

2.0.0

7 months ago

1.2.2

11 months ago

1.1.1

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago