[@asset-toolkit/image-compression](README.md) / Exports

# @asset-toolkit/image-compression

## Table of contents

### Type aliases

- [options](modules.md#options)
- [props](modules.md#props)
- [returns](modules.md#returns)

### Functions

- [default](modules.md#default)

## Type aliases

### options

Ƭ **options**: `Object`

#### Type declaration

| Name | Type |
| :------ | :------ |
| `jpg` | `any` |
| `plugins` | `any`[] \| `boolean` |
| `png` | { `dithering`: `number` \| `boolean` ; `posterize`: `number` ; `quality`: [`number`, `number`] ; `speed`: `number` ; `strip`: `boolean` ; `verbose`: `boolean`  } \| `any` |

#### Defined in

index.d.ts:1

___

### props

Ƭ **props**: `Object`

#### Type declaration

| Name | Type |
| :------ | :------ |
| `pathIn?` | `string` |
| `pathOut` | `string` |

#### Defined in

index.d.ts:13

___

### returns

Ƭ **returns**: `Object`

#### Type declaration

| Name | Type |
| :------ | :------ |
| `pathOut` | `string` |

#### Defined in

index.d.ts:17

## Functions

### default

▸ `Const` **default**(`_props`, `_options?`): `Promise`<[`returns`](modules.md#returns)\>

#### Parameters

| Name | Type |
| :------ | :------ |
| `_props` | [`props`](modules.md#props) |
| `_options?` | [`options`](modules.md#options) |

#### Returns

`Promise`<[`returns`](modules.md#returns)\>

#### Defined in

index.d.ts:20



# Asset ToolKits

Node.js toolkits to optimize media assets.

## Use a pipeline

A pipe function to concatenate toolkits.

```js
const { pipeline } = require('@asset-toolkit/core')

const pipelineExample = pipeline(...fn)

pipelineExample({
  pathIn: './exampleIn/',
  pathOut: '../../exampleOut/',
})
```

## Example with pipeline

With **audio-sprite** and **json-minify** tools.
Use the function returned from _pipeline_ to pass **props** and **options**.

The **options** is an array of object.
Every object is linked to tools function passed to _pipeline_ by our order.

```bash
npm i
@asset-toolkit/core
@asset-toolkit/audio-sprite
@asset-toolkit/json-minify
```

```js
const { pipeline } = require('@asset-toolkit/core')
const audioSprite = require('@asset-toolkit/audio-sprite')
const jsonMinify = require('@asset-toolkit/json-minify')
```

```js
const options = [
  {
    output: 'spriteTrack',
    export: 'mp3, m4a',
  },
] // first argument for first tool in pipeline

const pipelineAudio = pipeline(audioSprite, jsonMinify)

pipelineAudio(
  {
    pathIn: './audio/',
    pathOut: '../public/audio',
  },
  options,
)
```

## Example with watcher

For relaunch automatically your pipeline everytime you add or modify the files in input folder.

```js
const { pipeline, watchPipeline } = require('@asset-toolkit/core')
const jsonMinify = require('@asset-toolkit/json-minify')
```

```js
const options = [
  {
    output: 'spriteTrack',
    export: 'mp3, m4a',
  },
] // first argument for first tool in pipeline

const pipelineJSON = pipeline(jsonMinify)

watchPipeline(pipelineJSON, {
  pathIn: './json/',
  pathOut: '../public/json',
})
```

## How to use

Create a js file "example.js", with your code (import and configure the pipelines like examples).

Run your code with node: **`node example.js`**

## License

[MIT](LICENSE.md)
