Skip to content

Commit f555e05

Browse files
committed
Prepare 1.1.28
1 parent 4885655 commit f555e05

13 files changed

+147
-166
lines changed

CONTRIBUTING.md

-61
This file was deleted.

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ Full documentation available at [base64.56k.guru](https://base64.56k.guru)
3838

3939
Node.js: `npm install @hexagon/base64 --save`
4040

41-
Deno: `import base64 from "https://deno.land/x/[email protected].27/src/base64.js";`
41+
Deno: `import base64 from "https://deno.land/x/[email protected].28/src/base64.js";`
4242

4343
For browser/cdn usage, refer to the documentation.
4444

dist/base64.cjs

+14-9
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@
4141

4242
genLookup = (target) => {
4343
const lookupTemp = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256);
44-
for (let i = 0; i < chars.length; i++) {
44+
const len = chars.length;
45+
for (let i = 0; i < len; i++) {
4546
lookupTemp[target.charCodeAt(i)] = i;
4647
}
4748
return lookupTemp;
@@ -51,6 +52,12 @@
5152
lookup = genLookup(chars),
5253
lookupUrl = genLookup(charsUrl);
5354

55+
/**
56+
* Pre-calculated regexes for validating base64 and base64url
57+
*/
58+
const base64UrlPattern = /^[-A-Za-z0-9\-_]*$/;
59+
const base64Pattern = /^[-A-Za-z0-9+/]*={0,3}$/;
60+
5461
/**
5562
* @namespace base64
5663
*/
@@ -103,7 +110,7 @@
103110
};
104111

105112
/**
106-
* Convenience function for converting base64 encoded string to an ArrayBuffer instance
113+
* Convenience function for creating a base64 encoded string from an ArrayBuffer instance
107114
* @public
108115
*
109116
* @param {ArrayBuffer} arrBuf - ArrayBuffer to be encoded
@@ -127,13 +134,15 @@
127134
result += target[bytes[i + 2] & 63];
128135
}
129136

130-
if (len % 3 === 2) {
137+
const remainder = len % 3;
138+
if (remainder === 2) {
131139
result = result.substring(0, result.length - 1) + (urlMode ? "" : "=");
132-
} else if (len % 3 === 1) {
140+
} else if (remainder === 1) {
133141
result = result.substring(0, result.length - 2) + (urlMode ? "" : "==");
134142
}
135143

136144
return result;
145+
137146
};
138147

139148
/**
@@ -176,11 +185,7 @@
176185

177186
// Go on validate
178187
try {
179-
if (urlMode) {
180-
return /^[-A-Za-z0-9\-_]*$/.test(encoded);
181-
} else {
182-
return /^[-A-Za-z0-9+/]*={0,3}$/.test(encoded);
183-
}
188+
return urlMode ? base64UrlPattern.test(encoded) : base64Pattern.test(encoded);
184189
} catch (_e) {
185190
return false;
186191
}

dist/base64.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/base64.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)