open-index/open-npm huggingface dataset:
npm package: @lomray/eslint-config
Description: This package provides Lomray eslint config as an extensible shared config.
Author: Mikhail Yarmaliuk
Latest version: 6.0.3

# eslint-config

This package provides Lomray eslint config as an extensible shared config.

## Usage

1. Install package:

  ```sh
  npm i --save-dev @lomray/eslint-config
  ```

2. Add config to your `eslint.config.js`
```js
import lomrayConfig from '@lomray/eslint-config';

export default [
    ...lomrayConfig.recommended, // without files and ignores
    // or
    ...lomrayConfig.config(), // with predefined files and ignores
    // or
    ...lomrayConfig.config({ here: 'your config to exend' }),
];
```
npm package: @lomray/eslint-config-react
Description: This package provides Lomray eslint config as an extensible shared config for React.
Author: Mikhail Yarmaliuk
Latest version: 6.0.3

# eslint-config-react

This package provides Lomray eslint config as an extensible shared config for React.

## Usage

1. Install package:

  ```sh
  npm i --save-dev @lomray/eslint-config-react
  ```

2. Add config to your `eslint.config.js`
```js
import lomrayConfig from '@lomray/eslint-config-react';

export default [
    ...lomrayConfig.recommended, // without files and ignores
    // or
    ...lomrayConfig.config(), // with predefined files and ignores
    // or
    ...lomrayConfig.config({ here: 'your config to exend' }),
];
```
npm package: @lomray/event-manager
Description: This package provides event manager on typescript for any js project.
Author: Mikhail Yarmaliuk
Latest version: 2.0.2

# Event manager on Typescript

This package provides simple event manager on typescript for any JS/TS project (React/React Native/NodeJS).

<p align="center">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=event-manager-lib&metric=reliability_rating" alt="reliability">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=event-manager-lib&metric=security_rating" alt="Security Rating">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=event-manager-lib&metric=sqale_rating" alt="Maintainability Rating">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=event-manager-lib&metric=vulnerabilities" alt="Vulnerabilities">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=event-manager-lib&metric=bugs" alt="Bugs">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=event-manager-lib&metric=ncloc" alt="Lines of Code">
  <img src="https://img.shields.io/bundlephobia/minzip/@lomray/event-manager" alt="size">
  <img src="https://img.shields.io/npm/l/@lomray/event-manager" alt="size">
  <img src="https://img.shields.io/npm/v/@lomray/event-manager?label=semantic%20release&logo=semantic-release" alt="semantic version">
</p>

## Usage

1. Install package:

```sh
  npm i --save @lomray/event-manager
```

2. Add subscribers and emitters:
```typescript
import EventManager from '@lomray/event-manager';

interface IDemoChannelData {
    prop1: string;
    prop2: number;
}

enum Channel {
    demo = 'demo'
}

// Listen event on channel (don't forget call unsubscribe for remove litener)
const unsubscribe = EventManager.subscribe<IDemoChannelData>(Channel.demo, (data) => {
    console.log(data);
});

// Publish some data to channel
setInterval(() => {
  EventManager.publish<IDemoChannelData>(Channel.demo, { prop1: 'hi', prop2: 1 });
}, 5000);
```

Working example for react:
```typescript
const DemoComponent = () => {
    useEffect(() => {
      const unsubscribe = EventManager.subscribe<IDemoChannelData>(Channel.demo, (data) => {
        console.log(data);
      });
      
      return () => {
        unsubscribe();
      }
    });
}
```
npm package: @lomray/google-tag-manager
Description: Google Tag manager service.
Author: Mikhail Yarmaliuk
Latest version: 1.0.4

<h1 align='center'>Google Tag Manager service</h1>

<h2 align='center'>Supports any popular frontend framework</h2>

<p align="center">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=google-tag-manager&metric=reliability_rating" alt="reliability">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=google-tag-manager&metric=security_rating" alt="Security Rating">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=google-tag-manager&metric=sqale_rating" alt="Maintainability Rating">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=google-tag-manager&metric=vulnerabilities" alt="Vulnerabilities">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=google-tag-manager&metric=bugs" alt="Bugs">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=google-tag-manager&metric=ncloc" alt="Lines of Code">
  <img src="https://sonarcloud.io/api/project_badges/measure?project=google-tag-manager&metric=coverage" alt="code coverage">
  <img src="https://img.shields.io/npm/v/@lomray/google-tag-manager?label=semantic%20release&logo=semantic-release" alt="semantic version">
</p>

## Table of contents
- [Getting started](#getting-started)
- [How to use](#how-to-use)
- [Bugs and feature requests](#bugs-and-feature-requests)
- [License](#license)

## Getting started

The package is distributed using [npm](https://www.npmjs.com/), the node package manager.

```
npm i --save @lomray/google-tag-manager
```

## How to use
```typescript
import GoogleTagManager from '@lomray/google-tag-manager';

const manager = new GoogleTagManager();

useEffect(() => {
  manager.init({ gtmId: GTM_ID });
}, []);


const onButtonClick = () => {
  manager.pushEvent({ my: 'data' });
}

```

## Bugs and feature requests

Bug or a feature request, [please open a new issue](https://github.com/Lomray-Software/google-tag-manager/issues/new).

## License
Made with 💚

Published under [MIT License](./LICENSE).
npm package: @lomray/homebridge-co2-level
Description: This plugin show a CO2 air quality accessory that you can switch to the "detected" state when the level reaches a threshold.
Author: Mikhail Yarmaliuk
Latest version: 1.0.5

<p align="center">
  <a href="https://github.com/homebridge/homebridge"><img src="https://raw.githubusercontent.com/homebridge/branding/master/logos/homebridge-color-round-stylized.png" height="140"></a>
</p>

<span align="center">

# homebridge-co2-level

[![npm](https://img.shields.io/npm/v/@lomray/homebridge-co2-level.svg)](https://www.npmjs.com/package/@lomray/homebridge-co2-level) [![npm](https://img.shields.io/npm/dt/@lomray/homebridge-co2-level.svg)](https://www.npmjs.com/package/@lomray/homebridge-co2-level)

</span>

## Description

This plugin shows a CO2 air quality accessory that you can switch to the "detected" state when the level reaches a threshold.

Example config:
```
{
    axiosConfig: {
        url:     'http://example.loc', // get CO2 data
        method:  'GET',
        timeout: 3000, // request timeout
    },
    loginUrl:    'http://example.loc/?login=1', // not required. If need login before request CO2 value
    valuePath:   'data.ADC.value', // Path to obtain value from response
    calculate:   'ppm', // ppm,percent,none

    interval:  20, // refresh interval in seconds
    threshold: 1000, // set alarm detect in ppm or % (depends on `calculate`)
}
```
npm package: @lomray/metro-custom-path-resolver
Description: Metro bundler custom path resolver
Author: Yarmaliuk Mikhail
Latest version: 1.0.0

# Metro Custom Path Resolver

.  
└── src  
    ├── assets  
    │   └── sample-icon.jpg  
    ├── components  
    │   └── sample-component.js  
    ├── custom-dir  
    │   ├── assets  
    │   │   └── sample-icon.jpg  
    │   └── components  
    │       └── sample-component.js  
    └── index.js  

Content index.js:
```js
import image from 'assets/sample-icon.jpg';
import { DemoComponent } from 'components/sample-component.js';

...
```

This module, resolve original ``sample-icon.jpg`` and ``sample-component.js`` from `custom-dir`, if they exist.

PS: For import an original module from resolved, use a relative path instead alias, in other cases, use aliases.

## Installation & Usage

First, install the npm module.

```sh
npm install --save-dev @lomray/metro-custom-path-resolver
```

Next, enable hot reloading in your webpack config:  
1. Import in metro.config.js:
    ```js
    const path               = require('path')
    const fs                 = require('fs')
    const CustomPathResolver = require('@lomray/metro-custom-path-resolver')
   
    const appDirectory = fs.realpathSync(process.cwd())
    const resolveApp   = relativePath => path.resolve(appDirectory, relativePath)
    ```
2. Add the module to the `resolve` / `plugins` array:
    ```js
    module.exports = {
       resolver:    {
           resolveRequest: CustomPathResolver({
               excludePath: /(custom-dir|node_modules)/,
               rootPath:    resolveApp('src/'),
               projectPath: resolveApp(`src/custom-dir/`),
           })
       }
    }
    ```

You're all set!