![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
$ npm install -g liyad-cli
$ liyad --version
Usage: liyad [options] [ -- ] [ -e script | script.lisp | - ] [ -- ] [arguments]
liyad [options]
Options:
- script read from stdin (default; interactive mode if a tty)
-- indicate the end of CLI options / script files
-p, --profile=... select interpreter profile
S S-expression parser
L, lisp (default) lisp interpreter (return single value)
LM lisp interpreter (return multiple values)
L_async, lisp_async lisp interpreter (return single value, enable async)
LM_async lisp interpreter (return multiple values, enable async)
LSX lisp interpreter (return single value, enable LSX)
LSX_async lisp interpreter (return single value, enable LSX, enable async)
--lsx-boot lsxboot.js LSX bootstrap JavaScript file; required if profile LSX or LSX_async is selected.
--safe run as safe mode (disable '$require' and '$node-require')
-e, --eval=... evaluate script
-i, --interactive always enter the REPL even if stdin does not appear to be a terminal
-h, --help print command line options
-v, --version print version informations
--cli-version print cli version informations
lsxboot.js
const React = require('react');
const ReactDOMServer = require('react-dom/server');
class Hello extends React.Component {
render() {
return (React.createElement("div", {}, "hello"));
}
}
exports.dom = React.createElement;
exports.flagment = React.Fragment;
exports.render = ReactDOMServer.renderToStaticMarkup;
exports.components = {
Hello,
};
Use pkg.
$ npm install -g pkg
$ git clone https://github.com/shellyln/liyad-cli.git
$ cd liyad-cli
$ npm ci
$ pkg . --output liyad
$ ./liyad --version
See liyad-lisp-pkg-example and liyad-webapp-example
$ npm install -g liyad-cli
$ mkdir myapp
$ cd myapp
$ npm install liyad-lisp-pkg-example
$ vi app.lisp
app.lisp
($let ex ($require "liyad-lisp-pkg-example"))
;; Benchmarks
($console-log (::ex:tarai 12 6 0))
($console-log (::ex:fib 10))
($console-log (::ex:fac 10))
;; Run the web server on port 3000.
($let url ($node-require "url"))
(::ex:#get "/" (-> (req res)
($let u (::url:parse ::req:url))
(::res@writeHead 200 (# (Content-Type "text/html")))
(::res@end ($concat "hit / ," ::req:method "," ::u:path)) ) )
(::ex:serve 3000) ($last "start server")
$ liyad app.lisp
12
55
3628800
start server
($exit [ code ])
code
: exit code.($shell command)
command
: command and arguments.
($shell "ls -al")
($shell-async command)
command
: command and arguments.
($shell-async "ls -al")
($require id [ profile ])
id
: Load from relative path if id
starts with ./
or ../
. Otherwise load from local or global node_modules
.profile
: (optional) interpreter profile (S/L/lisp/LM/L_async/lisp_async/LM_async).
-p
or --profile
.($node-require id)
id
: Load from relative path if id
starts with ./
or ../
. Otherwise load from local or global node_modules
.($render jsxElement callback)
LSX-bootstrap.render()
and pass rendering result string or error to callback
.undefined
jsxElement
: object returned by LSX-bootstrap.dom()
.callback(error, html)
: callback function called on end of rendering jsxElement
.
error
: not null if error is occured.html
: rendering result html; null if error is occured.($pause id [ cond ])
undefined
cond
: if it present, pause if condition is true
.parseArgs(args)
args
: CLI arguments.parseArgs(['-p', 'LSX_async', '--lsx-boot', 'lsxboot.js', 'app.lisp'])
cliCore(curDir, params)
undefined
curDir
: current directory.params
: config object.cliCore(fs.realpathSync(process.cwd()), parseArgs(process.argv.slice(2)))
cli()
undefined
ISC
Copyright (c) 2018, Shellyl_N and Authors.
FAQs
CLI and REPL for Liyad (Lisp yet another DSL interpreter).
The npm package liyad-cli receives a total of 9 weekly downloads. As such, liyad-cli popularity was classified as not popular.
We found that liyad-cli 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
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.