-
Notifications
You must be signed in to change notification settings - Fork 159
/
Copy pathsites-map.js
41 lines (37 loc) · 1.35 KB
/
sites-map.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import path from "path";
import {existsSync, readFileSync} from "fs";
export function getQueryObj(query) {
// 使用 URLSearchParams
const searchParams = new URLSearchParams(query);
const queryObject = {};
for (const [key, value] of searchParams.entries()) {
queryObject[key] = value;
}
return queryObject
}
export function getSitesMap(configDir) {
let SitesMap = {};
let SitesMapPath = path.join(configDir, './map.txt');
if (existsSync(SitesMapPath)) {
try {
let SitesMapText = readFileSync(SitesMapPath, 'utf-8');
let SitesMapLines = SitesMapText.split('\n').filter(it => it);
SitesMapLines.forEach((line) => {
let SitesMapKey = line.split('@')[0].trim();
if (!SitesMap.hasOwnProperty(SitesMapKey)) {
SitesMap[SitesMapKey] = [];
}
let SitesMapQuery = line.split('@')[1].trim();
let SitesMapAlias = line.split('@').length > 2 ? line.split('@')[2].trim() : SitesMapKey;
SitesMap[SitesMapKey].push({
alias: SitesMapAlias,
queryStr: SitesMapQuery,
queryObject: getQueryObj(SitesMapQuery),
});
});
return SitesMap
} catch (e) {
}
}
return SitesMap
}