diff options
author | Dmitry Volyntsev <xeioex@nginx.com> | 2024-06-14 20:54:28 -0700 |
---|---|---|
committer | Dmitry Volyntsev <xeioexception@gmail.com> | 2024-09-17 18:05:57 -0700 |
commit | 201b127679e27fe63eff5c1b4356ec4ed9ec4611 (patch) | |
tree | 2477939f07f646ee6137a7d30ccc8e807206da61 /nginx/t/stream_js_fetch_https.t | |
parent | 9b6744129ce4c18e74b5e41cd1da66f2cbadcf36 (diff) | |
download | njs-201b127679e27fe63eff5c1b4356ec4ed9ec4611.tar.gz njs-201b127679e27fe63eff5c1b4356ec4ed9ec4611.zip |
Modules: introduced QuickJS engine.
"js_engine" directive is introduced which sets JavaScript engine.
When the module is built with QuickJS library "js_engine qjs;" sets
QuickJS engine for the current block. By default njs engine is used.
For example,
nginx.conf:
location /a {
js_engine qjs;
# will be handled by QuickJS
js_content main.handler;
}
location /b {
# will be handled by njs
js_content main.handler;
}
QuickJS engine implements drop-in replacement for nginx/njs objects
with the following exceptions:
* nginx module API to be added later: ngx.fetch(), ngx.shared.dict.
* Built-in modules to be added later: fs, crypto, WebCrypto, xml.
* NJS specific API: njs.dump(), njs.on(), console.dump().
* js_preload_object directive.
Diffstat (limited to 'nginx/t/stream_js_fetch_https.t')
-rw-r--r-- | nginx/t/stream_js_fetch_https.t | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/nginx/t/stream_js_fetch_https.t b/nginx/t/stream_js_fetch_https.t index c49b833b..5d7c5c20 100644 --- a/nginx/t/stream_js_fetch_https.t +++ b/nginx/t/stream_js_fetch_https.t @@ -47,6 +47,10 @@ http { location /njs { js_content test.njs; } + + location /engine { + js_content test.engine; + } } server { @@ -159,6 +163,10 @@ $t->write_file('test.js', <<EOF); r.return(200, njs.version); } + function engine(r) { + r.return(200, njs.engine); + } + function preread(s) { s.on('upload', function (data, flags) { if (data.startsWith('GO')) { @@ -193,7 +201,7 @@ $t->write_file('test.js', <<EOF); (r.status == 200) ? s.allow(): s.deny(); } - export default {njs: test_njs, preread, access_ok, access_nok}; + export default {njs: test_njs, engine, preread, access_ok, access_nok}; EOF my $d = $t->testdir(); @@ -263,7 +271,11 @@ foreach my $name ('default.example.com', '1.example.com') { . $t->read_file('intermediate.crt')); } -$t->try_run('no njs.fetch')->plan(6); +$t->try_run('no njs.fetch'); + +plan(skip_all => 'not yet') if http_get('/engine') =~ /QuickJS$/m; + +$t->plan(6); $t->run_daemon(\&dns_daemon, port(8981), $t); $t->waitforfile($t->testdir . '/' . port(8981)); |