
Security News
NVD Concedes Inability to Keep Pace with Surging CVE Disclosures in 2025
Security experts warn that recent classification changes obscure the true scope of the NVD backlog as CVE volume hits all-time highs.
electrum-compiler
Advanced tools
This is a run-time compiler for Electrum-enabled React components, based on Babel. It is relying on babel-standalone for the real work and provides additional logic to build live React components directly from source code.
To transform JavaScript to ES5, use:
transform(input)
→ produces ES5 output based on the JavaScript source
.let input = 'const greet = x => `Hello ${x}.`;';
let compiler = new Compiler ();
let source = compiler.transform (input);
// ES5 compatible source
To build an Electrum-enabled React component, use:
build(name, input)
→ produces a component description; the name of the
compoment will be name
and its source code defined by input
, which must
be a source containing a class definition.build(name, input, locals)
→ same as above, but inject the key/value
pairs found in locals
into the compilation context.build(name, input, locals, more)
→ same as above, more
represents
additional source code which will be provided to Electrum.wrap()
as the
more
argument (it can be used to bind the component with styles).let input = 'class extends React.Component { render() { return <div>Hi.</div>; } }';
let compiler = new Compiler ();
let output = compiler.build ('Foo', input);
// Component in output.component
If the source code needs to reference external symbols (for instance other
components), they must be registered before calling build()
:
let input = `
class extends React.Component {
render() {
return <Button>{text}</Button>;
}
}`;
let compiler = new Compiler ();
compiler.register (Button);
compiler.register ('text', 'Hello')
let output = compiler.build ('Foo', input);
// Component in output.component
The output of build()
is an object with following properties:
name
→ name of the component.code
→ source code used to produce the component.component
→ the component.error
→ the error (if there was an error).Properties code
and component
are only present if the call to build()
was successful. Otherwise, the error message is stored in error
.
Note that the position in the error message will be offset by one line, as
build()
prepends some code to the given input source.
Items registered on the compiler with register()
are stored in a catalog.
The catalog can be retrieved through the catalog
getter:
let compiler = new Compiler ();
compiler.register ('x', {a: 1});
compiler.register ('y', {b: 2});
expect (compiler.catalog.x).to.have.property ('a', 1);
expect (compiler.catalog.y).to.have.property ('b', 2);
The compiler also includes an ES6/JSX compatible version of eval()
which
can be used to evaluate expressions:
let compiler = new Compiler ();
expect (compiler.eval ('2 + 3')).to.equal (5);
expect (compiler.eval ('<div></div>')).to.equalJSX (<div />);
FAQs
Run-time compiler for Electrum-enabled React components.
The npm package electrum-compiler receives a total of 1 weekly downloads. As such, electrum-compiler popularity was classified as not popular.
We found that electrum-compiler demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Security experts warn that recent classification changes obscure the true scope of the NVD backlog as CVE volume hits all-time highs.
Security Fundamentals
Attackers use obfuscation to hide malware in open source packages. Learn how to spot these techniques across npm, PyPI, Maven, and more.
Security News
Join Socket for exclusive networking events, rooftop gatherings, and one-on-one meetings during BSidesSF and RSA 2025 in San Francisco.