# @redhat-developer/kiota-wasm

> Kiota compiled in a native WASM module.

Latest version **0.0.2** (published 2023-10-31) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install @redhat-developer/kiota-wasm
pnpm add @redhat-developer/kiota-wasm
yarn add @redhat-developer/kiota-wasm
bun add @redhat-developer/kiota-wasm
```

## Health

**Score 30/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; large bundle; pre 1.0.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 0.0.2 |
| Published | 2023-10-31 |
| First published | 2023-10-31 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 25.4 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | mohitsuman, dgolovin, jrichter1, jeffmaury, sudhirverma, adietish, robstryker, rhdevelopers-ci, odockal, yvydolob, fbricon |
| Keywords | kiota, openapi, codegen |

## Links

- npm: https://www.npmjs.com/package/@redhat-developer/kiota-wasm
- Repository: https://github.com/redhat-developer/kiota-wasm
- Homepage: https://github.com/redhat-developer/kiota-wasm#readme
- Issues: https://github.com/redhat-developer/kiota-wasm/issues
- npm.io page: https://npm.io/package/@redhat-developer/kiota-wasm

## Recent versions

- 0.0.2 (latest) — 2023-10-31
- 0.0.1 — 2023-10-31

## README

# Kiota-Wasm

This project brings the power of [Kiota](https://github.com/microsoft/kiota) straight into your browser!
[Kiota](https://github.com/microsoft/kiota) is a C# project and the `dotnet` toolchain allows you to compile it with target `browser-wasm`and eventually run it in the browser.

## Usage

There are a few minor challenges with the integration of the produced artifacts into a real-world, modern, frontend application.
We do maintain working examples up to date to make sure that it's feasible to leverage this functionality.

1. Add this dependency to your project:

`npm install -D @kiota-community/kiota-wasm`

2. Unpack the resources in the public assets folder of your project (and we suggest to add it to your `.gitignore`):

```bash
npm install -D copyfiles rimraf
```

```json
  "scripts": {
    ...
    "postinstall": "rimraf ./public/kiota-wasm && copyfiles -u 4 'node_modules/@kiota-community/kiota-wasm/dist/**/*.*' 'public/kiota-wasm'"
  }
  ...
```

3. With some build tool such as `vite` you need to exclude those dependencies from the bundler:

```ts
export default defineConfig({
  plugins: [
    react(),
  ],
  build: {
    rollupOptions: {
      external: [
        /^.*kiota-wasm.*/,
      ]
    }
  }
})
```

4. Now you can integrate the WASM module with a dynamic import, with `vite`:

```ts
// @ts-ignore
const { generate } = await import('/kiota-wasm/main.js?url');
```

or with `webpack`:

```ts
const { generate } = await import(
  /* webpackIgnore: true */ './kiota-wasm/main.js'
);
```

5. Use the code generator functionality:

```ts
generate(spec: string, language: string, clientClassName: string, namespaceName: string, includePatterns: string, excludePatterns: string);
```


## Build

To build this project you need `dotnet` version 8+ and the `wasm-tools`:

```bash
dotnet workload install wasm-tools
```

and run the build:

```bash
dotnet build --configuration Release
```

## Run the example vite app

Publish the package with:

```bash
yalc publish
```

In the example application folder:

```bash
yalc add @kiota-community/kiota-wasm@0.0.1
npm install
npm run dev
```

## Release

This repository is released on tag:

```
git fetch origin
git checkout origin/main
git tag <version>
git push origin <version>
```

and the CI will do the job.

---
_Source: https://npm.io/package/@redhat-developer/kiota-wasm · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
