From 5b98b1d0b2c49a36597e41c4d913d59b35287721 Mon Sep 17 00:00:00 2001 From: alina sireneva Date: Wed, 15 Jan 2025 10:47:09 +0300 Subject: [PATCH] fix(convert): avoid bundling node crypto --- packages/convert/package.json | 8 ++++++++ packages/convert/src/utils/crypto.ts | 6 ++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/packages/convert/package.json b/packages/convert/package.json index 8e93c3c9..00fd5c82 100644 --- a/packages/convert/package.json +++ b/packages/convert/package.json @@ -14,6 +14,14 @@ "@fuman/net": "0.0.9", "@fuman/io": "0.0.8" }, + "peerDependencies": { + "@mtcute/node": "workspace:^" + }, + "peerDependenciesMeta": { + "@mtcute/node": { + "optional": true + } + }, "devDependencies": { "@mtcute/test": "workspace:^", "@mtcute/node": "workspace:^" diff --git a/packages/convert/src/utils/crypto.ts b/packages/convert/src/utils/crypto.ts index 62e38b90..04258aac 100644 --- a/packages/convert/src/utils/crypto.ts +++ b/packages/convert/src/utils/crypto.ts @@ -10,9 +10,11 @@ export interface IExtendedCryptoProvider extends ICryptoProvider { export async function getDefaultCryptoProvider(): Promise { const crypto = /* @vite-ignore */ await import('node:crypto') - const { NodeCryptoProvider } = /* @vite-ignore */ await import('@mtcute/node/utils.js') + const nodeModule = '@mtcute/node/utils.js' + const { NodeCryptoProvider } = await import(/* @vite-ignore */ nodeModule) - // + // eslint-disable-next-line ts/ban-ts-comment + // @ts-ignore typescript complains because of the dynamic import return new (class extends NodeCryptoProvider implements IExtendedCryptoProvider { createHash(algorithm: 'md5' | 'sha512') { const hasher = crypto.createHash(algorithm)