Skip to content

Commit 7d32f76

Browse files
authored
fix short url (#236)
1 parent 9ba44de commit 7d32f76

13 files changed

Lines changed: 2351 additions & 2270 deletions

File tree

.circleci/config.yml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,10 @@ jobs:
2929
- run:
3030
name: Creating Artifacts
3131
command: |
32-
npm run -s shorturl
33-
mkdir -p /tmp/json_artifacts/lib
34-
cp package.json /tmp/json_artifacts
35-
cp lib/*.json /tmp/json_artifacts/lib
32+
npm run -s shorturl || (mkdir -p /tmp/short_urls/lib && cp lib/*.json /tmp/short_urls/lib)
3633
when: always
3734
- store_artifacts:
38-
path: /tmp/json_artifacts
39-
destination: short url
35+
path: /tmp/short_urls
36+
destination: short URLs
4037
- store_test_results:
4138
path: ~/lint-reports

.eslintrc.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
{
22
"parserOptions": {
3-
"sourceType": "script",
4-
"impliedStrict": false
5-
},
6-
"env": {
7-
"es6": true,
8-
"node": true
3+
"sourceType": "script"
94
},
105
"extends": [
116
"standard"

appveyor.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,4 @@ test_script:
2525
# to run your custom scripts instead of provider deployments
2626
after_test:
2727
- npm run report-coverage
28-
- npm run -s shorturl
29-
- git diff --name-only > git_diff.log || echo ""
30-
- git diff --cached --name-only >> git_diff.log || echo ""
31-
- test ! -s git_diff.log || 7z a shorturl.zip @git_diff.log && appveyor PushArtifact shorturl.zip
28+
- npm run -s shorturl || (7z a shorturl.zip lib/*.json && appveyor PushArtifact shorturl.zip)

lib/eslint-error.js

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
11
'use strict';
22
const LintError = require('./lint-error');
33
const locale = require('./locale');
4-
4+
const npmUrlPrefix = 'https://www.npmjs.com/package/eslint-plugin-';
55
const pluginDocBaseUrl = {
6-
flowtype: 'https://www.npmjs.com/package/eslint-plugin-flowtype#',
7-
gettext: 'https://www.npmjs.com/package/eslint-plugin-gettext#',
8-
promise: 'https://www.npmjs.com/package/eslint-plugin-promise#',
9-
alint: 'https://www.npmjs.com/package/eslint-plugin-alint#',
10-
jsdoc: 'https://www.npmjs.com/package/eslint-plugin-jsdoc#',
11-
sql: 'https://www.npmjs.com/package/eslint-plugin-sql#',
12-
standard: 'https://www.npmjs.com/package/eslint-plugin-standard#rules-explanations',
6+
sql: rule => npmUrlPrefix + `sql#eslint-plugin-sql-rules-${rule}`,
7+
standard: () => npmUrlPrefix + 'standard#rules-explanations',
8+
gettext: rule => npmUrlPrefix + `gettext#gettext${rule}`,
139
compat: (rule, error) => (
1410
rule === 'compat' && error.message.replace(
1511
/^(?:[a-z]+\.)?(\w+).*$/,
@@ -19,6 +15,13 @@ const pluginDocBaseUrl = {
1915
)
2016
),
2117
};
18+
[
19+
'flowtype',
20+
'jsdoc',
21+
'alint',
22+
].forEach((plugin) => {
23+
pluginDocBaseUrl[plugin] = rule => npmUrlPrefix + plugin + '#' + rule;
24+
});
2225

2326
/**
2427
* ESLint错误对象
@@ -93,24 +96,18 @@ function docUrl (rule, error) {
9396
if (!rule) {
9497
return;
9598
}
99+
let plugin;
96100
let baseUrl;
97101
if (/^(.+?)\/(.+)$/.test(rule)) {
102+
plugin = RegExp.$1;
98103
rule = RegExp.$2;
99-
baseUrl = lookupPluginDocBaseUrl(RegExp.$1);
104+
baseUrl = lookupPluginDocBaseUrl(plugin);
105+
if (baseUrl) {
106+
return baseUrl(rule, error);
107+
}
100108
} else {
101109
return `https://${locale === 'zh_CN' ? 'cn.' : ''}eslint.org/docs/rules/${rule}`;
102110
}
103-
if (baseUrl) {
104-
if (typeof baseUrl === 'function') {
105-
try {
106-
return baseUrl(rule, error);
107-
} catch (ex) {
108-
//
109-
}
110-
} else {
111-
return baseUrl.replace(/(#)$/, '$1' + rule);
112-
}
113-
}
114111
}
115112

116113
module.exports = ESLintError;

lib/short-doc-url.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ function shortDocUrl (error) {
1818
if (!error.doc) {
1919
return error;
2020
}
21-
return shortUrl(error.doc).then(shortUrl => {
21+
return shortUrl(error.doc).catch(ex => {
22+
//
23+
}).then(shortUrl => {
2224
if (shortUrl) {
2325
error.docShort = shortUrl;
2426
}
2527
return error;
26-
}, () => {
27-
return error;
2828
});
2929
}
3030

@@ -36,10 +36,10 @@ function shortUrl (url) {
3636
}
3737
return isInGFW.then(inGFW => {
3838
if (inGFW) {
39-
return got(`http://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long=${encodeURIComponent(url)}`, {
39+
return got(`https://api.t.sina.com.cn/short_url/shorten.json?source=3271760578&url_long=${encodeURIComponent(url)}`, {
4040
json: true,
4141
}).then(result => {
42-
return result.body[0].url_short;
42+
return result.body[0].url_short.replace(/^https?/i, 'https');
4343
});
4444
} else {
4545
return googl.shorten(url);

lib/shorturl.json

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,6 @@
170170
"http://jscs.info/rule/validateorderinobjectkeys": "https://goo.gl/awRGmF",
171171
"http://jscs.info/rule/validateparameterseparator": "https://goo.gl/fsC3cQ",
172172
"http://jscs.info/rule/validatequotemarks": "https://goo.gl/ANKpFh",
173-
"http://jscs.info/rules#disallowspacesinanonymousfunctionexpression": "https://goo.gl/SqL8gU",
174-
"http://jscs.info/rules#disallowspacesinnamedfunctionexpression": "https://goo.gl/nkKUhJ",
175-
"http://jscs.info/rules#requirespacesinanonymousfunctionexpression": "https://goo.gl/estety",
176-
"http://jscs.info/rules#requirespacesinnamedfunctionexpression": "https://goo.gl/D09Mlf",
177173
"https://cn.eslint.org/docs/rules/accessor-pairs": "https://goo.gl/zNSKkQ",
178174
"https://cn.eslint.org/docs/rules/array-bracket-newline": "https://goo.gl/W36GJw",
179175
"https://cn.eslint.org/docs/rules/array-bracket-spacing": "https://goo.gl/224A3t",
@@ -1285,6 +1281,7 @@
12851281
"https://github.com/lukeapage/eslint-plugin-switch-case/blob/head/docs/rules/newline-between-switch-case.md#readme": "https://goo.gl/gZ2giY",
12861282
"https://github.com/lukeapage/eslint-plugin-switch-case/blob/head/docs/rules/no-case-curly.md#readme": "https://goo.gl/NJYBGw",
12871283
"https://github.com/ma27/eslint-plugin-varspacing/blob/head/docs/rules/var-spacing.md#readme": "https://goo.gl/qzgjrA",
1284+
"https://github.com/maikziemer/eslint-plugin-extras/blob/head/docs/rules/sort-named-imports.md#readme": "https://goo.gl/acJG2H",
12881285
"https://github.com/manovotny/eslint-plugin-get-off-my-lawn/blob/head/docs/rules/prefer-arrow-functions.md#readme": "https://goo.gl/fJXthJ",
12891286
"https://github.com/meetup/eslint-plugin-meetup/blob/head/docs/rules/trn.md#readme": "https://goo.gl/1cX4Nc",
12901287
"https://github.com/mysticatea/eslint-plugin-es/blob/head/docs/rules/no-accessor-properties.md#readme": "https://goo.gl/dbL4ug",
@@ -2129,7 +2126,7 @@
21292126
"https://www.npmjs.com/package/eslint-plugin-flowtype#union-intersection-spacing": "https://goo.gl/ePu9XR",
21302127
"https://www.npmjs.com/package/eslint-plugin-flowtype#use-flow-type": "https://goo.gl/VJzAUP",
21312128
"https://www.npmjs.com/package/eslint-plugin-flowtype#valid-syntax": "https://goo.gl/cV5CgF",
2132-
"https://www.npmjs.com/package/eslint-plugin-gettext#no-variable-string": "https://goo.gl/wTkD6A",
2129+
"https://www.npmjs.com/package/eslint-plugin-gettext#gettextno-variable-string": "https://goo.gl/GV1cwe",
21332130
"https://www.npmjs.com/package/eslint-plugin-i18n-json#identical-keys": "https://goo.gl/r49Mkv",
21342131
"https://www.npmjs.com/package/eslint-plugin-i18n-json#valid-json": "https://goo.gl/6W6Uyi",
21352132
"https://www.npmjs.com/package/eslint-plugin-i18n-json#valid-message-syntax": "https://goo.gl/6HQ9ey",
@@ -2163,21 +2160,7 @@
21632160
"https://www.npmjs.com/package/eslint-plugin-mongodb#check-unset-updates": "https://goo.gl/ins9BT",
21642161
"https://www.npmjs.com/package/eslint-plugin-mongodb#check-update-calls": "https://goo.gl/ULmdkT",
21652162
"https://www.npmjs.com/package/eslint-plugin-mongodb#no-replace": "https://goo.gl/UQH7fL",
2166-
"https://www.npmjs.com/package/eslint-plugin-promise#always-return": "https://goo.gl/qbHFxN",
2167-
"https://www.npmjs.com/package/eslint-plugin-promise#avoid-new": "https://goo.gl/kfHjjH",
2168-
"https://www.npmjs.com/package/eslint-plugin-promise#catch-or-return": "https://goo.gl/GiDuvA",
2169-
"https://www.npmjs.com/package/eslint-plugin-promise#no-callback-in-promise": "https://goo.gl/J3TRcg",
2170-
"https://www.npmjs.com/package/eslint-plugin-promise#no-native": "https://goo.gl/vHDcv1",
2171-
"https://www.npmjs.com/package/eslint-plugin-promise#no-nesting": "https://goo.gl/oKJtLn",
2172-
"https://www.npmjs.com/package/eslint-plugin-promise#no-new-statics": "https://goo.gl/3vuREY",
2173-
"https://www.npmjs.com/package/eslint-plugin-promise#no-promise-in-callback": "https://goo.gl/urdqq6",
2174-
"https://www.npmjs.com/package/eslint-plugin-promise#no-return-in-finally": "https://goo.gl/Cz1CoJ",
2175-
"https://www.npmjs.com/package/eslint-plugin-promise#no-return-wrap": "https://goo.gl/ZPggpp",
2176-
"https://www.npmjs.com/package/eslint-plugin-promise#param-names": "https://goo.gl/u2GzNs",
2177-
"https://www.npmjs.com/package/eslint-plugin-promise#prefer-await-to-callbacks": "https://goo.gl/JRvLMY",
2178-
"https://www.npmjs.com/package/eslint-plugin-promise#prefer-await-to-then": "https://goo.gl/Gmi9Bn",
2179-
"https://www.npmjs.com/package/eslint-plugin-promise#valid-params": "https://goo.gl/iAcfZH",
2180-
"https://www.npmjs.com/package/eslint-plugin-sql#format": "https://goo.gl/pB6NtD",
2181-
"https://www.npmjs.com/package/eslint-plugin-sql#no-unsafe-query": "https://goo.gl/ahUcDH",
2163+
"https://www.npmjs.com/package/eslint-plugin-sql#eslint-plugin-sql-rules-format": "https://goo.gl/QHF2Ft",
2164+
"https://www.npmjs.com/package/eslint-plugin-sql#eslint-plugin-sql-rules-no-unsafe-query": "https://goo.gl/aErVi6",
21822165
"https://www.npmjs.com/package/eslint-plugin-standard#rules-explanations": "https://goo.gl/sqb2hd"
21832166
}

0 commit comments

Comments
 (0)