@redhat-developer/kiota-wasm

0.0.2 • Public • Published

Kiota-Wasm

This project brings the power of Kiota straight into your browser! Kiota is a C# project and the dotnet toolchain allows you to compile it with target browser-wasmand 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 @redhat-developer/kiota-wasm

  1. Unpack the resources in the public assets folder of your project (and we suggest to add it to your .gitignore):
npm install -D copyfiles rimraf
  "scripts": {
    ...
    "postinstall": "rimraf ./public/kiota-wasm && copyfiles -u 4 'node_modules/@redhat-developer/kiota-wasm/dist/**/*.*' 'public/kiota-wasm'"
  }
  ...
  1. With some build tool such as vite you need to exclude those dependencies from the bundler:
export default defineConfig({
  plugins: [
    react(),
  ],
  build: {
    rollupOptions: {
      external: [
        /^.*kiota-wasm.*/,
      ]
    }
  }
})
  1. Now you can integrate the WASM module with a dynamic import, with vite:
// @ts-ignore
const { generate } = await import('/kiota-wasm/main.js?url');

or with webpack:

const { generate } = await import(
  /* webpackIgnore: true */ './kiota-wasm/main.js'
);
  1. Use the code generator functionality:
generate(spec: string, language: string, clientClassName: string, namespaceName: string, includePatterns: string, excludePatterns: string);

Build

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

dotnet workload install wasm-tools

and run the build:

dotnet build --configuration Release

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.

Readme

Keywords

Package Sidebar

Install

npm i @redhat-developer/kiota-wasm

Weekly Downloads

131

Version

0.0.2

License

Apache-2.0

Unpacked Size

26.6 MB

Total Files

200

Last publish

Collaborators

  • mohitsuman
  • dgolovin
  • jrichter1
  • jeffmaury
  • sudhirverma
  • adietish
  • robstryker
  • rhdevelopers-ci
  • odockal
  • yvydolob
  • fbricon