open-index/open-npm huggingface dataset:
npm package: @phiberber/pinst
Description: Enable or disable npm preinstall and postinstall hook
Author: typicode
Latest version: 3.0.1

# pinst [![Node.js CI](https://github.com/typicode/pinst/workflows/Node.js%20CI/badge.svg)](https://github.com/typicode/pinst/actions) [![npm](https://img.shields.io/npm/v/pinst.svg)](https://www.npmjs.com/package/pinst)

> `pinst` lets you have the `preinstall` and `postinstall` hooks running only in dev 🍺

__Important__ if your project is using npm or pnpm, you can achieve the desired effect by setting a `prepare` hook instead. `pinst` is mainly useful for Yarn 2+ since it doesn't support `prepare` hook. See https://yarnpkg.com/advanced/lifecycle-scripts

## Usage

```js
// package.json
{
  "scripts": {
    "preinstall": "<some dev only command>",
    "postinstall": "<some dev only command>",
    "prepack": "pinst --disable",
    "postpack": "pinst --enable"
  }
}
```

_On `prepack`, `preinstall` and `postinstall` will be renamed to `_preinstall` and `_postinstall` (disabled)_

_On `postpack`, it will be renamed back to `preinstall` and `postinstall` (enabled)_

## CLI

`pinst` accepts the following flags:

```
--enable, -e   Enable preinstall & postinstall hook
--disable, -d  Disable preinstall & postinstall hook
--silent, -s
```

## Tips

By inverting commands, you can also use `pinst` to enable `preinstall` or `postinstall` for your users only and not yourself.

`pinst` also supports `install` alias.

## License

MIT - [Typicode :cactus:](https://github.com/typicode)
npm package: @phibre/neta
Description: A lightweight JS framework powered by the prototype chain.
Author: Philip Breuer
Latest version: 0.0.5

<h1 align="center"><code>neta</code></h1>
<p align="center">A lightweight JS framework powered by the prototype chain.</p>

## Introduction
`neta` ネタ — Japanese for the topping of sushi, usually the fish part of nigiri, provides a JS-only framework for the 
modern web. Where other frameworks rely on some special markup language, like JSX, `neta` provides a simple and easy
to use API in plain Javascript. No compilation needed!

## Getting Started
Coming soon...

## Composition
To tell `neta` how to render a DOM-Element, you provide it with something called a `descriptor`, which is just a fancy 
word for an object containing all information about the desired Element. This object will then extend the previously
defined `descriptor`. This way we can add certain properties like styling, attributes, children, etc. on one 
element and override, mix or extend them in another.

Note: `neta` relies on the prototype chain to extend partials. This means, property lookups are handled by the browser 🎉

Simple element creation:

```js
neta.document({
    body: html({ text: 'Hello World!' })
});
```

You can partially apply a `descriptor` and reuse it:

```js
const div = html({ tag: 'div' });
const red = html({ styles: { color: 'red' } });

neta.document({
    body: div(red)({
        children: [
            div({ text: 'Hello World!' }),
        ],
    }),
});
```

### Components
To abstract certain functionalities you can wrap your `descriptor` in a function. This allows you to map the properties
or make invocations only when you actually need them.

```js
function icon({ url }) {
    // Do something here
    return html({
        tag: 'img',
        attributes: {
            src: url,
        },
        styles: {
            width: '100%',
        },
    });
}

neta.document({
    body: html({
        children: [
            icon({
                url: 'https://picsum.photos/200/300',
            }),
        ],
    }),
});
app.mount(parent);
```

## Reactivity
To let `neta` keep track of changes you can pass it an observable instead of any attribute, style or child.
An observable can be a `Promise`, a value wrapped in the provided `state` function, or anything that implements a `then`
function similar to a `Promise` really.

```js
const time = state();

setInterval(() => {
    time.set(new Date().toLocaleTimeString());
}, 1000);

neta.document({
    body: html({ text: time }),
});
```

## Styling
## Hooks
## Helpers