comparison xml/en/docs/njs/reference.xml @ 2989:703d3450cd81

Added mini-tocs in sections of njs Reference.
author Yaroslav Zhuravlev <yar@nginx.com>
date Thu, 06 Jul 2023 12:31:08 +0100
parents 8899986c3622
children adecad3d7039
comparison
equal deleted inserted replaced
2988:8899986c3622 2989:703d3450cd81
7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> 7 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
8 8
9 <article name="Reference" 9 <article name="Reference"
10 link="/en/docs/njs/reference.html" 10 link="/en/docs/njs/reference.html"
11 lang="en" 11 lang="en"
12 rev="110"> 12 rev="111">
13 13
14 <section id="summary"> 14 <section id="summary">
15 15
16 <para> 16 <para>
17 <link doc="index.xml">njs</link> provides objects, methods and properties 17 <link doc="index.xml">njs</link> provides objects, methods and properties
34 34
35 <section id="http_stream" name="nginx objects"> 35 <section id="http_stream" name="nginx objects">
36 36
37 37
38 <section id="http" name="HTTP Request"> 38 <section id="http" name="HTTP Request">
39
40 <para>
41 <table width="100%">
42 <tr><td><link id="r_args"><literal>r.args{}</literal></link></td></tr>
43 <tr><td><link id="r_done"><literal>r.done()</literal></link></td></tr>
44 <tr><td><link id="r_error"><literal>r.error()</literal></link></td></tr>
45 <tr><td><link id="r_finish"><literal>r.finish()</literal></link></td></tr>
46 <tr><td><link id="r_headers_in"><literal>r.headersIn{}</literal></link></td></tr>
47 <tr><td><link id="r_headers_out"><literal>r.headersOut{}</literal></link></td></tr>
48 <tr><td><link id="r_http_version"><literal>r.httpVersion</literal></link></td></tr>
49 <tr><td><link id="r_internal"><literal>r.internal</literal></link></td></tr>
50 <tr><td><link id="r_internal_redirect"><literal>r.internalRedirect()</literal></link></td></tr>
51 <tr><td><link id="r_log"><literal>r.log()</literal></link></td></tr>
52 <tr><td><link id="r_method"><literal>r.method</literal></link></td></tr>
53 <tr><td><link id="r_parent"><literal>r.parent</literal></link></td></tr>
54 <tr><td><link id="r_remote_address"><literal>r.remoteAddress</literal></link></td></tr>
55 <tr><td><link id="r_request_body"><literal>r.requestBody</literal></link></td></tr>
56 <tr><td><link id="r_request_buffer"><literal>r.requestBuffer</literal></link></td></tr>
57 <tr><td><link id="r_request_text"><literal>r.requestText</literal></link></td></tr>
58 <tr><td><link id="r_raw_headers_in"><literal>r.rawHeadersIn{}</literal></link></td></tr>
59 <tr><td><link id="r_raw_headers_out"><literal>r.rawHeadersOut{}</literal></link></td></tr>
60 <tr><td><link id="r_response_body"><literal>r.responseBody</literal></link></td></tr>
61 <tr><td><link id="r_response_buffer"><literal>r.responseBuffer</literal></link></td></tr>
62 <tr><td><link id="r_response_text"><literal>r.responseText</literal></link></td></tr>
63 <tr><td><link id="r_return"><literal>r.return()</literal></link></td></tr>
64 <tr><td><link id="r_send"><literal>r.send()</literal></link></td></tr>
65 <tr><td><link id="r_sendbuffer"><literal>r.sendBuffer()</literal></link></td></tr>
66 <tr><td><link id="r_send_header"><literal>r.sendHeader()</literal></link></td></tr>
67 <tr><td><link id="r_set_return_value"><literal>r.setReturnValue()</literal></link></td></tr>
68 <tr><td><link id="r_status"><literal>r.status</literal></link></td></tr>
69 <tr><td><link id="r_subrequest"><literal>r.subrequest()</literal></link></td></tr>
70 <tr><td><link id="r_uri"><literal>r.uri</literal></link></td></tr>
71 <tr><td><link id="r_raw_variables"><literal>r.rawVariables{}</literal></link></td></tr>
72 <tr><td><link id="r_variables"><literal>r.variables{}</literal></link></td></tr>
73 <tr><td><link id="r_warn"><literal>r.warn()</literal></link></td></tr>
74 </table>
75 </para>
39 76
40 <para> 77 <para>
41 The HTTP request object is available only in the 78 The HTTP request object is available only in the
42 <link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link> module. 79 <link doc="../http/ngx_http_js_module.xml">ngx_http_js_module</link> module.
43 All string properties of the object are 80 All string properties of the object are
645 682
646 683
647 <section id="stream" name="Stream Session"> 684 <section id="stream" name="Stream Session">
648 685
649 <para> 686 <para>
687 <table width="100%">
688 <tr><td><link id="s_allow"><literal>s.allow()</literal></link></td></tr>
689 <tr><td><link id="s_decline"><literal>s.decline()</literal></link></td></tr>
690 <tr><td><link id="s_deny"><literal>s.deny()</literal></link></td></tr>
691 <tr><td><link id="s_done"><literal>s.done()</literal></link></td></tr>
692 <tr><td><link id="s_error"><literal>s.error()</literal></link></td></tr>
693 <tr><td><link id="s_log"><literal>s.log()</literal></link></td></tr>
694 <tr><td><link id="s_off"><literal>s.off()</literal></link></td></tr>
695 <tr><td><link id="s_on"><literal>s.on()</literal></link></td></tr>
696 <tr><td><link id="s_remote_address"><literal>s.remoteAddress</literal></link></td></tr>
697 <tr><td><link id="s_raw_variables"><literal>s.rawVariables{}</literal></link></td></tr>
698 <tr><td><link id="s_send"><literal>s.send()</literal></link></td></tr>
699 <tr><td><link id="s_send_downstream"><literal>s.sendDownstream()</literal></link></td></tr>
700 <tr><td><link id="s_send_upstream"><literal>s.sendUpstream()</literal></link></td></tr>
701 <tr><td><link id="s_status"><literal>s.status</literal></link></td></tr>
702 <tr><td><link id="s_set_return_value"><literal>s.setReturnValue()</literal></link></td></tr>
703 <tr><td><link id="s_variables"><literal>s.variables{}</literal></link></td></tr>
704 <tr><td><link id="s_warn"><literal>s.warn()</literal></link></td></tr>
705 </table>
706 </para>
707
708 <para>
650 The stream session object is available only in the 709 The stream session object is available only in the
651 <link doc="../stream/ngx_stream_js_module.xml">ngx_stream_js_module</link> 710 <link doc="../stream/ngx_stream_js_module.xml">ngx_stream_js_module</link>
652 module. 711 module.
653 All string properties of the object are <link id="string">byte strings</link>. 712 All string properties of the object are <link id="string">byte strings</link>.
654 </para> 713 </para>
914 973
915 974
916 <section id="headers" name="Headers"> 975 <section id="headers" name="Headers">
917 976
918 <para> 977 <para>
978 <table width="100%">
979 <tr><td><link id="headers_constructor"><literal>Headers()</literal></link></td></tr>
980 <tr><td><link id="headers_append"><literal>Headers.append()</literal></link></td></tr>
981 <tr><td><link id="headers_delete"><literal>Headers.delete()</literal></link></td></tr>
982 <tr><td><link id="headers_get"><literal>Headers.get()</literal></link></td></tr>
983 <tr><td><link id="headers_getall"><literal>Headers.getAll()</literal></link></td></tr>
984 <tr><td><link id="headers_foreach"><literal>Headers.forEach()</literal></link></td></tr>
985 <tr><td><link id="headers_has"><literal>Headers.has()</literal></link></td></tr>
986 <tr><td><link id="headers_set"><literal>Headers.set()</literal></link></td></tr>
987 </table>
988 </para>
989
990 <para>
919 The <literal>Headers</literal> interface of the 991 The <literal>Headers</literal> interface of the
920 <link id="ngx_fetch"><literal>Fetch API</literal></link> 992 <link id="ngx_fetch"><literal>Fetch API</literal></link>
921 is available since <link doc="changes.xml" id="njs0.5.1">0.5.1</link>. 993 is available since <link doc="changes.xml" id="njs0.5.1">0.5.1</link>.
922 </para> 994 </para>
923 995
1005 1077
1006 </section> 1078 </section>
1007 1079
1008 1080
1009 <section id="request" name="Request"> 1081 <section id="request" name="Request">
1082
1083 <para>
1084 <table width="100%">
1085 <tr><td><link id="request_constructor"><literal>Request()</literal></link></td></tr>
1086 <tr><td><link id="request_arraybuffer"><literal>Request.arrayBuffer()</literal></link></td></tr>
1087 <tr><td><link id="request_bodyused"><literal>Request.bodyUsed</literal></link></td></tr>
1088 <tr><td><link id="request_cache"><literal>Request.cache</literal></link></td></tr>
1089 <tr><td><link id="request_credentials"><literal>Request.credentials</literal></link></td></tr>
1090 <tr><td><link id="request_headers"><literal>Request.headers</literal></link></td></tr>
1091 <tr><td><link id="request_json"><literal>Request.json()</literal></link></td></tr>
1092 <tr><td><link id="request_method"><literal>Request.method</literal></link></td></tr>
1093 <tr><td><link id="request_mode"><literal>Request.mode</literal></link></td></tr>
1094 <tr><td><link id="request_text"><literal>Request.text()</literal></link></td></tr>
1095 <tr><td><link id="request_url"><literal>Request.url</literal></link></td></tr>
1096 </table>
1097 </para>
1010 1098
1011 <para> 1099 <para>
1012 The <literal>Request</literal> interface of the 1100 The <literal>Request</literal> interface of the
1013 <link id="ngx_fetch"><literal>Fetch API</literal></link> 1101 <link id="ngx_fetch"><literal>Fetch API</literal></link>
1014 is available since <link doc="changes.xml" id="njs0.7.10">0.7.10</link>. 1102 is available since <link doc="changes.xml" id="njs0.7.10">0.7.10</link>.
1130 1218
1131 1219
1132 <section id="response" name="Response"> 1220 <section id="response" name="Response">
1133 1221
1134 <para> 1222 <para>
1223 <table width="100%">
1224 <tr><td><link id="response_constructor"><literal>Response()</literal></link></td></tr>
1225 <tr><td><link id="response_arraybuffer"><literal>Response.arrayBuffer()</literal></link></td></tr>
1226 <tr><td><link id="response_bodyused"><literal>Response.bodyUsed</literal></link></td></tr>
1227 <tr><td><link id="response_headers"><literal>Response.headers</literal></link></td></tr>
1228 <tr><td><link id="response_json"><literal>Response.json()</literal></link></td></tr>
1229 <tr><td><link id="response_ok"><literal>Response.ok</literal></link></td></tr>
1230 <tr><td><link id="response_redirect"><literal>Response.redirected</literal></link></td></tr>
1231 <tr><td><link id="response_status"><literal>Response.status</literal></link></td></tr>
1232 <tr><td><link id="response_statustext"><literal>Response.statusText</literal></link></td></tr>
1233 <tr><td><link id="response_text"><literal>Response.text()</literal></link></td></tr>
1234 <tr><td><link id="response_type"><literal>Response.type</literal></link></td></tr>
1235 <tr><td><link id="response_url"><literal>Response.url</literal></link></td></tr>
1236 </table>
1237 </para>
1238
1239 <para>
1135 The <literal>Response</literal> interface is available since 1240 The <literal>Response</literal> interface is available since
1136 <link doc="changes.xml" id="njs0.5.1">0.5.1</link>. 1241 <link doc="changes.xml" id="njs0.5.1">0.5.1</link>.
1137 </para> 1242 </para>
1138 1243
1139 <para> 1244 <para>
1257 1362
1258 </section> 1363 </section>
1259 1364
1260 1365
1261 <section id="ngx" name="ngx"> 1366 <section id="ngx" name="ngx">
1367
1368 <para>
1369 <table width="100%">
1370 <tr><td><link id="ngx_build"><literal>ngx.build</literal></link></td></tr>
1371 <tr><td><link id="ngx_conf_file_path"><literal>ngx.conf_file_path</literal></link></td></tr>
1372 <tr><td><link id="ngx_conf_prefix"><literal>ngx.conf_prefix</literal></link></td></tr>
1373 <tr><td><link id="ngx_error_log_path"><literal>ngx.error_log_path</literal></link></td></tr>
1374 <tr><td><link id="ngx_fetch"><literal>ngx.fetch()</literal></link></td></tr>
1375 <tr><td><link id="ngx_log"><literal>ngx.log()</literal></link></td></tr>
1376 <tr><td><link id="ngx_prefix"><literal>ngx.prefix</literal></link></td></tr>
1377 <tr><td><link id="ngx_version"><literal>ngx.version</literal></link></td></tr>
1378 <tr><td><link id="ngx_version_number"><literal>ngx.version_number</literal></link></td></tr>
1379 <tr><td><link id="ngx_worker_id"><literal>ngx.worker_id</literal></link></td></tr>
1380 </table>
1381 </para>
1262 1382
1263 <para> 1383 <para>
1264 The <literal>ngx</literal> global object is available 1384 The <literal>ngx</literal> global object is available
1265 since <link doc="changes.xml" id="njs0.5.0">0.5.0</link>. 1385 since <link doc="changes.xml" id="njs0.5.0">0.5.0</link>.
1266 <list type="tag"> 1386 <list type="tag">
1433 1553
1434 <section id="builtin_objects" name="built-in objects"> 1554 <section id="builtin_objects" name="built-in objects">
1435 1555
1436 1556
1437 <section id="builtin_crypto" name="crypto"> 1557 <section id="builtin_crypto" name="crypto">
1558
1559 <para>
1560 <table width="100%">
1561 <tr><td><link id="crypto_get_random_values"><literal>сrypto.getRandomValues()</literal></link></td></tr>
1562 <tr><td><link id="crypto_subtle_encrypt"><literal>сrypto.subtle.encrypt()</literal></link></td></tr>
1563 <tr><td><link id="crypto_subtle_decrypt"><literal>сrypto.subtle.decrypt()</literal></link></td></tr>
1564 <tr><td><link id="crypto_subtle_derive_bits"><literal>сrypto.subtle.deriveBits()</literal></link></td></tr>
1565 <tr><td><link id="crypto_subtle_derive_key"><literal>сrypto.subtle.deriveKey()</literal></link></td></tr>
1566 <tr><td><link id="crypto_subtle_digest"><literal>сrypto.subtle.digest()</literal></link></td></tr>
1567 <tr><td><link id="crypto_subtle_export_key"><literal>сrypto.subtle.exportKey()</literal></link></td></tr>
1568 <tr><td><link id="crypto_subtle_generate_key"><literal>сrypto.subtle.generateKey()</literal></link></td></tr>
1569 <tr><td><link id="crypto_subtle_import_key"><literal>сrypto.subtle.importKey()</literal></link></td></tr>
1570 <tr><td><link id="crypto_subtle_sign"><literal>сrypto.subtle.sign()</literal></link></td></tr>
1571 <tr><td><link id="crypto_subtle_verify"><literal>сrypto.subtle.verify()</literal></link></td></tr>
1572 </table>
1573 </para>
1438 1574
1439 <para> 1575 <para>
1440 The <literal>crypto</literal> object is a global object 1576 The <literal>crypto</literal> object is a global object
1441 that allows using cryptographic functionality 1577 that allows using cryptographic functionality
1442 (since <link doc="changes.xml" id="njs0.7.0">0.7.0</link>). 1578 (since <link doc="changes.xml" id="njs0.7.0">0.7.0</link>).
2871 3007
2872 3008
2873 <section id="cryptokey" name="CryptoKey"> 3009 <section id="cryptokey" name="CryptoKey">
2874 3010
2875 <para> 3011 <para>
3012 <table width="100%">
3013 <tr><td><link id="cryptokey_alg"><literal>CryptoKey.algorithm</literal></link></td></tr>
3014 <tr><td><link id="cryptokey_extractable"><literal>CryptoKey.extractable</literal></link></td></tr>
3015 <tr><td><link id="cryptokey_type"><literal>CryptoKey.type</literal></link></td></tr>
3016 <tr><td><link id="cryptokey_usages"><literal>CryptoKey.usages</literal></link></td></tr>
3017 </table>
3018 </para>
3019
3020 <para>
2876 The <literal>CryptoKey</literal> object 3021 The <literal>CryptoKey</literal> object
2877 represents a cryptographic <literal>key</literal> obtained 3022 represents a cryptographic <literal>key</literal> obtained
2878 from one of the <literal>SubtleCrypto</literal> methods: 3023 from one of the <literal>SubtleCrypto</literal> methods:
2879 <link id="crypto_subtle_generate_key"><literal>сrypto.subtle.generateKey()</literal></link>, 3024 <link id="crypto_subtle_generate_key"><literal>сrypto.subtle.generateKey()</literal></link>,
2880 <link id="crypto_subtle_derive_key"><literal>сrypto.subtle.deriveKey()</literal></link>, 3025 <link id="crypto_subtle_derive_key"><literal>сrypto.subtle.deriveKey()</literal></link>,
2974 3119
2975 3120
2976 <section id="cryptokeypair" name="CryptoKeyPair"> 3121 <section id="cryptokeypair" name="CryptoKeyPair">
2977 3122
2978 <para> 3123 <para>
3124 <table width="100%">
3125 <tr><td><link id="cryptokeypair_privatekey"><literal>CryptoKeyPair.privateKey</literal></link></td></tr>
3126 <tr><td><link id="cryptokeypair_publickey"><literal>CryptoKeyPair.publicKey</literal></link></td></tr>
3127 </table>
3128 </para>
3129
3130 <para>
2979 The <literal>CryptoKeyPair</literal> is a dictionary object 3131 The <literal>CryptoKeyPair</literal> is a dictionary object
2980 of the <link id="builtin_crypto">WebCrypto API</link> 3132 of the <link id="builtin_crypto">WebCrypto API</link>
2981 that represents an asymmetric key pair. 3133 that represents an asymmetric key pair.
2982 </para> 3134 </para>
2983 3135
3003 3155
3004 3156
3005 <section id="njs" name="njs"> 3157 <section id="njs" name="njs">
3006 3158
3007 <para> 3159 <para>
3160 <table width="100%">
3161 <tr><td><link id="njs_version"><literal>njs.version</literal></link></td></tr>
3162 <tr><td><link id="njs_version_number"><literal>njs.version_number</literal></link></td></tr>
3163 <tr><td><link id="njs_dump"><literal>njs.dump()</literal></link></td></tr>
3164 <tr><td><link id="njs_memory_stats"><literal>njs.memoryStats</literal></link></td></tr>
3165 <tr><td><link id="njs_on"><literal>njs.on()</literal></link></td></tr>
3166 </table>
3167 </para>
3168
3169 <para>
3008 The <literal>njs</literal> object is a global object 3170 The <literal>njs</literal> object is a global object
3009 that represents the current VM instance 3171 that represents the current VM instance
3010 (since <link doc="changes.xml" id="njs0.2.0">0.2.0</link>). 3172 (since <link doc="changes.xml" id="njs0.2.0">0.2.0</link>).
3011 </para> 3173 </para>
3012 3174
3067 3229
3068 </section> 3230 </section>
3069 3231
3070 3232
3071 <section id="process" name="process"> 3233 <section id="process" name="process">
3234
3235 <para>
3236 <table width="100%">
3237 <tr><td><link id="process_argv"><literal>process.argv</literal></link></td></tr>
3238 <tr><td><link id="process_env"><literal>process.env</literal></link></td></tr>
3239 <tr><td><link id="process_pid"><literal>process.pid</literal></link></td></tr>
3240 <tr><td><link id="process_ppid"><literal>process.ppid</literal></link></td></tr>
3241 </table>
3242 </para>
3072 3243
3073 <para> 3244 <para>
3074 The <literal>process</literal> object is a global object 3245 The <literal>process</literal> object is a global object
3075 that provides information about the current process 3246 that provides information about the current process
3076 (<link doc="changes.xml" id="njs0.3.3">0.3.3</link>). 3247 (<link doc="changes.xml" id="njs0.3.3">0.3.3</link>).
3274 3445
3275 3446
3276 <section id="textdecoder" name="Text Decoder"> 3447 <section id="textdecoder" name="Text Decoder">
3277 3448
3278 <para> 3449 <para>
3450 <table width="100%">
3451 <tr><td><link id="textdecoder_constructor"><literal>TextDecoder()</literal></link></td></tr>
3452 <tr><td><link id="textdecoder_encoding"><literal>TextDecoder.prototype.encoding</literal></link></td></tr>
3453 <tr><td><link id="textdecoder_fatal"><literal>TextDecoder.prototype.fatal</literal></link></td></tr>
3454 <tr><td><link id="textdecoder_ignorebom"><literal>TextDecoder.prototype.ignoreBOM</literal></link></td></tr>
3455 <tr><td><link id="textdecoder_decode"><literal>TextDecoder.prototype.decode()</literal></link></td></tr>
3456 </table>
3457 </para>
3458
3459 <para>
3279 The <literal>TextDecoder</literal> 3460 The <literal>TextDecoder</literal>
3280 produces a stream of code points 3461 produces a stream of code points
3281 from a stream of bytes 3462 from a stream of bytes
3282 (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>). 3463 (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>).
3283 </para> 3464 </para>
3284 3465
3285 <para> 3466 <para>
3286 <list type="tag"> 3467 <list type="tag">
3287 3468
3288 <tag-name><literal>TextDecoder([[<value>encoding</value>], 3469 <tag-name id="textdecoder_constructor"><literal>TextDecoder([[<value>encoding</value>],
3289 <value>options</value>])</literal></tag-name> 3470 <value>options</value>])</literal></tag-name>
3290 <tag-desc> 3471 <tag-desc>
3291 Creates a new <literal>TextDecoder</literal> object 3472 Creates a new <literal>TextDecoder</literal> object
3292 for specified <literal>encoding</literal>, 3473 for specified <literal>encoding</literal>,
3293 currently, only UTF-8 is supported. 3474 currently, only UTF-8 is supported.
3364 3545
3365 3546
3366 <section id="textencoder" name="Text Encoder"> 3547 <section id="textencoder" name="Text Encoder">
3367 3548
3368 <para> 3549 <para>
3550 <table width="100%">
3551 <tr><td><link id="textencoder_constructor"><literal>TextEncoder()</literal></link></td></tr>
3552 <tr><td><link id="textencoder_encode"><literal>TextEncoder.prototype.encode()</literal></link></td></tr>
3553 <tr><td><link id="textencoder_encodeinto"><literal>TextEncoder.prototype.encodeInto()</literal></link></td></tr>
3554 </table>
3555 </para>
3556
3557 <para>
3369 The <literal>TextEncoder</literal> object 3558 The <literal>TextEncoder</literal> object
3370 produces a byte stream with UTF-8 encoding 3559 produces a byte stream with UTF-8 encoding
3371 from a stream of code points 3560 from a stream of code points
3372 (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>). 3561 (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>).
3373 </para> 3562 </para>
3374 3563
3375 <para> 3564 <para>
3376 <list type="tag"> 3565 <list type="tag">
3377 3566
3378 <tag-name><literal>TextEncoder()</literal></tag-name> 3567 <tag-name id="textencoder_constructor"><literal>TextEncoder()</literal></tag-name>
3379 <tag-desc> 3568 <tag-desc>
3380 Returns a newly constructed <literal>TextEncoder</literal> 3569 Returns a newly constructed <literal>TextEncoder</literal>
3381 that will generate a byte stream with UTF-8 encoding. 3570 that will generate a byte stream with UTF-8 encoding.
3382 </tag-desc> 3571 </tag-desc>
3383 3572
3418 3607
3419 </section> 3608 </section>
3420 3609
3421 3610
3422 <section id="njs_api_timers" name="timers"> 3611 <section id="njs_api_timers" name="timers">
3612
3613 <para>
3614 <table width="100%">
3615 <tr><td><link id="cleartimeout"><literal>clearTimeout()</literal></link></td></tr>
3616 <tr><td><link id="settimeout"><literal>setTimeout()</literal></link></td></tr>
3617 </table>
3618 </para>
3423 3619
3424 <para> 3620 <para>
3425 <list type="tag"> 3621 <list type="tag">
3426 3622
3427 <tag-name id="cleartimeout"><literal>clearTimeout(<value>timeout</value>)</literal></tag-name> 3623 <tag-name id="cleartimeout"><literal>clearTimeout(<value>timeout</value>)</literal></tag-name>
3456 3652
3457 </list> 3653 </list>
3458 </para> 3654 </para>
3459 3655
3460 <section id="njs_global_functions" name="Global functions"> 3656 <section id="njs_global_functions" name="Global functions">
3657
3658 <para>
3659 <table width="100%">
3660 <tr><td><link id="atob"><literal>atob()</literal></link></td></tr>
3661 <tr><td><link id="btoa"><literal>btoa()</literal></link></td></tr>
3662 </table>
3663 </para>
3461 3664
3462 <para> 3665 <para>
3463 <list type="tag"> 3666 <list type="tag">
3464 3667
3465 <tag-name id="atob"><literal>atob(<value>encodedData</value>)</literal></tag-name> 3668 <tag-name id="atob"><literal>atob(<value>encodedData</value>)</literal></tag-name>
3514 3717
3515 <section id="builtin_modules" name="built-in modules"> 3718 <section id="builtin_modules" name="built-in modules">
3516 3719
3517 3720
3518 <section id="buffer" name="Buffer"> 3721 <section id="buffer" name="Buffer">
3722
3723 <para>
3724 <table width="100%">
3725 <tr><td><link id="buffer_alloc"><literal>Buffer.alloc()</literal></link></td></tr>
3726 <tr><td><link id="buffer_alloc_unsafe"><literal>Buffer.allocUnsafe()</literal></link></td></tr>
3727 <tr><td><link id="buffer_bytelength"><literal>Buffer.byteLength()</literal></link></td></tr>
3728 <tr><td><link id="buffer_compare"><literal>Buffer.compare()</literal></link></td></tr>
3729 <tr><td><link id="buffer_concat"><literal>Buffer.concat()</literal></link></td></tr>
3730 <tr><td><link id="buffer_from_array"><literal>Buffer.from(array)</literal></link></td></tr>
3731 <tr><td><link id="buffer_from_arraybuffer"><literal>Buffer.from(arrayBuffer)</literal></link></td></tr>
3732 <tr><td><link id="buffer_from_buffer"><literal>Buffer.from(buffer)</literal></link></td></tr>
3733 <tr><td><link id="buffer_from_object"><literal>Buffer.from(object)</literal></link></td></tr>
3734 <tr><td><link id="buffer_from_string"><literal>Buffer.from(string)</literal></link></td></tr>
3735 <tr><td><link id="buffer_is_buffer"><literal>Buffer.isBuffer()</literal></link></td></tr>
3736 <tr><td><link id="buffer_is_encoding"><literal>Buffer.isEncoding()</literal></link></td></tr>
3737 <tr><td><link id="buf_index"><literal>buffer[]</literal></link></td></tr>
3738 <tr><td><link id="buf_buffer"><literal>buf.buffer</literal></link></td></tr>
3739 <tr><td><link id="buf_byte_offset"><literal>buf.byteOffset</literal></link></td></tr>
3740 <tr><td><link id="buf_compare"><literal>buf.compare()</literal></link></td></tr>
3741 <tr><td><link id="buf_copy"><literal>buf.copy()</literal></link></td></tr>
3742 <tr><td><link id="buf_equals"><literal>buf.equals()</literal></link></td></tr>
3743 <tr><td><link id="buf_fill"><literal>buf.fill()</literal></link></td></tr>
3744 <tr><td><link id="buf_includes"><literal>buf.includes()</literal></link></td></tr>
3745 <tr><td><link id="buf_indexof"><literal>buf.indexOf()</literal></link></td></tr>
3746 <tr><td><link id="buf_lastindexof"><literal>buf.lastIndexOf()</literal></link></td></tr>
3747 <tr><td><link id="buf_length"><literal>buf.length</literal></link></td></tr>
3748 <tr><td><link id="buf_readintbe"><literal>buf.readIntBE()</literal></link></td></tr>
3749 <tr><td><link id="buf_readintle"><literal>buf.readIntLE()</literal></link></td></tr>
3750 <tr><td><link id="buf_readuintbe"><literal>buf.readUIntBE()</literal></link></td></tr>
3751 <tr><td><link id="buf_readuintle"><literal>buf.readUIntLE()</literal></link></td></tr>
3752 <tr><td><link id="buf_readdobulebe"><literal>buf.readDoubleBE</literal></link></td></tr>
3753 <tr><td><link id="buf_readdobulele"><literal>buf.readDoubleLE()</literal></link></td></tr>
3754 <tr><td><link id="buf_readfloatbe"><literal>buf.readFloatBE()</literal></link></td></tr>
3755 <tr><td><link id="buf_readfloatle"><literal>buf.readFloatLE()</literal></link></td></tr>
3756 <tr><td><link id="buf_subarray"><literal>buf.subarray()</literal></link></td></tr>
3757 <tr><td><link id="buf_slice"><literal>buf.slice()</literal></link></td></tr>
3758 <tr><td><link id="buf_swap16"><literal>buf.swap16()</literal></link></td></tr>
3759 <tr><td><link id="buf_swap32"><literal>buf.swap32()</literal></link></td></tr>
3760 <tr><td><link id="buf_swap64"><literal>buf.swap64()</literal></link></td></tr>
3761 <tr><td><link id="buf_tojson"><literal>buf.toJSON()</literal></link></td></tr>
3762 <tr><td><link id="buf_tostring"><literal>buf.toString()</literal></link></td></tr>
3763 <tr><td><link id="buf_write"><literal>buf.write()</literal></link></td></tr>
3764 <tr><td><link id="buf_writeintbe"><literal>buf.writeIntBE()</literal></link></td></tr>
3765 <tr><td><link id="buf_writeintle"><literal>buf.writeIntLE()</literal></link></td></tr>
3766 <tr><td><link id="buf_writeuintbe"><literal>buf.writeUIntBE()</literal></link></td></tr>
3767 <tr><td><link id="buf_writeuintle"><literal>buf.writeUIntLE()</literal></link></td></tr>
3768 <tr><td><link id="buf_writedoublebe"><literal>buf.writeDoubleBE()</literal></link></td></tr>
3769 <tr><td><link id="buf_writedoublele"><literal>buf.writeDoubleLE()</literal></link></td></tr>
3770 <tr><td><link id="buf_writefloatbe"><literal>buf.writeFloatBE()</literal></link></td></tr>
3771 <tr><td><link id="buf_writefloatle"><literal>buf.writeFloatLE()</literal></link></td></tr>
3772 </table>
3773 </para>
3519 3774
3520 <para> 3775 <para>
3521 <list type="tag"> 3776 <list type="tag">
3522 3777
3523 <tag-name id="buffer_alloc"><literal>Buffer.alloc(<value>size</value>[, 3778 <tag-name id="buffer_alloc"><literal>Buffer.alloc(<value>size</value>[,
3893 <tag-desc> 4148 <tag-desc>
3894 Reads a 32-bit, little-endian float from <literal>buf</literal> 4149 Reads a 32-bit, little-endian float from <literal>buf</literal>
3895 at the specified <value>offset</value>. 4150 at the specified <value>offset</value>.
3896 </tag-desc> 4151 </tag-desc>
3897 4152
3898 <tag-name id="buf_subarray"><literal>buf.subarray[<value>start</value>[, 4153 <tag-name id="buf_subarray"><literal>buf.subarray([<value>start</value>[,
3899 <value>end</value>]])</literal></tag-name> 4154 <value>end</value>]])</literal></tag-name>
3900 <tag-desc> 4155 <tag-desc>
3901 Returns a new <literal>buf</literal> 4156 Returns a new <literal>buf</literal>
3902 that references the same memory as the original, 4157 that references the same memory as the original,
3903 but offset and cropped by 4158 but offset and cropped by
3907 the same result as that of end equal to 4162 the same result as that of end equal to
3908 <link id="buf_length"><literal>buf.length</literal></link> 4163 <link id="buf_length"><literal>buf.length</literal></link>
3909 is returned. 4164 is returned.
3910 </tag-desc> 4165 </tag-desc>
3911 4166
3912 <tag-name id="buf_slice"><literal>buf.slice[<value>start</value>[, 4167 <tag-name id="buf_slice"><literal>buf.slice([<value>start</value>[,
3913 <value>end</value>]])</literal></tag-name> 4168 <value>end</value>]])</literal></tag-name>
3914 <tag-desc> 4169 <tag-desc>
3915 Returns a new <literal>buf</literal> 4170 Returns a new <literal>buf</literal>
3916 that references the same memory as the original, 4171 that references the same memory as the original,
3917 but offset and cropped by the 4172 but offset and cropped by the
4097 4352
4098 4353
4099 <section id="crypto" name="Crypto"> 4354 <section id="crypto" name="Crypto">
4100 4355
4101 <para> 4356 <para>
4357 <table width="100%">
4358 <tr><td><link id="crypto_createhash"><literal>crypto.createHash()</literal></link></td></tr>
4359 <tr><td><link id="crypto_createhmac"><literal>crypto.createHmac()</literal></link></td></tr>
4360 </table>
4361 </para>
4362
4363 <para>
4102 <note> 4364 <note>
4103 Since <link doc="changes.xml" id="njs0.7.0">0.7.0</link>, 4365 Since <link doc="changes.xml" id="njs0.7.0">0.7.0</link>,
4104 extended crypto API is available as a global 4366 extended crypto API is available as a global
4105 <link id="builtin_crypto">crypto</link> object. 4367 <link id="builtin_crypto">crypto</link> object.
4106 </note> 4368 </note>
4136 </list> 4398 </list>
4137 </para> 4399 </para>
4138 4400
4139 4401
4140 <section id="crypto_hash" name="Hash"> 4402 <section id="crypto_hash" name="Hash">
4403
4404 <para>
4405 <table width="100%">
4406 <tr><td><link id="crypto_hash_update"><literal>hash.update()</literal></link></td></tr>
4407 <tr><td><link id="crypto_hash_digest"><literal>hash.digest()</literal></link></td></tr>
4408 </table>
4409 </para>
4141 4410
4142 <para> 4411 <para>
4143 <list type="tag"> 4412 <list type="tag">
4144 4413
4145 <tag-name id="crypto_hash_update"><literal>hash.update(<value>data</value>)</literal></tag-name> 4414 <tag-name id="crypto_hash_update"><literal>hash.update(<value>data</value>)</literal></tag-name>
4186 4455
4187 4456
4188 <section id="crypto_hmac" name="HMAC"> 4457 <section id="crypto_hmac" name="HMAC">
4189 4458
4190 <para> 4459 <para>
4460 <table width="100%">
4461 <tr><td><link id="crypto_hmac_update"><literal>hmac.update()</literal></link></td></tr>
4462 <tr><td><link id="crypto_hmac_digest"><literal>hmac.digest()</literal></link></td></tr>
4463 </table>
4464 </para>
4465
4466 <para>
4191 <list type="tag"> 4467 <list type="tag">
4192 4468
4193 <tag-name id="crypto_hmac_update"><literal>hmac.update(<value>data</value>)</literal></tag-name> 4469 <tag-name id="crypto_hmac_update"><literal>hmac.update(<value>data</value>)</literal></tag-name>
4194 <tag-desc> 4470 <tag-desc>
4195 Updates the HMAC content with the given <value>data</value>. 4471 Updates the HMAC content with the given <value>data</value>.
4227 4503
4228 </section> 4504 </section>
4229 4505
4230 4506
4231 <section id="njs_api_fs" name="File System"> 4507 <section id="njs_api_fs" name="File System">
4508
4509 <para>
4510 <table width="100%">
4511 <tr><td><link id="fs_accesssync"><literal>fs.accessSync()</literal></link></td></tr>
4512 <tr><td><link id="fs_appendfilesync"><literal>fs.appendFileSync()</literal></link></td></tr>
4513 <tr><td><link id="fs_fstatsync"><literal>fs.fstatSync()</literal></link></td></tr>
4514 <tr><td><link id="fs_lstatsync"><literal>fs.lstatSync()</literal></link></td></tr>
4515 <tr><td><link id="fs_mkdirsync"><literal>fs.mkdirSync()</literal></link></td></tr>
4516 <tr><td><link id="fs_opensync"><literal>fs.openSync()</literal></link></td></tr>
4517 <tr><td><link id="fs_promises_open"><literal>fs.promises.open()</literal></link></td></tr>
4518 <tr><td><link id="fs_readsync"><literal>fs.readSync()</literal></link></td></tr>
4519 <tr><td><link id="fs_readdirsync"><literal>fs.readdirSync()</literal></link></td></tr>
4520 <tr><td><link id="fs_readfilesync"><literal>fs.readFileSync()</literal></link></td></tr>
4521 <tr><td><link id="fs_realpathsync"><literal>fs.realpathSync()</literal></link></td></tr>
4522 <tr><td><link id="fs_renamesync"><literal>fs.renameSync()</literal></link></td></tr>
4523 <tr><td><link id="fs_rmdirsync"><literal>fs.rmdirSync()</literal></link></td></tr>
4524 <tr><td><link id="fs_statsync"><literal>fs.statSync()</literal></link></td></tr>
4525 <tr><td><link id="fs_symlinksync"><literal>fs.symlinkSync()</literal></link></td></tr>
4526 <tr><td><link id="fs_writesync_buf"><literal>fs.writeSync()</literal></link></td></tr>
4527 <tr><td><link id="fs_writesync_str"><literal>fs.writeSync()</literal></link></td></tr>
4528 <tr><td><link id="fs_unlinksync"><literal>fs.unlinkSync()</literal></link></td></tr>
4529 <tr><td><link id="fs_writefilesync"><literal>fs.writeFileSync()</literal></link></td></tr>
4530 </table>
4531 </para>
4232 4532
4233 <para> 4533 <para>
4234 The File System module provides operations with files. 4534 The File System module provides operations with files.
4235 </para> 4535 </para>
4236 4536
4781 5081
4782 5082
4783 <section id="fs_filehandle" name="fs.FileHandle"> 5083 <section id="fs_filehandle" name="fs.FileHandle">
4784 5084
4785 <para> 5085 <para>
5086 <table width="100%">
5087 <tr><td><link id="filehandle_close"><literal>filehandle.close()</literal></link></td></tr>
5088 <tr><td><link id="filehandle_fd"><literal>filehandle.fd</literal></link></td></tr>
5089 <tr><td><link id="filehandle_read"><literal>filehandle.read()</literal></link></td></tr>
5090 <tr><td><link id="filehandle_stat"><literal>filehandle.stat()</literal></link></td></tr>
5091 <tr><td><link id="filehandle_write_buf"><literal>filehandle.write(<value>buf</value>)</literal></link></td></tr>
5092 <tr><td><link id="filehandle_write_str"><literal>filehandle.write(<value>str</value>)</literal></link></td></tr>
5093 </table>
5094 </para>
5095
5096 <para>
4786 The <literal>FileHandle</literal> object is an object wrapper 5097 The <literal>FileHandle</literal> object is an object wrapper
4787 for a numeric file descriptor 5098 for a numeric file descriptor
4788 (<link doc="changes.xml" id="njs0.7.7">0.7.7</link>). 5099 (<link doc="changes.xml" id="njs0.7.7">0.7.7</link>).
4789 Instances of the <literal>FileHandle</literal> object are created by the 5100 Instances of the <literal>FileHandle</literal> object are created by the
4790 <link id="fs_promises_open"><literal>fs.promises.open()</literal></link> method. 5101 <link id="fs_promises_open"><literal>fs.promises.open()</literal></link> method.
5283 5594
5284 5595
5285 <section id="querystring" name="Query String"> 5596 <section id="querystring" name="Query String">
5286 5597
5287 <para> 5598 <para>
5599 <table width="100%">
5600 <tr><td><link id="querystring_decode"><literal>querystring.decode()</literal></link></td></tr>
5601 <tr><td><link id="querystring_encode"><literal>querystring.encode()</literal></link></td></tr>
5602 <tr><td><link id="querystring_escape"><literal>querystring.escape()</literal></link></td></tr>
5603 <tr><td><link id="querystring_parse"><literal>querystring.parse()</literal></link></td></tr>
5604 <tr><td><link id="querystring_stringify"><literal>querystring.stringify()</literal></link></td></tr>
5605 <tr><td><link id="querystring_unescape"><literal>querystring.unescape()</literal></link></td></tr>
5606 </table>
5607 </para>
5608
5609 <para>
5288 The Query String module provides support 5610 The Query String module provides support
5289 for parsing and formatting URL query strings 5611 for parsing and formatting URL query strings
5290 (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>). 5612 (<link doc="changes.xml" id="njs0.4.3">0.4.3</link>).
5291 The Query String module object is returned by 5613 The Query String module object is returned by
5292 <literal>require('querystring')</literal>. 5614 <literal>require('querystring')</literal>.
5459 5781
5460 5782
5461 <section id="xml" name="XML"> 5783 <section id="xml" name="XML">
5462 5784
5463 <para> 5785 <para>
5786 <table width="100%">
5787 <tr><td><link id="xml_parse"><literal>xml.parse()</literal></link></td></tr>
5788 <tr><td><link id="xml_c14n"><literal>xml.c14n()</literal></link></td></tr>
5789 <tr><td><link id="xml_exclusivec14n"><literal>xml.exclusiveC14n()</literal></link></td></tr>
5790 <tr><td><link id="xml_serialize"><literal>xml.serialize()</literal></link></td></tr>
5791 <tr><td><link id="xml_serialize_tostring"><literal>xml.serializeToString()</literal></link></td></tr>
5792 <tr><td><link id="xml_doc"><literal>XMLDoc</literal></link></td></tr>
5793 <tr><td><link id="xml_node"><literal>XMLNode</literal></link></td></tr>
5794 <tr><td><link id="xml_xmlattr"><literal>XMLAttr</literal></link></td></tr>
5795 </table>
5796 </para>
5797
5798 <para>
5464 The XML module allows working with XML documents 5799 The XML module allows working with XML documents
5465 (since <link doc="changes.xml" id="njs0.7.10">0.7.10</link>). 5800 (since <link doc="changes.xml" id="njs0.7.10">0.7.10</link>).
5466 The XML module object is returned by 5801 The XML module object is returned by
5467 <literal>require('xml')</literal>. 5802 <literal>require('xml')</literal>.
5468 </para> 5803 </para>
5776 6111
5777 </section> 6112 </section>
5778 6113
5779 6114
5780 <section id="zlib" name="zlib"> 6115 <section id="zlib" name="zlib">
6116
6117 <para>
6118 <table width="100%">
6119 <tr><td><link id="zlib_deflaterawsync"><literal>zlib.deflateRawSync()</literal></link></td></tr>
6120 <tr><td><link id="zlib_deflatesync"><literal>zlib.deflateSync()</literal></link></td></tr>
6121 <tr><td><link id="zlib_inflaterawsync"><literal>zlib.inflateRawSync()</literal></link></td></tr>
6122 <tr><td><link id="zlib_inflatesync"><literal>zlib.inflateSync()</literal></link></td></tr>
6123 </table>
6124 </para>
5781 6125
5782 <para> 6126 <para>
5783 The zlib module provides compression functionality using the 6127 The zlib module provides compression functionality using the
5784 “deflate” and “inflate” algorithms 6128 “deflate” and “inflate” algorithms
5785 (since <link doc="changes.xml" id="njs0.7.12">0.7.12</link>). 6129 (since <link doc="changes.xml" id="njs0.7.12">0.7.12</link>).