Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/robrwo/javascript-const-exporter
Convert exported Perl constants to JavaScript
https://github.com/robrwo/javascript-const-exporter
Last synced: 11 days ago
JSON representation
Convert exported Perl constants to JavaScript
- Host: GitHub
- URL: https://github.com/robrwo/javascript-const-exporter
- Owner: robrwo
- Created: 2020-12-16T17:23:37.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-07-26T17:11:46.000Z (over 2 years ago)
- Last Synced: 2024-10-11T21:56:27.428Z (about 1 month ago)
- Language: Perl
- Size: 64.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: Changes
Awesome Lists containing this project
README
# NAME
JavaScript::Const::Exporter - Convert exported Perl constants to JavaScript
# VERSION
version v0.1.7
# SYNOPSIS
Support a project has a module that defines constants for export:
```perl
package MyApp::Const;use Exporter qw/ import /;
our @EXPORT_OK = qw/ A B /;
use constant A => 123;
use constant B => "Hello";
```Then you can export these constants to JavaScript for use with a
web-application's front-end:```perl
use JavaScript::Const::Exporter;my $exporter = JavaScript::Const::Exporter->new(
module => 'MyApp::Const',
constants => [qw/ A B /],
);my $js = $exporter->process
```This will return a string with the JavaScript code:
```
const A = 123;
const B = "Hello";
```# DESCRIPTION
This module allows you to extract a list of exported constants from a
Perl module and generate JavaScript that can be included in a web
application, thus allowing you to share constants between Perl and
JavaScript.# ATTRIBUTES
## use\_var
When true, these will be defined as "var" variables instead of "const"
values.## module
This is the (required) name of the Perl module to include.
## constants
This is an array reference of symbols or export tags in the
["module"](#module)'s namespace to export.If it is omitted (not recommened), then it will look at the modules
`@EXPORT_OK` list an export all modules.Any subroutine can be included, however if the subroutine is not not a
coderef constant, e.g. created by [constant](https://metacpan.org/pod/constant), then it will emit a
warning.You must include sigils of constants. However, the exported JavaScript
will omit them, e.g. `$NAME` will export JavaScript that specifies a
constant called `NAME`.## has\_constants
True if there are ["constants"](#constants).
## include
This is an array reference of paths to add to your `@INC`, when the
["module"](#module) is not in the default path.## has\_include
True if there are included paths.
## pretty
When true, pretty-print any arrays or objects.
## stash
This is a [Package::Stash](https://metacpan.org/pod/Package%3A%3AStash) for the namespace. This is intended for
internal use.## tags
This is the content of the module's `%EXPORT_TAGS`. This is intended
for internal use.## json
This is the JSON encoder. This is intended for internal use.
# METHODS
## process
This method attempts to retrieve the symbols from the module and
generate the JavaScript.On success, it will return a string containing the JavaScript.
# KNOWN ISSUES
## Support for older Perl versions
This module requires Perl v5.10 or newer.
Pull requests to support older versions of Perl are welcome. See
["SOURCE"](#source).## Const::Fast::Exporter
When using with [Const::Fast::Exporter](https://metacpan.org/pod/Const%3A%3AFast%3A%3AExporter)-based modules, you must
explicitly list all of the constants to be exported, as that doesn't
provide an `@EXPORT_OK` variable that can be queried.## Const::Exporter
Exporting constant subs from [Const::Exporter](https://metacpan.org/pod/Const%3A%3AExporter) v1.0.0 or earlier will
emit warnings about the subs not being constant subs. The issue has
been fixed in v1.1.0.# SEE ALSO
[Const::Exporter](https://metacpan.org/pod/Const%3A%3AExporter)
# SOURCE
The development version is on github at [https://github.com/robrwo/JavaScript-Const-Exporter](https://github.com/robrwo/JavaScript-Const-Exporter)
and may be cloned from [git://github.com/robrwo/JavaScript-Const-Exporter.git](git://github.com/robrwo/JavaScript-Const-Exporter.git)# BUGS
Please report any bugs or feature requests on the bugtracker website
[https://github.com/robrwo/JavaScript-Const-Exporter/issues](https://github.com/robrwo/JavaScript-Const-Exporter/issues)When submitting a bug or request, please include a test-file or a
patch to an existing test-file that illustrates the bug or desired
feature.# AUTHOR
Robert Rothenberg
# COPYRIGHT AND LICENSE
This software is Copyright (c) 2020-2022 by Robert Rothenberg.
This is free software, licensed under:
```
The Artistic License 2.0 (GPL Compatible)
```