open-index/open-npm huggingface dataset:
npm package: @niradler55/schedulerjs
Description: Scheduler for node js to timing time base tasks.
Author: Nir Adler
Latest version: 1.0.2

## SchedulerJs

Scheduler for node js to timing time base tasks.

### How to use

- npm i --save @niradler55/schedulerjs

```javascript
const Scheduler = require('@niradler55/schedulerjs/dist');
const sch = new Scheduler();
const task = {
    title: 'example',
    fn: () => console.log('run every 1 second, success', new Date()),
    onFailed: (e) => console.log(e),
    repeatPeriod: 1000,
    isRepeat: true,
  };

  sch.start();
  sch.addTask(task)
```

### APIs

#### .start

`.start` 

init the scheduler, and start looking for tasks.

#### .addTask

`.addTask(task, [tasks...])`

`.addTask` take one task or array of tasks.

add task or tasks to tasks list.

#### .stop

`.stop`

stop looking for tasks (going idle).

#### .getLogByProcessId

`.getLogByProcessId(processId)`

`.getLogByProcessId`

return log for the current instance or by given id.

#### .updateTask

`.updateTask(locString, task)`

`.updateTask`

update task at location.

#### .deleteTask

`.deleteTask(locString)`

`.deleteTask`

delete task at location.

### Properties

#### .log

`.log`

get all log event

#### .tasks

`.tasks`

get all tasks
npm package: @niradler55/timejs
Description: Helper class to help manage time base function.
Author: Nir Adler
Latest version: 1.0.1

# timejs
Helper class to help manage time base function.

## Getting Started

- npm i @niradler55/timejs
- include: require('@niradler55/timejs') or import from ('@niradler55/timejs')

## Demo
- server: [demo source](https://github.com/niradler/timejs/blob/master/examples.js)
- client: [source](https://github.com/niradler/timejs/blob/master/index.html) [demo](https://niradler.github.io/timejs/)
npm package: @nirajbagdi/react-masonry
Description: A lightweight, responsive masonry layout component for React.
Author: Niraj Bagdi
Latest version: 1.0.4

# 🧱 @nirajbagdi/react-masonry

> A lightweight, responsive masonry layout component for React.

---

## ✨ Features

-   **⚡ Tiny & Fast** – ~2.5KB gzipped, no dependencies
-   **📱 Responsive by Design** – Set custom columns per screen size
-   **🎨 Highly Customizable** – Change gaps, breakpoints, and base columns
-   **💡 No Extra CSS** – All layout logic is inline styles
-   **🛡 Built for TypeScript** – Full typings out of the box

---

## 🎥 Demo

https://github.com/user-attachments/assets/efcf13c7-be2d-44bd-9ee1-a8eb39f690cc

---

## 📦 Installation

```bash
npm install @nirajbagdi/react-masonry

# or

yarn add @nirajbagdi/react-masonry
```

---

## 🚀 Usage

### Basic Example

```tsx
import Masonry from '@nirajbagdi/react-masonry';

export default function App() {
    return (
        <Masonry>
            <div style={{ background: '#f88', height: 100 }}>Item 1</div>
            <div style={{ background: '#8f8', height: 150 }}>Item 2</div>
            <div style={{ background: '#88f', height: 200 }}>Item 3</div>
            <div style={{ background: '#ff8', height: 120 }}>Item 4</div>
        </Masonry>
    );
}
```

### Responsive with Breakpoints

```tsx
<Masonry
    defaultColumns={4}
    breakpoints={{
        480: 1,
        768: 2,
        1024: 3,
        1440: 4,
    }}
    gap="1rem"
>
    {Array.from({ length: 10 }).map((_, i) => (
        <div
            key={i}
            style={{
                background: '#eee',
                height: 80 + i * 20,
            }}
        >
            Item {i + 1}
        </div>
    ))}
</Masonry>
```

---

## ⚙️ Props

| Prop             | Type                     | Default                                | Description                                   |
| ---------------- | ------------------------ | -------------------------------------- | --------------------------------------------- |
| `defaultColumns` | `number`                 | `4`                                    | Number of columns when no breakpoint matches. |
| `breakpoints`    | `Record<number, number>` | `{ 480: 1, 768: 2, 1024: 3, 1440: 4 }` | Map of viewport width (px) to column count.   |
| `gap`            | `number \| string`       | `"1.6rem"`                             | Gap between columns and items.                |
| `className`      | `string`                 | `undefined`                            | Custom class for the container.               |
| `children`       | `React.ReactNode`        | —                                      | Masonry items to display.                     |

---

## 🛠 How it Works

-   ResizeObserver watches the container width
-   Chooses the right column count based on your breakpoints
-   Splits children into evenly distributed columns
-   Uses flex layout for minimal CSS

---

## 📜 License

MIT © [Niraj Bagdi](https://github.com/nirajbagdi)