Uname: Linux webm016.cluster127.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Software: Apache
PHP version: 7.4.33 [ PHP INFO ] PHP os: Linux
Server Ip: 54.36.31.145
Your Ip: 216.73.216.182
User: homesquasz (91404) | Group: users (100)
Safe Mode: OFF
Disable Function:
_dyuweyrj4,_dyuweyrj4r,dl

name : readme.md
# zwitch

[![Build][build-badge]][build]
[![Coverage][coverage-badge]][coverage]
[![Downloads][downloads-badge]][downloads]
[![Size][size-badge]][size]

Handle values based on a property.

## Install

[npm][]:

```sh
npm install zwitch
```

## Use

```js
var zwitch = require('zwitch')

var handle = zwitch('type')

handle.invalid = invalid
handle.unknown = unknown
handle.handlers.alpha = handle

handle({type: 'alpha'})
```

Or, with a `switch` statement:

```javascript
function handle(value) {
  var fn

  if (!value || typeof value !== 'object' || !('type' in value)) {
    fn = invalid
  } else {
    switch (value.type) {
      case 'alpha':
        fn = handle
        break
      default:
        fn = unknown
        break
    }
  }

  return fn.apply(this, arguments)
}

handle({type: 'alpha'})
```

## API

### `zwitch(key[, options])`

Create a functional switch, based on a `key` (`string`).

###### `options`

Options can be omitted and added later to `one`.

*   `handlers` (`Object.<Function>`, optional)
    — Object mapping values to handle, stored on `one.handlers`
*   `invalid` (`Function`, optional)
    — Handle values without `key`, stored on `one.invalid`
*   `unknown` (`Function`, optional)
    — Handle values with an unhandled `key`, stored on `one.unknown`

###### Returns

`Function` — See [`one`][one].

#### `one(value[, rest...])`

Handle one value.  Based on the bound `key`, a respective handler will be
invoked.
If `value` is not an object, or doesn’t have a `key` property, the special
“invalid” handler will be invoked.
If `value` has an unknown `key`, the special “unknown” handler will be invoked.

All arguments, and the context object, are passed through to the [handler][],
and it’s result is returned.

#### `one.handlers`

Map of [handler][]s (`Object.<string, Function>`).

#### `one.invalid`

Special [`handler`][handler] invoked if a value doesn’t have a `key` property.
If not set, `undefined` is returned for invalid values.

#### `one.unknown`

Special [`handler`][handler] invoked if a value does not have a matching
handler.
If not set, `undefined` is returned for unknown values.

### `function handler(value[, rest...])`

Handle one value.

## Related

*   [`mapz`](https://github.com/wooorm/mapz)
    — Functional map

## License

[MIT][license] © [Titus Wormer][author]

<!-- Definitions -->

[build-badge]: https://img.shields.io/travis/wooorm/zwitch.svg

[build]: https://travis-ci.org/wooorm/zwitch

[coverage-badge]: https://img.shields.io/codecov/c/github/wooorm/zwitch.svg

[coverage]: https://codecov.io/github/wooorm/zwitch

[downloads-badge]: https://img.shields.io/npm/dm/zwitch.svg

[downloads]: https://www.npmjs.com/package/zwitch

[size-badge]: https://img.shields.io/bundlephobia/minzip/zwitch.svg

[size]: https://bundlephobia.com/result?p=zwitch

[npm]: https://docs.npmjs.com/cli/install

[license]: license

[author]: https://wooorm.com

[one]: #onevalue-rest

[handler]: #function-handlervalue-rest
© 2026 GrazzMean