diff --git a/package-lock.json b/package-lock.json index 3032c3f4..9228d81e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,6 @@ "@types/jest-environment-puppeteer": "^4.4.1", "@types/node": "^15.12.4", "@types/puppeteer": "^5.4.3", - "@types/terser-webpack-plugin": "^5.0.3", "@types/webpack-bundle-analyzer": "^4.4.1", "@types/ws": "^7.4.5", "@typescript-eslint/eslint-plugin": "^4.28.0", @@ -4277,16 +4276,6 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "node_modules/@types/terser-webpack-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/terser-webpack-plugin/-/terser-webpack-plugin-5.2.0.tgz", - "integrity": "sha512-iHDR2pRfFjGyDqCALX2tgUgFtGoQf2AJhKpC2XD1IMBQVJF2bny6WChGRDKj9eaZJl4F2RmvBhxJNtVPj7aTRw==", - "deprecated": "This is a stub types definition. terser-webpack-plugin provides its own type definitions, so you do not need this installed.", - "dev": true, - "dependencies": { - "terser-webpack-plugin": "*" - } - }, "node_modules/@types/webpack-bundle-analyzer": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz", @@ -17645,15 +17634,6 @@ "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", "dev": true }, - "@types/terser-webpack-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/@types/terser-webpack-plugin/-/terser-webpack-plugin-5.2.0.tgz", - "integrity": "sha512-iHDR2pRfFjGyDqCALX2tgUgFtGoQf2AJhKpC2XD1IMBQVJF2bny6WChGRDKj9eaZJl4F2RmvBhxJNtVPj7aTRw==", - "dev": true, - "requires": { - "terser-webpack-plugin": "*" - } - }, "@types/webpack-bundle-analyzer": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@types/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.4.1.tgz", diff --git a/src/file/file.ts b/src/file/file.ts index d4b1d840..42241971 100644 --- a/src/file/file.ts +++ b/src/file/file.ts @@ -17,7 +17,7 @@ import { downloadData, generateBlockName } from './handler' import { blocksToManifest, getFileMetadataRawBytes, rawFileMetadataToFileMetadata } from './adapter' import { Blocks, DataUploadOptions, FileReceiveOptions, FileShareInfo } from './types' import { addEntryToDirectory, removeEntryFromDirectory } from '../content-items/handler' -import { Data, Reference } from '@ethersphere/bee-js' +import { Bee, BeeError, Data, KyRequestOptions, Reference, RequestOptions } from '@ethersphere/bee-js' import { getRawMetadata } from '../content-items/utils' import { assertRawFileMetadata, combine } from '../directory/utils' import { assertEncryptedReference, EncryptedReference } from '../utils/hex' @@ -67,6 +67,12 @@ export class File { data: Uint8Array | string, options?: DataUploadOptions, ): Promise { + // @ts-ignore + const cloneGetKy = Bee.prototype.getKy + + // @ts-ignore + Bee.prototype.getKy = this.fetchPolyfill(this.accountData.connection.bee.url) + options = { ...this.defaultUploadOptions, ...options } assertAccount(this.accountData) assertPodName(podName) @@ -112,6 +118,8 @@ export class File { await addEntryToDirectory(connection, extendedInfo.podWallet, pathInfo.path, pathInfo.filename, true) await writeFeedData(connection, fullPath, getFileMetadataRawBytes(meta), extendedInfo.podWallet.privateKey) + // @ts-ignore + Bee.prototype.getKy = cloneGetKy return meta } @@ -201,4 +209,25 @@ export class File { return meta } + + /** + * fetch polyfill for ky and bee-js + * @param options Options that affects the request behavior + */ + fetchPolyfill(beeUrl: string) { + return (options: RequestOptions = {}): any => { + return async (url: any, kyOpts: KyRequestOptions): Promise => { + const _url = `${beeUrl}/${url}` + const res = await fetch(_url, { + ...kyOpts, + ...options, + headers: Object(kyOpts.headers), + }) + return { + data: undefined, + ...res, + } // KyResponse type + } + } + } }