open-index/open-npm huggingface dataset:
npm package: @hesamse/eslint-plugin-recommended
Description: An ESLint plugin with custom rules for TypeScript projects, including a rule to enforce the presence of JSX elements in `.tsx` files. Ideal for projects using React with TypeScript.
Author: hesamse
Latest version: 1.0.1


# @hesamse/eslint-plugin-recommended

An ESLint plugin with custom rules for TypeScript projects, including a rule to enforce the presence of JSX elements in `.tsx` files. Ideal for projects using React with TypeScript.

## Features

- **`no-tsx-without-jsx`**: Enforces that `.tsx` files contain JSX elements. If a `.tsx` file does not include any JSX, this rule will report an error, encouraging you to use the correct file extensions (`.ts` instead of `.tsx` when JSX is not used).

## Installation

First, install the plugin using npm:

```bash
npm install --save-dev @hesamse/eslint-plugin-recommended
```

Or with yarn:

```bash
yarn add --dev @hesamse/eslint-plugin-recommended
```

## Usage

To use this plugin, include it in your ESLint configuration:

### `eslint.config.js`

If you are using `eslint.config.js`:

```javascript
import hesamseRecommended from '@hesamse/eslint-plugin-recommended';

export default {
  parser: '@typescript-eslint/parser',
  plugins: {
    '@hesamse/recommended': hesamseRecommended,
  },
  rules: {
    '@hesamse/recommended/no-tsx-without-jsx': 'error',
  },
  overrides: [
    {
      files: ['**/*.tsx'],
      rules: {
        '@hesamse/recommended/no-tsx-without-jsx': 'error',
      },
    },
  ],
};
```

### `.eslintrc.json` (if you still prefer JSON configuration)

```json
{
  "parser": "@typescript-eslint/parser",
  "plugins": ["@hesamse/recommended"],
  "rules": {
    "@hesamse/recommended/no-tsx-without-jsx": "error"
  },
  "overrides": [
    {
      "files": ["**/*.tsx"],
      "rules": {
        "@hesamse/recommended/no-tsx-without-jsx": "error"
      }
    }
  ]
}
```

## Rule: `no-tsx-without-jsx`

### What does it do?

The `no-tsx-without-jsx` rule ensures that files with a `.tsx` extension contain at least one JSX element. This helps maintain consistency in your project by enforcing the use of `.tsx` files only when necessary. If no JSX is present, consider renaming the file to `.ts`.

### Example

#### ✅ Valid

```tsx
// myComponent.tsx
import React from 'react';

const MyComponent = () => <div>Hello, World!</div>;

export default MyComponent;
```

#### ❌ Invalid

```tsx
// myUtility.tsx
export function myUtilityFunction() {
  return 42;
}
```

The above code would trigger an error, suggesting that the file should be renamed to `.ts` since no JSX is present.

## Contributing

Contributions are welcome! If you want to add new rules or improve existing ones, feel free to fork the repository and open a pull request.

## License

MIT © [hesamSe](https://github.com/hesamSe)
npm package: @hesapkurdu/axios-helper
Description: Developed for easy integration of progress spinner and error handler into axios.
Latest version: 2.0.0

## Axios Helper

Developed for easy integration of progress spinner and error handler into axios.

![npm](https://img.shields.io/npm/v/@hesapkurdu/axios-helper)
![license](https://img.shields.io/npm/l/@hesapkurdu/axios-helper)
![size](https://img.shields.io/bundlephobia/min/@hesapkurdu/axios-helper)

## Installation

Use node package manager to install @hesapkurdu/axios-helper.

```bash
npm i @hesapkurdu/axios-helper
```

## Basic Usage

```typescript
// dataService.ts

// First parameter must be axios for all services.
const getData = (axios, ...otherParams) => {
  return axios.get('url');
};

export default {
  getData,
};
```

Initialize it in the root component.

```typescript
// Root.tsx
import { AxiosProvider, OptionsOfServices } from '@hesapkurdu/axios-helper';

import dataService from './dataService';

import App from './App';

export const services = {
  dataService,
};

const options: OptionsOfServices<keyof typeof services> = {
  dataService: {
    headers: { Authorization: 'token' },
    isLoadingBlocked: false,
    isErrorHandlerBlocked: false,
    handleErrorsBy: 'status',
    handleErrorsWith: { '404': 'not found' }, // format must be {[status]: 'error message'} and depends on the handleErrorsBy option
  },
};

const errorHandler = (errorMessage) => {
  // Globally handle error message in here.
  // console.log(errorMessage);
  // alert(errorMessage);
};

const Root = () => {
  return (
    <AxiosProvider services={services} options={options} errorHandler={errorHandler}>
      <App />
    </AxiosProvider>
  );
};

export default Root;
```

Place your progress spinner in a suitable component.

```typescript
// App.tsx

import { useContext } from 'react';

import { AxiosContext } from '@hesapkurdu/axios-helper';

import HomePage from './HomePage';

const ProgressSpinner = () => <p>Progress Spinner</p>;

const App = () => {
  const { isLoading } = useContext(AxiosContext);

  return (
    <div>
      <HomePage />
      {isLoading && <ProgressSpinner />}
    </div>
  );
};

export default App;
```

Use axios everywhere.

```typescript
// HomePage.tsx

import { useEffect } from 'react';

import { useAxios } from '@hesapkurdu/axios-helper';

import services from './Root.tsx';

const HomePage = () => {
  // services can be imported with configured axios.
  const {
    services: { dataService },
  } = useAxios<typeof services>();

  useEffect(() => {
    const getData = async () => {
      try {
        const { data } = dataService.getData();
      } catch (error) {
        if (!error?.config?.handled) {
          // you can handle the errors that is not handled by the global error handler in here.
        }
      }
    };
    getData();
  }, []);

  return <p>Home Page</p>;
};

export default HomePage;
```
npm package: @hesapkurdu/react-drop-zone
Description: Package to upload and convert files with drop zone
Latest version: 1.2.3

## React Drop Zone

Package to upload and convert files with drop zone

![npm](https://img.shields.io/npm/v/@hesapkurdu/react-drop-zone)
![license](https://img.shields.io/npm/l/@hesapkurdu/react-drop-zone)
![size](https://img.shields.io/bundlephobia/min/@hesapkurdu/react-drop-zone)

## Installation

Use node package manager to install @hesapkurdu/react-drop-zone.

```bash
npm i @hesapkurdu/react-drop-zone
```

## Basic Usage

```typescript
import { DropZone, useDropZone } from '@hesapkurdu/react-drop-zone';

const App = () => {
  // converted files will be available in files array
  // fileInDropZone can be used to style component when any file drag over the drop zone
  // fileList is the original list that comes from event
  // control needs to be given to the component to get updated states
  // 'File' is the default value for the getFilesAs, if it is not provided
  const { files, control, fileList, totalFileSize, errors, triggerMethod, fileInDropZone } = useDropZone({
    getFilesAs: 'base64',
  });

  // default components can be overwritten with buttonComponent
  // and contentComponent or container style can be updated via className
  return <DropZone multiple accept={['.png']} control={control} />;
};
```
npm package: @hesenger/react-simpletable
Description: Simple table component to render json data from local or remote
Author: hesenger
Latest version: 0.3.1

# react-simpletable

> Simple table component to render json data from local or remote

[![NPM](https://img.shields.io/npm/v/@hesenger/react-simpletable.svg)](https://www.npmjs.com/package/@hesenger/react-simpletable)
[![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

SimpleTable comes with support to:
- Local data
- Remote data
- Themes

[See live examples here](https://hesenger.com/react-simpletable).

All size of projects need powerfull and customizable components, but data
driven software usually have many CRUDS to simple manage data in single tables, 
in this case, productivity comes to be a good partner, and a simple declarative 
component to list local or remote data is a must.

In this cases `react-simpletable` is a fast option to show users data and let them 
select wich they want to change/delete.


## Install

```bash
npm i @hesenger/react-simpletable
```

## Usage

```jsx
import React from 'react';
import ReactDOM from 'react-dom';
import Table from 'react-simpletable';
import 'react-simpletable/dist/index.css';

const App = () => {
  const [data, setData] = React.useState([]);
  const [current, setCurrent] = React.useState();

  if (!data.length)
    fetch('https://jsonplaceholder.typicode.com/users')
      .then(resp => resp.json())
      .then(data => setData(data));

  return <>
    <Table data={data} onSelect={row => setCurrent(row)}>
      <Table.Col name="id" header="#" />
      <Table.Col name="username" header="Username" />
      <Table.Col name="name" header="Name" />
      <Table.Col name="email" header="E-mail" />
      <Table.Col header="Site" format={obj => <a href={'http://' + obj.website}>{obj.website}</a>} />
    </Table>
    <p>
      Current selection: {JSON.stringify(current)}
    </p>
  </>;
}

ReactDOM.render(<App />, document.getElementById('root'))
```

## License

MIT © [hesenger](https://github.com/hesenger)
npm package: @heseya/advanced-ui-modules-sdk
Description: ## Instalation
Author: Heseya
Latest version: 1.4.7

# UI Modules SDK

## Instalation

```bash
$ yarn add @heseya/advanced-ui-modules-sdk
# or
$ npm i @heseya/advanced-ui-modules-sdk
```

## Development

```bash
# Install dependencies
$ yarn

# Build in watch mode
$ yarn dev

# Build npm package
$ yarn build

# Run tests
$ yarn test

# Publish package to npm
$ yarn publish
```

## Initialization

You can initialize the API Service by calling the `createAdvancedUiModulesApiService` function. It is important to pass the `axios` instance to the function.

Axios instance needs to be configured to use the URL of the UI Modules API. Without it the SDK will not be able to make requests to the API.

Remember to enhance axios instance with proper headers (`X-Core-Url`) and `Identity Token` based authentication.

```ts
import axios from 'axios'
import { createHeseyaApiService, HeseyaApiService } from '@heseya/store-core'

const axiosInstance = axios.create({ baseURL: 'https://api.example.com' })

const heseya: HeseyaApiService = createHeseyaApiService(axiosInstance)
```
npm package: @heseya/store-core
Description: [![NPM version](https://img.shields.io/npm/v/@heseya/store-core)](https://www.npmjs.com/package/@heseya/store-core) [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fheseya%2Fsdk-core.svg?type=shield)](https://app.fossa.com/projects/g
Author: Heseya
Latest version: 7.1.0-beta.5