[njs] Types: updates ts types.

Dmitry Volyntsev xeioex at nginx.com
Thu Aug 4 03:51:01 UTC 2022


details:   https://hg.nginx.org/njs/rev/ffd0f3d3f6df
branches:  
changeset: 1922:ffd0f3d3f6df
user:      Dmitry Volyntsev <xeioex at nginx.com>
date:      Wed Aug 03 20:26:24 2022 -0700
description:
Types: updates ts types.

diffstat:

 test/ts/test.ts            |   6 ++++++
 ts/ngx_http_js_module.d.ts |  10 ++++++++++
 ts/njs_core.d.ts           |  36 ++++++++++++++++++++++++++++++++++++
 ts/tsconfig.json           |   2 +-
 4 files changed, 53 insertions(+), 1 deletions(-)

diffs (136 lines):

diff -r 648a8092c05a -r ffd0f3d3f6df test/ts/test.ts
--- a/test/ts/test.ts	Tue Aug 02 20:45:17 2022 -0700
+++ b/test/ts/test.ts	Wed Aug 03 20:26:24 2022 -0700
@@ -174,9 +174,15 @@ function timers() {
     // Warning: clearTimeout(123);
 }
 
+function global_functions() {
+    const encodedData = btoa("text to encode");
+    const decodedData = atob(encodedData);
+}
+
 function njs_object() {
     njs.dump('asdf');
     njs.version != process.argv[1];
+    typeof njs.version_number == 'number';
     njs.on('exit', ()=> {});
 }
 
diff -r 648a8092c05a -r ffd0f3d3f6df ts/ngx_http_js_module.d.ts
--- a/ts/ngx_http_js_module.d.ts	Tue Aug 02 20:45:17 2022 -0700
+++ b/ts/ngx_http_js_module.d.ts	Wed Aug 03 20:26:24 2022 -0700
@@ -276,6 +276,15 @@ interface NginxHTTPSendBufferOptions {
 interface NginxHTTPRequest {
     /**
      * Request arguments object.
+     *
+     * Since 0.7.6, duplicate keys are returned as an array, keys are
+     * case-sensitive, both keys and values are percent-decoded.
+     * For example, the query string
+     *
+     * 'a=1&b=%32&A=3&b=4&B=two%20words'
+     * is converted to r.args as:
+     *
+     *   {a: "1", b: ["2", "4"], A: "3", B: "two words"}
      */
     readonly args: NginxHTTPArgs;
     /**
@@ -312,6 +321,7 @@ interface NginxHTTPRequest {
      * Performs an internal redirect to the specified uri.
      * If the uri starts with the “@” prefix, it is considered a named location.
      * The actual redirect happens after the handler execution is completed.
+     * Since 0.7.4, the method accepts escaped URIs.
      * @param uri Location to redirect to.
      */
     internalRedirect(uri: NjsStringOrBuffer): void;
diff -r 648a8092c05a -r ffd0f3d3f6df ts/njs_core.d.ts
--- a/ts/njs_core.d.ts	Tue Aug 02 20:45:17 2022 -0700
+++ b/ts/njs_core.d.ts	Wed Aug 03 20:26:24 2022 -0700
@@ -19,10 +19,14 @@ interface String {
     /**
      * Serializes a Unicode string with code points up to 255
      * into a byte string, otherwise, null is returned.
+     *
+     * @deprecated will be removed in the future.
      */
     toBytes(start?: number, end?: number): NjsByteString | null;
     /**
      * Serializes a Unicode string to a byte string using UTF8 encoding.
+     *
+     * @deprecated will be removed in the future.
      */
     toUTF8(start?: number, end?: number): NjsByteString;
 }
@@ -31,15 +35,21 @@ type NjsByteString = string & {
     /**
      * Returns a new Unicode string from a byte string where each byte is replaced
      * with a corresponding Unicode code point.
+     *
+     * @deprecated will be removed in the future.
      */
     fromBytes(start?: number, end?: number): string;
     /**
      * Converts a byte string containing a valid UTF8 string into a Unicode string,
      * otherwise null is returned.
+     *
+     * @deprecated will be removed in the future.
      */
     fromUTF8(start?: number, end?: number): string | null;
     /**
      * Encodes a byte string to hex, base64, or base64url.
+     *
+     * @deprecated will be removed in the future.
      */
     toString(encoding: Exclude<BufferEncoding, "utf8">): string;
 };
@@ -589,7 +599,17 @@ type NjsStringOrBuffer = NjsStringLike |
 // Global objects
 
 interface NjsGlobal {
+    /**
+     * Returns current njs version as a string.
+     * For example, '0.7.4'.
+     */
     readonly version: string;
+    /**
+     * Returns a number with the current version of njs.
+     * For example, “0.7.4” is returned as 0x000704.
+     * @since 0.7.4
+     */
+    readonly version_number: number;
     dump(value: any, indent?: number): string;
     /**
      * Registers a callback for the "exit" event. The callback is called before
@@ -654,3 +674,19 @@ declare function setTimeout<TArgs extend
  * @param handle A value returned by `setTimeout()`.
  */
 declare function clearTimeout(handle?: TimerHandle): void;
+
+/**
+ * Decodes a string of data which has been encoded using Base64 encoding.
+ *
+ * @param encodedData is a binary string that contains Base64-encoded data.
+ * @returns A string that contains decoded data from encodedData.
+ */
+declare function atob(encodedData: string): string;
+
+/**
+ * Creates a Base64-encoded ASCII string from a binary string.
+ *
+ * @param stringToEncode is a binary string to encode.
+ * @returns A string containing the Base64 representation of stringToEncode.
+ */
+declare function btoa(stringToEncode: string): string;
diff -r 648a8092c05a -r ffd0f3d3f6df ts/tsconfig.json
--- a/ts/tsconfig.json	Tue Aug 02 20:45:17 2022 -0700
+++ b/ts/tsconfig.json	Wed Aug 03 20:26:24 2022 -0700
@@ -1,7 +1,7 @@
 {
     "compilerOptions": {
         "target": "es5",
-        "module": "ES2017",
+        "module": "ES2015",
         "lib": [
             "ES2015",
             "ES2016.Array.Include",


More information about the nginx-devel mailing list