Browse Source

url: move originFor, domainToAscii and domainToUnicode

Move non-standard methods to `url` module instead of exposing as
static methods on the `URL` object.

PR-URL: https://github.com/nodejs/node/pull/10512
Reviewed-By: Italo A. Casas <me@italoacasas.com>
Reviewed-By: Michaël Zasso <targos@protonmail.com>
v7.x
James M Snell 8 years ago
committed by Evan Lucas
parent
commit
2b98ea0dec
  1. 15
      lib/internal/url.js
  2. 3
      lib/url.js
  3. 4
      test/parallel/test-url-domain-ascii-unicode.js
  4. 8
      test/parallel/test-util-inspect-tuple-origin.js
  5. 4
      test/parallel/test-whatwg-url-origin-for.js

15
lib/internal/url.js

@ -69,7 +69,7 @@ class TupleOrigin {
toString(unicode = false) {
var result = this[kScheme];
result += '://';
result += unicode ? URL.domainToUnicode(this[kHost]) : this[kHost];
result += unicode ? domainToUnicode(this[kHost]) : this[kHost];
if (this[kPort] !== undefined && this[kPort] !== null)
result += `:${this[kPort]}`;
return result;
@ -898,13 +898,16 @@ function originFor(url, base) {
return origin;
}
URL.originFor = originFor;
URL.domainToASCII = function(domain) {
function domainToASCII(domain) {
return binding.domainToASCII(String(domain));
};
URL.domainToUnicode = function(domain) {
}
function domainToUnicode(domain) {
return binding.domainToUnicode(String(domain));
};
}
exports.URL = URL;
exports.originFor = originFor;
exports.domainToASCII = domainToASCII;
exports.domainToUnicode = domainToUnicode;
exports.encodeAuth = encodeAuth;

3
lib/url.js

@ -17,6 +17,9 @@ exports.resolve = urlResolve;
exports.resolveObject = urlResolveObject;
exports.format = urlFormat;
exports.URL = internalUrl.URL;
exports.originFor = internalUrl.originFor;
exports.domainToASCII = internalUrl.domainToASCII;
exports.domainToUnicode = internalUrl.domainToUnicode;
exports.Url = Url;

4
test/parallel/test-url-domain-ascii-unicode.js

@ -4,8 +4,8 @@ require('../common');
const strictEqual = require('assert').strictEqual;
const url = require('url');
const domainToASCII = url.URL.domainToASCII;
const domainToUnicode = url.URL.domainToUnicode;
const domainToASCII = url.domainToASCII;
const domainToUnicode = url.domainToUnicode;
const domainWithASCII = [
['ıídيٴ', 'xn--d-iga7ro0q9f'],

8
test/parallel/test-util-inspect-tuple-origin.js

@ -3,10 +3,10 @@
require('../common');
const assert = require('assert');
const inspect = require('util').inspect;
const URL = require('url').URL;
const originFor = require('url').originFor;
assert.strictEqual(
inspect(URL.originFor('http://test.com:8000')),
inspect(originFor('http://test.com:8000')),
`TupleOrigin {
scheme: http,
host: test.com,
@ -16,7 +16,7 @@ assert.strictEqual(
);
assert.strictEqual(
inspect(URL.originFor('http://test.com')),
inspect(originFor('http://test.com')),
`TupleOrigin {
scheme: http,
host: test.com,
@ -27,7 +27,7 @@ assert.strictEqual(
assert.strictEqual(
inspect(URL.originFor('https://test.com')),
inspect(originFor('https://test.com')),
`TupleOrigin {
scheme: https,
host: test.com,

4
test/parallel/test-whatwg-url-origin-for.js

@ -2,7 +2,7 @@
const common = require('../common');
const URL = require('url').URL;
const originFor = require('url').originFor;
const path = require('path');
const assert = require('assert');
const tests = require(path.join(common.fixturesDir, 'url-tests.json'));
@ -12,7 +12,7 @@ for (const test of tests) {
continue;
if (test.origin) {
const origin = URL.originFor(test.input, test.base);
const origin = originFor(test.input, test.base);
// Pass true to origin.toString() to enable unicode serialization.
assert.strictEqual(origin.toString(true), test.origin);
}

Loading…
Cancel
Save