Skip to content

Commit bafec0d

Browse files
committed
fix: fix browser api mocking
1 parent 9a7399c commit bafec0d

File tree

1 file changed

+76
-3
lines changed

1 file changed

+76
-3
lines changed

browserMock.js

Lines changed: 76 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,81 @@ Object.defineProperty(window, 'ResizeObserver', {
5252
})
5353

5454
Object.defineProperty(window, 'TextEncoder', {
55-
value: class TextObserver {
56-
constructor(stringUrl) {}
57-
encode(src) { return src }
55+
value: class TextEncoder {
56+
encode (string) {
57+
var octets = [];
58+
var length = string.length;
59+
var i = 0;
60+
while (i < length) {
61+
var codePoint = string.codePointAt(i);
62+
var c = 0;
63+
var bits = 0;
64+
if (codePoint <= 0x0000007F) {
65+
c = 0;
66+
bits = 0x00;
67+
} else if (codePoint <= 0x000007FF) {
68+
c = 6;
69+
bits = 0xC0;
70+
} else if (codePoint <= 0x0000FFFF) {
71+
c = 12;
72+
bits = 0xE0;
73+
} else if (codePoint <= 0x001FFFFF) {
74+
c = 18;
75+
bits = 0xF0;
76+
}
77+
octets.push(bits | (codePoint >> c));
78+
c -= 6;
79+
while (c >= 0) {
80+
octets.push(0x80 | ((codePoint >> c) & 0x3F));
81+
c -= 6;
82+
}
83+
i += codePoint >= 0x10000 ? 2 : 1;
84+
}
85+
return Uint8Array.from(octets);
86+
}
5887
}
88+
})
89+
Object.defineProperty(window, 'TextDecoder', {
90+
value: class TextDecoder {
91+
decode (octets) {
92+
var string = "";
93+
var i = 0;
94+
while (i < octets.length) {
95+
var octet = octets[i];
96+
var bytesNeeded = 0;
97+
var codePoint = 0;
98+
if (octet <= 0x7F) {
99+
bytesNeeded = 0;
100+
codePoint = octet & 0xFF;
101+
} else if (octet <= 0xDF) {
102+
bytesNeeded = 1;
103+
codePoint = octet & 0x1F;
104+
} else if (octet <= 0xEF) {
105+
bytesNeeded = 2;
106+
codePoint = octet & 0x0F;
107+
} else if (octet <= 0xF4) {
108+
bytesNeeded = 3;
109+
codePoint = octet & 0x07;
110+
}
111+
if (octets.length - i - bytesNeeded > 0) {
112+
var k = 0;
113+
while (k < bytesNeeded) {
114+
octet = octets[i + k + 1];
115+
codePoint = (codePoint << 6) | (octet & 0x3F);
116+
k += 1;
117+
}
118+
} else {
119+
codePoint = 0xFFFD;
120+
bytesNeeded = octets.length - i;
121+
}
122+
string += String.fromCodePoint(codePoint);
123+
i += bytesNeeded + 1;
124+
}
125+
return string
126+
}
127+
}
128+
})
129+
130+
Object.defineProperty(window, 'Buffer', {
131+
value: undefined
59132
})

0 commit comments

Comments
 (0)