npm package: @gg-o-bp/mendix-generator-widget-bun
Description: Community fork of Mendix Pluggable Widgets Generator optimized for Bun runtime (NOT an official Mendix tool)
Latest version: 10.15.3

# Mendix Pluggable Widgets Generator for Bun

![npm version](https://badge.fury.io/js/%40gg-o-bp%2Fmendix-generator-widget-bun.svg)
![Mendix 8](https://img.shields.io/badge/mendix-8.0.0-brightgreen.svg)
![Bun Compatible](https://img.shields.io/badge/bun->=1.2.0-brightgreen.svg)
![npm](https://img.shields.io/npm/dm/@gg-o-bp/mendix-generator-widget-bun)

> ⚠️ **IMPORTANT DISCLAIMER**: This is NOT an official Mendix tool. This is a community-maintained fork of the original [@mendix/generator-widget](https://www.npmjs.com/package/@mendix/generator-widget) that has been optimized for the [Bun](https://bun.sh/) runtime. For the official Mendix tool, please use [@mendix/generator-widget](https://www.npmjs.com/package/@mendix/generator-widget).

## About

The Mendix Pluggable Widget Generator for Bun is a community-maintained fork of the official Mendix widget generator, optimized for [Bun](https://bun.sh/) runtime to let you quickly create a [Mendix Pluggable Widget](https://docs.mendix.com/howto/extensibility/pluggable-widgets). This fork provides faster installation and execution compared to the original npm version while maintaining full compatibility with Mendix widgets.

## Installation

### Prerequisites

You can use either:
- [Bun](https://bun.sh/) (version >= 1.2.0) - **Recommended for faster performance**

## Scaffold a widget project

1. Generate your new project inside an empty folder:

    ### Using bunx (Recommended):
    ```bash
    bunx @gg-o-bp/mendix-generator-widget-bun
    ```

    or automatically create the folder using:

    ```bash
    bunx @gg-o-bp/mendix-generator-widget-bun MyWidgetName
    ```

    Note that `MyWidgetName` can consist of space characters as well.

1. Provide the following information about your widget project (press <Enter> if you want to skip and use the default values):

    - Widget name
    - Description
    - Organization
    - Copyright
    - License
    - Version
    - Author
    - Mendix project path
    - Programming language
    - Platform
    - Template
    - Add unit tests
    - Add end-to-end tests

### Template

#### Full boilerplate

The full widget boilerplate is a fully developed and tested Mendix React widget that shows a value as a badge or a color label (just available for web/responsive platforms).
It has the following features:

-   Display as a badge or a color label
-   Attach actions to the onClick event
-   Set static data text when the dynamic data is not specified

#### Empty widget

The empty template is a Mendix React hello world widget recommended for more experienced developers.

### Add unit tests

If `Yes` is selected, unit tests are included to ensure individual units of the component are tested to determine whether they are fit for use. The default value is `No`.

### Add end-to-end tests

If `Yes` is selected, end-to-end tests are included to ensure that the integrated components of an application function as expected. The default value is `No`.

Note: Both `Unit` and `End-to-end` tests apply only to the Full Boilerplate. `End-to-end` is exclusive for web and PWA apps.

The tool will then create copied files, and run `bun install` to install development dependencies.

## Using the task runner

The widget generator will include the necessary files and tasks to your package.json for running the tasks over the [Pluggable Widgets Tools](https://github.com/mendix/widgets-tools/tree/master/packages/tools/pluggable-widgets-tools).

If necessary you can run the tasks using the commands:

### Using bun:
```bash
bun start
```

```bash
bun run build
```

```bash
bun run release
```

## Note

-   To build and watch for source code changes while developing, run the Mendix project located at the specified `Mendix project path` and run:

    ```bash
    bun start
    ```

## Issues

Issues related to this Bun-optimized fork can be reported on [Github](https://github.com/GG-O-BP/mendix-generator-widget-bun/issues).

For issues related to Mendix widget functionality itself, please refer to the [official Mendix widgets-tools repository](https://github.com/mendix/widgets-tools/issues).

## Performance Benefits

Using Bun provides:
- **Faster installation**: Up to 10x faster package installation
- **Reduced disk usage**: More efficient package management
- **Better performance**: Faster script execution and build times
- **Built-in TypeScript support**: No additional configuration needed

## Acknowledgments

This project is based on the excellent work by the Mendix team on the [official generator-widget](https://github.com/mendix/widgets-tools). We are grateful for their open-source contribution to the Mendix community.