[njs] Added TypeScript test.
Dmitry Volyntsev
xeioex at nginx.com
Mon Jul 6 18:39:38 UTC 2020
details: https://hg.nginx.org/njs/rev/29ff89055e29
branches:
changeset: 1452:29ff89055e29
user: Dmitry Volyntsev <xeioex at nginx.com>
date: Mon Jul 06 18:37:13 2020 +0000
description:
Added TypeScript test.
diffstat:
auto/make | 3 ++
test/ts/test.ts | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 69 insertions(+), 0 deletions(-)
diffs (83 lines):
diff -r 5c84e6e56386 -r 29ff89055e29 auto/make
--- a/auto/make Mon Jul 06 16:44:03 2020 +0000
+++ b/auto/make Mon Jul 06 18:37:13 2020 +0000
@@ -265,6 +265,9 @@ ts:
cp nginx/ts/*.ts $NJS_BUILD_DIR/ts/
cp src/ts/*.ts $NJS_BUILD_DIR/ts/
+ts_test: ts
+ tsc ./test/ts/test.ts
+
dist:
NJS_VER=`grep NJS_VERSION src/njs.h | sed -e 's/.*"\(.*\)".*/\1/'`; \\
rm -rf njs-\$\${NJS_VER} \\
diff -r 5c84e6e56386 -r 29ff89055e29 test/ts/test.ts
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test/ts/test.ts Mon Jul 06 18:37:13 2020 +0000
@@ -0,0 +1,66 @@
+/// <reference path="../../build/ts/ngx_http_js_module.d.ts" />
+
+function handler(r: NginxHTTPRequest) {
+ var bs: NjsByteString;
+ var s: string;
+
+ // builtin string vs NjsByteString
+
+ s = 'ordinary string';
+ bs = String.bytesFrom('000000', 'hex');
+ bs = s.toBytes();
+ bs = s.toUTF8();
+ bs.fromBytes(null, null);
+
+ s = bs + '';
+
+ // r.uri
+
+ if (r.uri == '/') {
+ }
+
+ // r.args
+
+ bs = r.args.x;
+ bs = r.args[1];
+ s = r.args.x.fromUTF8();
+ s = r.args.x + '';
+
+ // r.headersIn
+
+ r.headersIn['Accept'].fromBytes() == 'dddd';
+
+ // r.headersOut
+
+ r.headersOut['Content-Type'] = 'text/plain';
+ // Warning: r.headersOut['Content-Type'] = ['a', 'b'];
+ r.headersOut['Connection'] = undefined;
+ r.headersOut['Connection'] = null;
+
+ r.headersOut['Set-Cookie'] = ['aaa', 'bbb'];
+ r.headersOut['Foo'] = ['aaa', 'bbb'];
+
+ r.subrequest('/uri', reply => r.return(200, reply.headersOut["Location"]));
+
+ // r.log
+
+ r.log(bs);
+ r.log(r.headersOut['Connection']);
+
+ // r.variables
+
+ r.variables.a == 'a';
+ r.variables.cookie_a = 'b';
+
+ // r.subrequest
+ r.subrequest('/p/sub1').then(reply => r.return(reply.status));
+ r.subrequest('/p/sub2', reply => r.return(reply.status));
+ r.subrequest('/p/sub3', {detached:true});
+ r.subrequest('/p/sub4', 'a=1&b=2').then(reply => r.return(reply.status,
+ JSON.stringify(JSON.parse(reply.responseBody))));
+
+ // builtin objects
+
+ njs.dump('asdf');
+ njs.version != process.argv[1];
+}
More information about the nginx-devel
mailing list