open-index/open-npm huggingface dataset:
npm package: @khoohaoyit/nest-on-application-ready
Description: 🚀 A Nest module for executing tasks post initialization
Author: KhooHaoYit
Latest version: 0.0.1

# @khoohaoyit/nest-on-application-ready
🚀 A Nest module for executing tasks post initialization

## Installation
```bash
npm install @khoohaoyit/nest-on-application-ready
```

## Usage
Implement `OnApplicationReady`
```ts
// api.service.ts
@Injectable()
class ApiService implements OnApplicationReady {
  onApplicationReady() {
    // Add your initialization code here
    console.log('Application is ready. Starting execution...');
  }
}
```
Imports `OnApplicationReadyModule`
```ts
@Module({
  imports: [
    OnApplicationReadyModule
  ],
  providers: [
    ApiService
  ]
})
export class AppModule { }
```
Your code will now execute once Nest has completed its initialization process

## Technical Explaination
Behind the scenes, the `OnApplicationReadyModule` retrieves the underlying HTTP server and attaches a listener. This listener is triggered once the HTTP server successfully binds to a TCP port. Subsequently, it calls all modules, controllers, and providers that implement the `OnApplicationReady` interface.
npm package: @khoohaoyit/tailwind-grid-center
Description: A tailwind plugin that helps centering the last row on a grid
Author: KhooHaoYit
Latest version: 0.0.5

# @khoohaoyit/tailwind-grid-center

<a href="https://github.com/KhooHaoYit/tailwind-grid-center/blob/main/LICENSE">
  <img src="https://img.shields.io/npm/l/@khoohaoyit/tailwind-grid-center.svg" alt="License" />
</a>
<a href="https://github.com/KhooHaoYit/tailwind-grid-center/releases">
  <img src="https://img.shields.io/npm/dw/@khoohaoyit/tailwind-grid-center.svg" alt="Latest Release" />
</a>

A tailwind plugin that center items on last row in a grid.

## Installation

Install the plugin from npm:

```sh
npm i -D @khoohaoyit/tailwind-grid-center
```

Then add the plugin to your `tailwind.config.js` file:

```js
// tailwind.config.js
module.exports = {
  theme: {
    // ...
  },
  plugins: [
    require('@khoohaoyit/tailwind-grid-center'),
    // ...
  ],
};
```

## Usage

Use the `grid-cols-center-{n}` utilities to specify the amount of columns in a grid:

```html
<div class="grid grid-cols-center-3">
  <div>Item 1</div>
  <div>Item 2</div>
  <div>Item 3</div>
  <div>Item 4</div>
  <div>Item 5</div>
</div>
```

The respective utilities would generate:

```css
.grid-cols-center-3 {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.grid-cols-center-3 > * {
  grid-column: span 2;
}
.grid-cols-center-3 > *:nth-last-child(1):nth-child(3n + 1) {
  grid-column-end: -3;
}
.grid-cols-center-3 > *:nth-last-child(2):nth-child(3n + 1) {
  grid-column-end: -4;
}
.grid-cols-center-3 > *:nth-last-child(1):nth-child(3n + 2) {
  grid-column-end: -2;
}
```

> Note that the output it generates is polynomial, so `grid-cols-center-[10]` would generate 47 classes in total.

The gridline would look like this:

![Gridline Visual](./images/gridline.png)

To use it with [`responsive modifiers`](https://tailwindcss.com/docs/responsive-design), you need to use `tailwindcss@^3.2` using [`max-width` or `dynamic breakpoints`](https://tailwindcss.com/blog/tailwindcss-v3-2#max-width-and-dynamic-breakpoints):

```html
<div class="grid max-sm:grid-cols-center-2 sm:max-lg:grid-cols-center-3 lg:grid-cols-center-4">
  ...
</div>
```

## Configuration

You can configure which values are generated by this plugin under the `gridTemplateColumnsCenter` key in your `tailwind.config.js` file:

```js
// tailwind.config.js
module.exports = {
  theme: {
    extend: {
      gridTemplateColumnsCenter: {
        13: '13',
        14: '14',
        15: '15',
        16: '16',
      },
    },
  },
};
```

Utilities for centering items in a grid are generated up to 12 columns by default.

## Links
 - [How it works](https://css-irl.info/controlling-leftover-grid-items) by css-irl.info
npm package: @khooks/use-title
Description: React Hook to update your document's title.
Author: LeeKyungHo
Latest version: 1.0.0

# @kooks/use-title

React Hook to update your document's title.

## Installation

#### yarn

`yarn add @nooks/use-title`

#### npm

`npm i @nooks/use-title`

## Usage

```js
import React from 'react';
import useTitle from '@nooks/use-title';

function App() {
  useTitle('Welcome');
  return <h1>Welcome</h1>;
}
```

### Arguments

| Argument | Type   | Description                                | Required |
| -------- | ------ | ------------------------------------------ | -------- |
| title    | string | The title you want to use on your document | yes      |
npm package: @khopha/img-player
Description: A lightweight JavaScript library that renders image sequences with video-like controls.
Latest version: 0.1.2

# @khopha/img-player

A lightweight JavaScript library that renders image sequences with video-like controls.

[![npm version](https://img.shields.io/npm/v/@khopha/img-player)](https://npmjs.com/package/@khopha/img-player)
[![npm license](https://img.shields.io/npm/l/@khopha/img-player)](https://npmjs.com/package/@khopha/img-player)

## Installation

To install the library, run:

```bash
npm i @khopha/img-player
```

## Usage

Create an imgPlayer object by passing an HTML element and options, then call the play function to start playback. That's it!

```html
<div id="img-player"></div>
```

```js
import { imgPlayer } from '@khopha/img-player'

const element = document.getElementById('img-player')

const images = [
  'path/to/image/1',
  'path/to/image/2',
]

const player = imgPlayer(element, {
  srcList: images
})

player.play()
```

## Options

These are the available options for creating an imgPlayer object:

```js
const player = imgPlayer(element, {

  // List of image sources. Default is an empty array.
  srcList: [],

  // Automatically play the player after creating an object. Default is false.
  autoplay: true,

  // Playback speed of the player. Default is 1.
  playbackSpeed: 1,

  // Event triggered when play is called.
  onPlay: () => {
    console.log('play')
  },

  // Event triggered when pause is called.
  onPause: () => {
    console.log('pause')
  },

  // Event triggered when stop is called.
  onStop: () => {
    console.log('stop')
  },

  // Event triggered when the index is updated, with the index of the image passed as a parameter.
  onIndexUpdate: (index) => {
    console.log(index)
  },
})
```

## Functions

You can call these functions on an imgPlayer object:

```js
// Play
player.play()

// Pause
player.pause()

// Stop
player.stop()

// Get the current image index
player.getIndex()

// Set the current image to a specific index
player.setIndex(index)

// Set playback speed
player.setPlaybackSpeed(1.5)
```

## License

MIT
npm package: @khorark/react-native-app-metrica
Description: react-native-app-metrica
Author: khorark
Latest version: 1.8.0


# react-native-app-metrica

## Getting started

`$ npm install @khorark/react-native-app-metrica --save`

### Mostly automatic installation

`$ react-native link @khorark/react-native-app-metrica`

#### For iOS
1. In XCode, in the project navigator, select your project. Removed `libRNAppMetrica.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`
2. Add in your Podfile 
`pod 'RNAppMetrica', :path => '../node_modules/@khorark/react-native-app-metrica'`
3. Run `pod install`

### Manual installation


#### iOS

1. Add in your Podfile 
`pod 'RNAppMetrica', :path => '../node_modules/@khorark/react-native-app-metrica'`
2. Run `pod install`


#### Android

1. Open up `android/app/src/main/java/[...]/MainActivity.java`
  - Add `import com.reactlibrary.RNAppMetricaPackage;` to the imports at the top of the file
  - Add `new RNAppMetricaPackage()` to the list returned by the `getPackages()` method
2. Append the following lines to `android/settings.gradle`:
  	```
  	include ':@khorark_react-native-app-metrica'
   project(':@khorark_react-native-app-metrica').projectDir = new File(rootProject.projectDir, '../node_modules/@khorark/react-native-app-metrica/android')
  	```
3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:
  	```
   implementation project(':@khorark_react-native-app-metrica')
  	```

## Usage
```javascript
import AppMetrica from '@khorark/react-native-app-metrica';

// For activated metric
AppMetrica.activateWithApiKey(key);

// For send event
AppMetrica.reportEvent(key, params?);
```
npm package: @khorark/react-native-swipeable-flatlist
Description: A simple and fast react-native swipeable flastlist component
Author: Khoroshikh Arkadiy
Latest version: 0.2.0

# React Native Swipeable FlatList [![NPM version][npm-image]][npm-url]

A simple and fast React Native swipeble flatlist component. Supports both iOS and Android.

<img src="https://raw.githubusercontent.com/khorark/react-native-swipeable-flatlist/master/demo.gif" width="400">

## Installation

```sh
npm i --save @khorark/react-native-swipeable-flatlist
```

## Usage

```javascript
import SwipebleList from '@khorark/react-native-swipeable-flatlist';

function MyListItem() {
    return (
        <View>
            <SwipebleList
                data={[1, 2, 3]}
                renderItem={this.renderItem}
                keyExtractor={this.keyExtractor}
                leftColor={'green'}
                rightColor={'blue'}
                onSwipeLeft={this.onSwipe}
                onSwipeRight={this.onSwipe}
            />
        </View>
    );
}
```

### Props

| prop                  | type       | default                  | description                                                          |
| --------------------- | ---------- | ------------------------ | -------------------------------------------------------------------- |
| `swipeDistanceActive` | integer    | 0.3                      | swipeable distance for active swipe                                  |
| `leftView`            | renderable | `null`                   | (optional) left content visible during pull action                   |
| `rightView`           | renderable | `null`                   | (optional) right content visible during pull action                  |
| `leftColor`           | string     | rgba(146, 149, 181, 0.7) | (optional) background color for left content                         |
| `rightColor`          | string     | rgba(132, 147, 158, 0.7) | (optional) background color for left content                         |
| `onSwipeLeft`         | function   | `null`                   | (optional) user has swiped beyond `swipeDistanceActive` and released |
| `onSwipeRight`        | function   | `null`                   | (optional) user has swiped beyond `swipeDistanceActive` and released |

## Example

## License

MIT

[npm-image]: https://badge.fury.io/js/%40khorark%2Freact-native-swipeable-flatlist.svg
[npm-url]: https://www.npmjs.com/package/@khorark/react-native-swipeable-flatlist
npm package: @khorark/rn-in-app-update
Description: test
Author: Khoroshikh Arkadii
Latest version: 1.1.2

# rn-in-app-update

Package for in-app update your app

## Description
Android update use native SDK for in-app update.
## Installation

```sh
npm install @khorark/rn-in-app-update --save

cd ios && pod install
```

## Usage

Use hook for check update

```js
import { useInAppUpdate } from '@khorark/rn-in-app-update';

// ...

const App = () => {
  useInAppUpdate();

  return <MainComponent />;
};
```

Use func for check update

```js
// ...
import { checkUpdate } from '@khorark/rn-in-app-update';
// ...

const App = () => {
  return <Pressable onPress={checkUpdate}>/* ... */ </Pressable>;
};
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)