Search by

modstore / laravel-enum-js

modstore

Package to generate javascript versions of your PHP enum files to be used in your js builds etc.

Package info

github.com/modstore/laravel-enum-js

pkg:composer/modstore/laravel-enum-js

Statistics

Installs: 170 836

Dependents: 0

Suggesters: 0

Stars: 15

Open Issues: 1

1.0.13 2026-09-11 05:14 UTC

This package is auto-updated.

Last update: 2026-09-11 05:14:58 UTC


README

Package to generate javascript versions of your PHP enum files to be used in your js builds etc. Works with Php8.1+ enums, constants in your PHP files, or you can use a package such as https://github.com/BenSampo/laravel-enum

Installation

You can install the package via composer:

composer require modstore/laravel-enum-js

Publish the config:

php artisan vendor:publish --provider="Modstore\LaravelEnumJs\LaravelEnumJsServiceProvider"

Usage

Create a storage location, the path the generated files will be saved to.

// config/filesystems.php
...
'disks' => [
    'enum-js' => [
        'driver' => 'local',
        'root' => resource_path() . '/js/enums',
    ],
],
...

Check the other configuration options in the config file.

You can generate the js files by running the following Artisan command:

php artisan enum-js:generate 

NOTE: When developing, if you create a new file, you will likely need to dump the autoload files before this command will pick it up, e.g.

composer dump-autoload
php artisan enum-js:generate 

You can then use the generated files in your javascript like so:

import * as Status from '../enums/Status'

if (this.status === Status.Active) {
    // Do something.
}

If your enum has a public static helper tagged with @enum-js-export, such as:

/**
 * @enum-js-export
 */
public static function columns(): array
{
    return self::cases();
}

then the generator will also export the matching array in JS:

export const columns = ["Name","Email"]

Only methods that are declared on the enum itself, are public static, take no parameters, and include @enum-js-export in the docblock are executed. This makes method execution explicit and opt-in.

Testing

composer test

Changelog

Please see CHANGELOG for more information what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.