diff --git a/.changeset/violet-carrots-listen.md b/.changeset/violet-carrots-listen.md new file mode 100644 index 00000000..247983c9 --- /dev/null +++ b/.changeset/violet-carrots-listen.md @@ -0,0 +1,5 @@ +--- +"@edge-runtime/primitives": patch +--- + +feat(primitives): remove atob/btoa implementation, use native implementation. diff --git a/packages/primitives/package.json b/packages/primitives/package.json index 1828d21c..c7979f8d 100644 --- a/packages/primitives/package.json +++ b/packages/primitives/package.json @@ -42,7 +42,7 @@ ], "scripts": { "build": "ts-node scripts/build.ts", - "clean:build": "rm -rf dist abort-controller blob console crypto encoding events fetch streams structured-clone url", + "clean:build": "rm -rf dist abort-controller blob console crypto events fetch streams structured-clone url", "clean:node": "rm -rf node_modules", "prebuild": "pnpm run clean:build" }, diff --git a/packages/primitives/src/primitives/encoding.js b/packages/primitives/src/primitives/encoding.js deleted file mode 100644 index 7d4ce4ca..00000000 --- a/packages/primitives/src/primitives/encoding.js +++ /dev/null @@ -1,3 +0,0 @@ -export const atob = (enc) => Buffer.from(enc, 'base64').toString('binary') -export const btoa = (str) => - Buffer.from(String(str), 'binary').toString('base64') diff --git a/packages/primitives/src/primitives/load.js b/packages/primitives/src/primitives/load.js index e4659661..4bb44665 100644 --- a/packages/primitives/src/primitives/load.js +++ b/packages/primitives/src/primitives/load.js @@ -72,20 +72,13 @@ function requireWithFakeGlobalScope(params) { export function load(scopedContext = {}) { /** @type Record */ const context = {} - /** @type {import('../../type-definitions/encoding')} */ - const encodingImpl = requireWithFakeGlobalScope({ - context, - id: 'encoding.js', - sourceCode: injectSourceCode('./encoding.js'), - scopedContext, - }) assign(context, { TextDecoder, TextEncoder, TextEncoderStream, TextDecoderStream, - atob: encodingImpl.atob, - btoa: encodingImpl.btoa, + atob, + btoa, }) /** @type {import('../../type-definitions/console')} */ diff --git a/packages/primitives/type-definitions/encoding.d.ts b/packages/primitives/type-definitions/encoding.d.ts index 3081603f..1f01d223 100644 --- a/packages/primitives/type-definitions/encoding.d.ts +++ b/packages/primitives/type-definitions/encoding.d.ts @@ -4,5 +4,8 @@ declare const TextDecoderConstructor: typeof TextDecoder export { TextEncoderConstructor as TextEncoder } export { TextDecoderConstructor as TextDecoder } -export const atob: (encoded: string) => string -export const btoa: (input: any) => string +declare const _atob: typeof atob +declare const _btoa: typeof btoa + +export { _atob as atob } +export { _btoa as btoa } diff --git a/turbo.json b/turbo.json index 7c0788ee..964b36c5 100644 --- a/turbo.json +++ b/turbo.json @@ -20,7 +20,6 @@ "console/**", "crypto/**", "dist/**", - "encoding/**", "events/**", "fetch/**", "streams/**",