UNPKG

uribuilder

Version:
210 lines (208 loc) 6.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var index_1 = require("./index"); var instanceOf_1 = require("./instanceOf"); var uriBuilder_1 = require("./uriBuilder"); function hr() { console.log('===================='); } function deepEq(a, b) { if (instanceOf_1.is(a, Object) || typeof a === 'object') { var result = true; for (var key in a) { if (key[0] === '_' || instanceOf_1.is(a[key], Function)) continue; result = result && deepEq(a[key], b[key]); if (!result) return result; } return result; } else if (instanceOf_1.is(a, Array)) { var result = true; for (var i = 0; i < a.length; i++) { result = result && deepEq(a[i], b[i]); if (!result) return result; } return result; } else { return a === b; } } hr(); console.info('URI Query Parse Test'); var queryDataSet = [ ['search=helloworld&class=commom', { search: 'helloworld', class: 'commom' }], [ 'search=helloworld&class=commom&class=typescript', { search: 'helloworld', class: ['commom', 'typescript'] } ], [ 'search=helloworld&class=commom&class=typescript&class=111', { search: 'helloworld', class: ['commom', 'typescript', 111] } ] ]; for (var _i = 0, queryDataSet_1 = queryDataSet; _i < queryDataSet_1.length; _i++) { var data = queryDataSet_1[_i]; console.log(data[0]); var queryModel = index_1.UriQueryBuilder.parse(data[0]); console.assert(deepEq(queryModel.model, data[1])); console.assert(deepEq(queryModel.toString(), data[0])); } hr(); console.info('URI Query Update Test'); var queryUpdateDataSet = [ [ 'https://www.youtube.com/watch?v=TlzfSfc_ymI', { v: 'test' }, 'https://www.youtube.com/watch?v=test' ], [ 'https://www.youtube.com/watch?v=TlzfymI', { v: 'test', a: [1, 2, 3, 4] }, 'https://www.youtube.com/watch?v=test&a=1&a=2&a=3&a=4' ] ]; for (var _a = 0, queryUpdateDataSet_1 = queryUpdateDataSet; _a < queryUpdateDataSet_1.length; _a++) { var data = queryUpdateDataSet_1[_a]; console.log(data[0]); var queryUpdated = uriBuilder_1.UriBuilder.updateQuery(data[0], data[1]); console.assert(deepEq(queryUpdated, data[2])); } hr(); console.info('URI Set Path Test'); var setPathDataSet = [ [ 'https://www.youtube.com/watch?v=TlzfSfc_ymI', 'test/a/b/c/', 'https://www.youtube.com/test/a/b/c/?v=TlzfSfc_ymI' ], [ 'https://www.youtube.com/watch?v=TlzfymI', '/test', 'https://www.youtube.com/test?v=TlzfymI' ] ]; for (var _b = 0, setPathDataSet_1 = setPathDataSet; _b < setPathDataSet_1.length; _b++) { var data = setPathDataSet_1[_b]; console.log(data[0]); var builder = uriBuilder_1.UriBuilder.parse(data[0]); builder.setPath(data[1]); console.assert(deepEq(builder.toString(), data[2])); } hr(); console.info('URI Parse Test'); var uriDataSet = [ [ 'https://www.youtube.com/watch', { schema: 'https', host: 'www.youtube.com', port: 80, pathSegments: ['watch'] } ], [ './a/b/c/watch', { schema: uriBuilder_1.UriBuilder.relative, host: '.', port: undefined, pathSegments: ['a', 'b', 'c', 'watch'] } ], [ 'https://www.youtube.com/watch?v=TlzfSfc_ymI&%E4%B8%AD%E6%96%87=%E4%B8%AD%E6%96%87', { schema: 'https', host: 'www.youtube.com', port: 80, pathSegments: ['watch'], query: { v: 'TlzfSfc_ymI', 中文: '中文' } } ], [ 'https://example.com:8080/a/b/c/d?key=2', { schema: 'https', host: 'example.com', port: 8080, pathSegments: ['a', 'b', 'c', 'd'], query: { key: 2 } } ], [ 'https://example.com:8080/a/b/c/d?key=2#hash', { schema: 'https', host: 'example.com', port: 8080, pathSegments: ['a', 'b', 'c', 'd'], query: { key: 2 }, fragment: 'hash' } ], [ 'https://example.com/a/#b/c/d?key=2', { schema: 'https', host: 'example.com', port: 80, pathSegments: ['a', ''], fragment: 'b/c/d?key=2' } ], [ 'https://test@example.com/a/#b/c/d?key=2', { schema: 'https', authority: { user: 'test' }, host: 'example.com', port: 80, pathSegments: ['a', ''], fragment: 'b/c/d?key=2' } ], [ 'https://test:1234@example.com/', { schema: 'https', authority: { user: 'test', password: '1234' }, host: 'example.com', port: 80, pathSegments: [''] } ] ]; for (var _c = 0, uriDataSet_1 = uriDataSet; _c < uriDataSet_1.length; _c++) { var data = uriDataSet_1[_c]; var uriModel = uriBuilder_1.UriBuilder.parse(data[0]); console.log(uriModel); console.assert(deepEq(uriModel, data[1])); console.assert(deepEq(uriModel.toString(), data[0])); } hr(); console.info('Empty URI Builder Test'); var emptyBuilder = new uriBuilder_1.UriBuilder(); emptyBuilder.schema = 'http'; emptyBuilder.host = 'example'; emptyBuilder.setPath('/home/index'); emptyBuilder.fragment = 'top'; emptyBuilder.setAuthority('guest'); emptyBuilder.query.action = 'back'; console.assert(emptyBuilder.toString() === 'http://guest@example/home/index?action=back#top'); emptyBuilder.toString(); hr(); console.info('Delete Query Param Test'); delete emptyBuilder.query.action; console.assert(emptyBuilder.toString() === 'http://guest@example/home/index#top'); console.log(emptyBuilder.toString()); hr(); console.info('Relative Test'); var relativeBuilder = uriBuilder_1.UriBuilder.parse('./home/exam?id=0'); relativeBuilder.query.id = 1; console.assert(relativeBuilder.toString() === './home/exam?id=1'); console.log(relativeBuilder.toString()); //# sourceMappingURL=test.js.map