UNPKG

15.2 kBSource Map (JSON)View Raw
1{"version":3,"file":"url_parser.js","sourceRoot":"","sources":["../../../../../modules/@angular/router-deprecated/src/url_parser.ts"],"names":[],"mappings":"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","sourcesContent":["import {StringMapWrapper} from '../src/facade/collection';\nimport {BaseException} from '../src/facade/exceptions';\nimport {RegExpWrapper, isBlank, isPresent} from '../src/facade/lang';\n\nexport function convertUrlParamsToArray(urlParams: {[key: string]: any}): string[] {\n var paramsArray: any[] /** TODO #9100 */ = [];\n if (isBlank(urlParams)) {\n return [];\n }\n StringMapWrapper.forEach(\n urlParams, (value: any /** TODO #9100 */, key: any /** TODO #9100 */) => {\n paramsArray.push((value === true) ? key : key + '=' + value);\n });\n return paramsArray;\n}\n\n// Convert an object of url parameters into a string that can be used in an URL\nexport function serializeParams(urlParams: {[key: string]: any}, joiner = '&'): string {\n return convertUrlParamsToArray(urlParams).join(joiner);\n}\n\n/**\n * This class represents a parsed URL\n */\nexport class Url {\n constructor(\n public path: string, public child: Url = null, public auxiliary: Url[] = /*@ts2dart_const*/[],\n public params: {[key: string]: any} = /*@ts2dart_const*/ {}) {}\n\n toString(): string {\n return this.path + this._matrixParamsToString() + this._auxToString() + this._childString();\n }\n\n segmentToString(): string { return this.path + this._matrixParamsToString(); }\n\n /** @internal */\n _auxToString(): string {\n return this.auxiliary.length > 0 ?\n ('(' + this.auxiliary.map(sibling => sibling.toString()).join('//') + ')') :\n '';\n }\n\n private _matrixParamsToString(): string {\n var paramString = serializeParams(this.params, ';');\n if (paramString.length > 0) {\n return ';' + paramString;\n }\n return '';\n }\n\n /** @internal */\n _childString(): string { return isPresent(this.child) ? ('/' + this.child.toString()) : ''; }\n}\n\nexport class RootUrl extends Url {\n constructor(\n path: string, child: Url = null, auxiliary: Url[] = /*@ts2dart_const*/[],\n params: {[key: string]: any} = null) {\n super(path, child, auxiliary, params);\n }\n\n toString(): string {\n return this.path + this._auxToString() + this._childString() + this._queryParamsToString();\n }\n\n segmentToString(): string { return this.path + this._queryParamsToString(); }\n\n private _queryParamsToString(): string {\n if (isBlank(this.params)) {\n return '';\n }\n\n return '?' + serializeParams(this.params);\n }\n}\n\nexport function pathSegmentsToUrl(pathSegments: string[]): Url {\n var url = new Url(pathSegments[pathSegments.length - 1]);\n for (var i = pathSegments.length - 2; i >= 0; i -= 1) {\n url = new Url(pathSegments[i], url);\n }\n return url;\n}\n\nvar SEGMENT_RE = RegExpWrapper.create('^[^\\\\/\\\\(\\\\)\\\\?;=&#]+');\nfunction matchUrlSegment(str: string): string {\n var match = RegExpWrapper.firstMatch(SEGMENT_RE, str);\n return isPresent(match) ? match[0] : '';\n}\nvar QUERY_PARAM_VALUE_RE = RegExpWrapper.create('^[^\\\\(\\\\)\\\\?;&#]+');\nfunction matchUrlQueryParamValue(str: string): string {\n var match = RegExpWrapper.firstMatch(QUERY_PARAM_VALUE_RE, str);\n return isPresent(match) ? match[0] : '';\n}\n\nexport class UrlParser {\n private _remaining: string;\n\n peekStartsWith(str: string): boolean { return this._remaining.startsWith(str); }\n\n capture(str: string): void {\n if (!this._remaining.startsWith(str)) {\n throw new BaseException(`Expected \"${str}\".`);\n }\n this._remaining = this._remaining.substring(str.length);\n }\n\n parse(url: string): Url {\n this._remaining = url;\n if (url == '' || url == '/') {\n return new Url('');\n }\n return this.parseRoot();\n }\n\n // segment + (aux segments) + (query params)\n parseRoot(): RootUrl {\n if (this.peekStartsWith('/')) {\n this.capture('/');\n }\n var path = matchUrlSegment(this._remaining);\n this.capture(path);\n\n var aux: Url[] = [];\n if (this.peekStartsWith('(')) {\n aux = this.parseAuxiliaryRoutes();\n }\n if (this.peekStartsWith(';')) {\n // TODO: should these params just be dropped?\n this.parseMatrixParams();\n }\n var child: any /** TODO #9100 */ = null;\n if (this.peekStartsWith('/') && !this.peekStartsWith('//')) {\n this.capture('/');\n child = this.parseSegment();\n }\n var queryParams: {[key: string]: any} = null;\n if (this.peekStartsWith('?')) {\n queryParams = this.parseQueryParams();\n }\n return new RootUrl(path, child, aux, queryParams);\n }\n\n // segment + (matrix params) + (aux segments)\n parseSegment(): Url {\n if (this._remaining.length == 0) {\n return null;\n }\n if (this.peekStartsWith('/')) {\n this.capture('/');\n }\n var path = matchUrlSegment(this._remaining);\n this.capture(path);\n\n var matrixParams: {[key: string]: any} = null;\n if (this.peekStartsWith(';')) {\n matrixParams = this.parseMatrixParams();\n }\n var aux: Url[] = [];\n if (this.peekStartsWith('(')) {\n aux = this.parseAuxiliaryRoutes();\n }\n var child: Url = null;\n if (this.peekStartsWith('/') && !this.peekStartsWith('//')) {\n this.capture('/');\n child = this.parseSegment();\n }\n return new Url(path, child, aux, matrixParams);\n }\n\n parseQueryParams(): {[key: string]: any} {\n var params: {[key: string]: any} = {};\n this.capture('?');\n this.parseQueryParam(params);\n while (this._remaining.length > 0 && this.peekStartsWith('&')) {\n this.capture('&');\n this.parseQueryParam(params);\n }\n return params;\n }\n\n parseMatrixParams(): {[key: string]: any} {\n var params: {[key: string]: any} = {};\n while (this._remaining.length > 0 && this.peekStartsWith(';')) {\n this.capture(';');\n this.parseParam(params);\n }\n return params;\n }\n\n parseParam(params: {[key: string]: any}): void {\n var key = matchUrlSegment(this._remaining);\n if (isBlank(key)) {\n return;\n }\n this.capture(key);\n var value: any = true;\n if (this.peekStartsWith('=')) {\n this.capture('=');\n var valueMatch = matchUrlSegment(this._remaining);\n if (isPresent(valueMatch)) {\n value = valueMatch;\n this.capture(value);\n }\n }\n\n params[key] = value;\n }\n\n parseQueryParam(params: {[key: string]: any}): void {\n var key = matchUrlSegment(this._remaining);\n if (isBlank(key)) {\n return;\n }\n this.capture(key);\n var value: any = true;\n if (this.peekStartsWith('=')) {\n this.capture('=');\n var valueMatch = matchUrlQueryParamValue(this._remaining);\n if (isPresent(valueMatch)) {\n value = valueMatch;\n this.capture(value);\n }\n }\n\n params[key] = value;\n }\n\n parseAuxiliaryRoutes(): Url[] {\n var routes: Url[] = [];\n this.capture('(');\n\n while (!this.peekStartsWith(')') && this._remaining.length > 0) {\n routes.push(this.parseSegment());\n if (this.peekStartsWith('//')) {\n this.capture('//');\n }\n }\n this.capture(')');\n\n return routes;\n }\n}\n\nexport var parser = new UrlParser();\n"]}
\No newline at end of file