open-index/open-npm huggingface dataset:
npm package: @nasi/js-sexplib0
Description: Port of Jane Street's Sexplib0 to ReScript
Latest version: 0.0.0-unstable.2

"Sexplib0 - a low-dep version of Sexplib"
=========================================

`sexplib0` is a lightweight portion of `sexplib`, for situations where a
dependency on `sexplib` is problematic.

It has the type definition and the printing functions, but not parsing.

See  [sexplib](https://github.com/janestreet/sexplib) for documentation.
npm package: @nasi/ppx-remove-deriving
Description: [Esy dependency] Removes unrecognised [@@deriving] extensions by ReScript
Latest version: 0.1.2

# ppx-remove-deriving

This PPX rewriter attempts to remove all [@@deriving] derivers unknown to ReScript. This allows you to use any Ppxlib-compatible derivers such as ppx_let, ppx_compare, ppx_sexp_conv, etc.

## Installation

For easier composition of PPXes, [`ppx-install`](https://github.com/diaozheng999/ppx-install) is recommended.

After installing `ppx-install`, add the following to `ppx` field in `package.json`, ensuring that it's the last rewriter in the list:

```js
{
  "ppx": [
    // other Ppxlib-based rewriters
    "@opam/ppx_let",
    "@opam/ppx_sexp_conv",
    "@opam/ppx_here",
    // ...
 
    // add this and ensure this is the last one
    "@nasi/ppx-remove-deriving"
  ]
}
```

## What it does

Removes the all [@@deriving] attributes **except** for:
1. `jsConverter`
2. `{ jsConverter = newType }`
3. `accessors`
4. `abstract`

## Why this is needed

Ppxlib-compatible derivers do not remove the [@@deriving] attribute after the deriver completes, as it does not perform any code rewrite, so:

```ocaml
type t [@@deriving sexp]
```

becomes

```ocaml
type t [@@deriving sexp]

(* generated by ppx_sexp_conv *)
val sexp_of_t : t -> sexp
val t_of_sexp : sexp -> t
```

This is acceptable by the ocaml bytecode and native compilers. However, in ReScript, this would throw an error, as the ReScript compiler defines its own [@@deriving] (in this case [@@bs.deriving]) attributes, and does not know what to do with the other ones. In this case, you get the following error:

```
FAILED: src/utils/json.iast

  We've found a bug for you!
  src/utils/json.resi:1:11-14

  1 │ @deriving(sexp)
  2 │ type t = Js.Json.t

  sexp is not supported
```

To overcome this error, this deriver simply remove all `deriving` attributes that's unrelated to ReScript. In this way,

```rescript
@deriving(sexp)
type t
@deriving(sexp, accessors)
type u = {
  // whatever, something that allows accessors to be generated
}
```

will be written as

```rescript
type t // notice the lack of @deriving annotation

// generated by ppx_sexp_conv
let sexp_of_t : t => sexp
let t_of_sexp : sexp => t

@deriving(accessors) // incompatible deriver sexp is removed
type u = {
  // ...
}

// generated by ppx_sexp_conv
let sexp_of_u : u => sexp
let u_of_sexp : sexp => u
```
npm package: @nasif_h/navbar-package
Description: This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Latest version: 0.0.4

# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

```js
export default tseslint.config({
  extends: [
    // Remove ...tseslint.configs.recommended and replace with this
    ...tseslint.configs.recommendedTypeChecked,
    // Alternatively, use this for stricter rules
    ...tseslint.configs.strictTypeChecked,
    // Optionally, add this for stylistic rules
    ...tseslint.configs.stylisticTypeChecked,
  ],
  languageOptions: {
    // other options...
    parserOptions: {
      project: ['./tsconfig.node.json', './tsconfig.app.json'],
      tsconfigRootDir: import.meta.dirname,
    },
  },
})
```

You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:

```js
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default tseslint.config({
  plugins: {
    // Add the react-x and react-dom plugins
    'react-x': reactX,
    'react-dom': reactDom,
  },
  rules: {
    // other rules...
    // Enable its recommended typescript rules
    ...reactX.configs['recommended-typescript'].rules,
    ...reactDom.configs.recommended.rules,
  },
})
```