Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/Modyfi/vite-plugin-yaml

Transform a YAML file to a JS object
https://github.com/Modyfi/vite-plugin-yaml

vite vite-plugin yaml

Last synced: about 2 months ago
JSON representation

Transform a YAML file to a JS object

Awesome Lists containing this project

README

        

[![Pipeline](https://github.com/Modyfi/vite-plugin-yaml/actions/workflows/pipeline.yml/badge.svg)](https://github.com/Modyfi/vite-plugin-yaml/actions/workflows/pipeline.yml)

# ๐Ÿงน vite-plugin-yaml

Transforms a YAML file into a JS object.

## ๐Ÿš€ Install

```
npm install -D @modyfi/vite-plugin-yaml
# or
# yarn add -D @modyfi/vite-plugin-yaml
# or
# pnpm i -D @modyfi/vite-plugin-yaml
```

## ๐Ÿฆ„ Usage

Add `ViteYAML` to `vite.config.js / vite.config.ts`:

```ts
// vite.config.js / vite.config.ts
import ViteYaml from '@modyfi/vite-plugin-yaml';

export default {
plugins: [
ViteYaml(), // you may configure the plugin by passing in an object with the options listed below
],
};
```

Then you can simply import yaml files like you would any other file:

```ts
import YamlContent from './your.yaml';

console.log(YamlContent.example);
```

Do note that you may have to include the file type in your import.

### ๐Ÿ”ฆ TypeScript support

The recommended way to add type definitions for `.yaml` or `.yml` modules is via a `tsconfig.json` file.

```ts
// tsconfig.json
{
"compilerOptions": {
...
"types": [
...
"@modyfi/vite-plugin-yaml/modules"
],
}
}
```

You may also add type definitions without `tsconfig`:

```ts
// vite-env.d.ts
///
```

## ๐Ÿ› Options

```ts
/**
* A minimatch pattern, or array of patterns, which specifies the files in the build the plugin should operate on.
*
* By default all files are targeted.
*/
include?: FilterPattern;
/**
* A minimatch pattern, or array of patterns, which specifies the files in the build the plugin should ignore.
*
* By default no files are ignored.
*/
exclude?: FilterPattern;
/**
* Schema used to parse yaml files.
*
* @see https://github.com/nodeca/js-yaml/blob/49baadd52af887d2991e2c39a6639baa56d6c71b/README.md#load-string---options-
*/
schema?: Schema;
/**
* A boolean to determine if JSON object should be serialized.
*
* @see https://www.npmjs.com/package/tosource for the motivation behind serialization of JSON.
*/
raw?: boolean;
/**
* A function that will be called for error reporting.
*
* Defaults to `console.warn()`.
*/
onWarning?: (warning: YAMLException) => void;
```