Skip to content

Commit 87fa9ae

Browse files
refactor: remove whatwg-encoding (#115)
1 parent 4d043f0 commit 87fa9ae

File tree

4 files changed

+247
-6
lines changed

4 files changed

+247
-6
lines changed

package-lock.json

Lines changed: 26 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,10 @@
4242
},
4343
"dependencies": {
4444
"data-urls": "^2.0.0",
45+
"iconv-lite": "^0.5.1",
4546
"loader-utils": "^2.0.0",
4647
"schema-utils": "^2.6.6",
47-
"source-map": "^0.6.0",
48-
"whatwg-encoding": "^1.0.5"
48+
"source-map": "^0.6.0"
4949
},
5050
"devDependencies": {
5151
"@babel/cli": "^7.8.4",

src/labels-to-names.js

Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
const labelToNames = {
2+
'866': 'IBM866',
3+
'unicode-1-1-utf-8': 'UTF-8',
4+
'utf-8': 'UTF-8',
5+
utf8: 'UTF-8',
6+
cp866: 'IBM866',
7+
csibm866: 'IBM866',
8+
ibm866: 'IBM866',
9+
csisolatin2: 'ISO-8859-2',
10+
'iso-8859-2': 'ISO-8859-2',
11+
'iso-ir-101': 'ISO-8859-2',
12+
'iso8859-2': 'ISO-8859-2',
13+
iso88592: 'ISO-8859-2',
14+
'iso_8859-2': 'ISO-8859-2',
15+
'iso_8859-2:1987': 'ISO-8859-2',
16+
l2: 'ISO-8859-2',
17+
latin2: 'ISO-8859-2',
18+
csisolatin3: 'ISO-8859-3',
19+
'iso-8859-3': 'ISO-8859-3',
20+
'iso-ir-109': 'ISO-8859-3',
21+
'iso8859-3': 'ISO-8859-3',
22+
iso88593: 'ISO-8859-3',
23+
'iso_8859-3': 'ISO-8859-3',
24+
'iso_8859-3:1988': 'ISO-8859-3',
25+
l3: 'ISO-8859-3',
26+
latin3: 'ISO-8859-3',
27+
csisolatin4: 'ISO-8859-4',
28+
'iso-8859-4': 'ISO-8859-4',
29+
'iso-ir-110': 'ISO-8859-4',
30+
'iso8859-4': 'ISO-8859-4',
31+
iso88594: 'ISO-8859-4',
32+
'iso_8859-4': 'ISO-8859-4',
33+
'iso_8859-4:1988': 'ISO-8859-4',
34+
l4: 'ISO-8859-4',
35+
latin4: 'ISO-8859-4',
36+
csisolatincyrillic: 'ISO-8859-5',
37+
cyrillic: 'ISO-8859-5',
38+
'iso-8859-5': 'ISO-8859-5',
39+
'iso-ir-144': 'ISO-8859-5',
40+
'iso8859-5': 'ISO-8859-5',
41+
iso88595: 'ISO-8859-5',
42+
'iso_8859-5': 'ISO-8859-5',
43+
'iso_8859-5:1988': 'ISO-8859-5',
44+
arabic: 'ISO-8859-6',
45+
'asmo-708': 'ISO-8859-6',
46+
csiso88596e: 'ISO-8859-6',
47+
csiso88596i: 'ISO-8859-6',
48+
csisolatinarabic: 'ISO-8859-6',
49+
'ecma-114': 'ISO-8859-6',
50+
'iso-8859-6': 'ISO-8859-6',
51+
'iso-8859-6-e': 'ISO-8859-6',
52+
'iso-8859-6-i': 'ISO-8859-6',
53+
'iso-ir-127': 'ISO-8859-6',
54+
'iso8859-6': 'ISO-8859-6',
55+
iso88596: 'ISO-8859-6',
56+
'iso_8859-6': 'ISO-8859-6',
57+
'iso_8859-6:1987': 'ISO-8859-6',
58+
csisolatingreek: 'ISO-8859-7',
59+
'ecma-118': 'ISO-8859-7',
60+
elot_928: 'ISO-8859-7',
61+
greek: 'ISO-8859-7',
62+
greek8: 'ISO-8859-7',
63+
'iso-8859-7': 'ISO-8859-7',
64+
'iso-ir-126': 'ISO-8859-7',
65+
'iso8859-7': 'ISO-8859-7',
66+
iso88597: 'ISO-8859-7',
67+
'iso_8859-7': 'ISO-8859-7',
68+
'iso_8859-7:1987': 'ISO-8859-7',
69+
sun_eu_greek: 'ISO-8859-7',
70+
csiso88598e: 'ISO-8859-8',
71+
csisolatinhebrew: 'ISO-8859-8',
72+
hebrew: 'ISO-8859-8',
73+
'iso-8859-8': 'ISO-8859-8',
74+
'iso-8859-8-e': 'ISO-8859-8',
75+
'iso-ir-138': 'ISO-8859-8',
76+
'iso8859-8': 'ISO-8859-8',
77+
iso88598: 'ISO-8859-8',
78+
'iso_8859-8': 'ISO-8859-8',
79+
'iso_8859-8:1988': 'ISO-8859-8',
80+
visual: 'ISO-8859-8',
81+
csisolatin6: 'ISO-8859-10',
82+
'iso-8859-10': 'ISO-8859-10',
83+
'iso-ir-157': 'ISO-8859-10',
84+
'iso8859-10': 'ISO-8859-10',
85+
iso885910: 'ISO-8859-10',
86+
l6: 'ISO-8859-10',
87+
latin6: 'ISO-8859-10',
88+
'iso-8859-13': 'ISO-8859-13',
89+
'iso8859-13': 'ISO-8859-13',
90+
iso885913: 'ISO-8859-13',
91+
'iso-8859-14': 'ISO-8859-14',
92+
'iso8859-14': 'ISO-8859-14',
93+
iso885914: 'ISO-8859-14',
94+
csisolatin9: 'ISO-8859-15',
95+
'iso-8859-15': 'ISO-8859-15',
96+
'iso8859-15': 'ISO-8859-15',
97+
iso885915: 'ISO-8859-15',
98+
'iso_8859-15': 'ISO-8859-15',
99+
l9: 'ISO-8859-15',
100+
'iso-8859-16': 'ISO-8859-16',
101+
cskoi8r: 'KOI8-R',
102+
koi: 'KOI8-R',
103+
koi8: 'KOI8-R',
104+
'koi8-r': 'KOI8-R',
105+
koi8_r: 'KOI8-R',
106+
'koi8-ru': 'KOI8-U',
107+
'koi8-u': 'KOI8-U',
108+
csmacintosh: 'macintosh',
109+
mac: 'macintosh',
110+
macintosh: 'macintosh',
111+
'x-mac-roman': 'macintosh',
112+
'dos-874': 'windows-874',
113+
'iso-8859-11': 'windows-874',
114+
'iso8859-11': 'windows-874',
115+
iso885911: 'windows-874',
116+
'tis-620': 'windows-874',
117+
'windows-874': 'windows-874',
118+
cp1250: 'windows-1250',
119+
'windows-1250': 'windows-1250',
120+
'x-cp1250': 'windows-1250',
121+
cp1251: 'windows-1251',
122+
'windows-1251': 'windows-1251',
123+
'x-cp1251': 'windows-1251',
124+
'ansi_x3.4-1968': 'windows-1252',
125+
ascii: 'windows-1252',
126+
cp1252: 'windows-1252',
127+
cp819: 'windows-1252',
128+
csisolatin1: 'windows-1252',
129+
ibm819: 'windows-1252',
130+
'iso-8859-1': 'windows-1252',
131+
'iso-ir-100': 'windows-1252',
132+
'iso8859-1': 'windows-1252',
133+
iso88591: 'windows-1252',
134+
'iso_8859-1': 'windows-1252',
135+
'iso_8859-1:1987': 'windows-1252',
136+
l1: 'windows-1252',
137+
latin1: 'windows-1252',
138+
'us-ascii': 'windows-1252',
139+
'windows-1252': 'windows-1252',
140+
'x-cp1252': 'windows-1252',
141+
cp1253: 'windows-1253',
142+
'windows-1253': 'windows-1253',
143+
'x-cp1253': 'windows-1253',
144+
cp1254: 'windows-1254',
145+
csisolatin5: 'windows-1254',
146+
'iso-8859-9': 'windows-1254',
147+
'iso-ir-148': 'windows-1254',
148+
'iso8859-9': 'windows-1254',
149+
iso88599: 'windows-1254',
150+
'iso_8859-9': 'windows-1254',
151+
'iso_8859-9:1989': 'windows-1254',
152+
l5: 'windows-1254',
153+
latin5: 'windows-1254',
154+
'windows-1254': 'windows-1254',
155+
'x-cp1254': 'windows-1254',
156+
cp1255: 'windows-1255',
157+
'windows-1255': 'windows-1255',
158+
'x-cp1255': 'windows-1255',
159+
cp1256: 'windows-1256',
160+
'windows-1256': 'windows-1256',
161+
'x-cp1256': 'windows-1256',
162+
cp1257: 'windows-1257',
163+
'windows-1257': 'windows-1257',
164+
'x-cp1257': 'windows-1257',
165+
cp1258: 'windows-1258',
166+
'windows-1258': 'windows-1258',
167+
'x-cp1258': 'windows-1258',
168+
chinese: 'GBK',
169+
csgb2312: 'GBK',
170+
csiso58gb231280: 'GBK',
171+
gb2312: 'GBK',
172+
gb_2312: 'GBK',
173+
'gb_2312-80': 'GBK',
174+
gbk: 'GBK',
175+
'iso-ir-58': 'GBK',
176+
'x-gbk': 'GBK',
177+
gb18030: 'gb18030',
178+
big5: 'Big5',
179+
'big5-hkscs': 'Big5',
180+
'cn-big5': 'Big5',
181+
csbig5: 'Big5',
182+
'x-x-big5': 'Big5',
183+
cseucpkdfmtjapanese: 'EUC-JP',
184+
'euc-jp': 'EUC-JP',
185+
'x-euc-jp': 'EUC-JP',
186+
csshiftjis: 'Shift_JIS',
187+
ms932: 'Shift_JIS',
188+
ms_kanji: 'Shift_JIS',
189+
'shift-jis': 'Shift_JIS',
190+
shift_jis: 'Shift_JIS',
191+
sjis: 'Shift_JIS',
192+
'windows-31j': 'Shift_JIS',
193+
'x-sjis': 'Shift_JIS',
194+
cseuckr: 'EUC-KR',
195+
csksc56011987: 'EUC-KR',
196+
'euc-kr': 'EUC-KR',
197+
'iso-ir-149': 'EUC-KR',
198+
korean: 'EUC-KR',
199+
'ks_c_5601-1987': 'EUC-KR',
200+
'ks_c_5601-1989': 'EUC-KR',
201+
ksc5601: 'EUC-KR',
202+
ksc_5601: 'EUC-KR',
203+
'windows-949': 'EUC-KR',
204+
'utf-16be': 'UTF-16BE',
205+
'utf-16': 'UTF-16LE',
206+
'utf-16le': 'UTF-16LE',
207+
};
208+
209+
export default labelToNames;

src/utils.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ import urlUtils from 'url';
33

44
import sourceMap from 'source-map';
55
import parseDataURL from 'data-urls';
6-
import { labelToName, decode } from 'whatwg-encoding';
6+
7+
import { decode } from 'iconv-lite';
78

89
import { urlToRequest } from 'loader-utils';
910

11+
import labelsToNames from './labels-to-names';
12+
1013
// Matches only the last occurrence of sourceMappingURL
1114
const innerRegex = /\s*[#@]\s*sourceMappingURL\s*=\s*([^\s'"]*)\s*/;
1215

@@ -29,6 +32,12 @@ const sourceMappingURLRegex = RegExp(
2932
);
3033
/* eslint-enable prefer-template */
3134

35+
function labelToName(label) {
36+
const labelLowercase = String(label).trim().toLowerCase();
37+
38+
return labelsToNames[labelLowercase] || null;
39+
}
40+
3241
async function flattenSourceMap(map) {
3342
const consumer = await new sourceMap.SourceMapConsumer(map);
3443
const generatedMap = map.file

0 commit comments

Comments
 (0)