Skip to content

Commit

Permalink
refactor(mail_to): use native URLSearchParams (#5002)
Browse files Browse the repository at this point in the history
and the package "querystring" is deprecated.
  • Loading branch information
renbaoshuo committed Jun 22, 2022
1 parent 8193550 commit 24db105
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 8 deletions.
3 changes: 1 addition & 2 deletions lib/plugins/helper/mail_to.js
@@ -1,7 +1,6 @@
'use strict';

const { htmlTag } = require('hexo-util');
const qs = require('querystring');
const { default: moize } = require('moize');

function mailToHelper(path, text, options = {}) {
Expand All @@ -28,7 +27,7 @@ function mailToHelper(path, text, options = {}) {
}
});

const querystring = qs.stringify(data);
const querystring = new URLSearchParams(data).toString();
if (querystring) attrs.href += `?${querystring}`;

return htmlTag('a', attrs, text);
Expand Down
10 changes: 4 additions & 6 deletions test/scripts/helpers/mail_to.js
@@ -1,7 +1,5 @@
'use strict';

const qs = require('querystring');

describe('mail_to', () => {
const Hexo = require('../../../lib/hexo');
const hexo = new Hexo(__dirname);
Expand Down Expand Up @@ -33,31 +31,31 @@ describe('mail_to', () => {

it('cc (string)', () => {
const data = {cc: 'abc@abc.com'};
const querystring = qs.stringify(data);
const querystring = new URLSearchParams(data).toString();

mailto('abc@example.com', 'Email', {cc: 'abc@abc.com'})
.should.eql('<a href="mailto:abc@example.com?' + querystring + '" title="Email">Email</a>');
});

it('cc (array)', () => {
const data = {cc: 'abc@abc.com,bcd@bcd.com'};
const querystring = qs.stringify(data);
const querystring = new URLSearchParams(data).toString();

mailto('abc@example.com', 'Email', {cc: ['abc@abc.com', 'bcd@bcd.com']})
.should.eql('<a href="mailto:abc@example.com?' + querystring + '" title="Email">Email</a>');
});

it('bcc (string)', () => {
const data = {bcc: 'abc@abc.com'};
const querystring = qs.stringify(data);
const querystring = new URLSearchParams(data).toString();

mailto('abc@example.com', 'Email', {bcc: 'abc@abc.com'})
.should.eql('<a href="mailto:abc@example.com?' + querystring + '" title="Email">Email</a>');
});

it('bcc (array)', () => {
const data = {bcc: 'abc@abc.com,bcd@bcd.com'};
const querystring = qs.stringify(data);
const querystring = new URLSearchParams(data).toString();

mailto('abc@example.com', 'Email', {bcc: ['abc@abc.com', 'bcd@bcd.com']})
.should.eql('<a href="mailto:abc@example.com?' + querystring + '" title="Email">Email</a>');
Expand Down

0 comments on commit 24db105

Please sign in to comment.