diff --git a/lib/index.ts b/lib/index.ts index f2c2235..7299be5 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -11,13 +11,11 @@ import { } from '@aws-sdk/client-s3'; import { Upload } from '@aws-sdk/lib-storage'; import { getSignedUrl } from '@aws-sdk/s3-request-presigner'; -import type { webResourceHandler } from '@balena/pinejs'; +import { webResourceHandler } from '@balena/pinejs'; import type { WebResourceType as WebResource } from '@balena/sbvr-types'; import memoize from 'memoizee'; import { randomUUID } from 'node:crypto'; -import type { AnyObject } from 'pinejs-client-core'; -import { TypedError } from 'typed-error'; // TODO: remove me and import from pinejs once v17 is out interface BeginMultipartUploadPayload { @@ -43,7 +41,7 @@ interface CommitMultipartUploadPayload { fileKey: string; uploadId: string; filename: string; - providerCommitData?: AnyObject; + providerCommitData?: Record; } export interface S3HandlerProps { @@ -61,13 +59,6 @@ const normalizeHref = (href: string) => { return href.split('?')[0]; }; -export class FileSizeExceededError extends TypedError { - name = 'FileSizeExceededError'; - constructor(maxSize: number) { - super(`File size exceeded the limit of ${maxSize} bytes.`); - } -} - export class S3Handler implements webResourceHandler.WebResourceHandler { private readonly config: S3ClientConfig; private readonly bucket: string; @@ -131,7 +122,7 @@ export class S3Handler implements webResourceHandler.WebResourceHandler { } catch (err: any) { resource.stream.resume(); if (size > this.maxFileSize) { - throw new FileSizeExceededError(this.maxFileSize); + throw new webResourceHandler.FileSizeExceededError(this.maxFileSize); } throw err; } diff --git a/package.json b/package.json index d313423..e46ab7d 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "scripts": { "build": "tsc", "test": "npm run lint", - "prettify": "balena-lint -e ts --fix lib", + "lint-fix": "balena-lint -e ts --fix lib", "lint": "balena-lint -e ts lib && npx tsc --noEmit", "prepare": "node -e \"try { (await import('husky')).default() } catch (e) { if (e.code !== 'ERR_MODULE_NOT_FOUND') throw e }\" --input-type module" }, @@ -29,8 +29,10 @@ "@aws-sdk/client-s3": "^3.717.0", "@aws-sdk/lib-storage": "^3.717.0", "@aws-sdk/s3-request-presigner": "^3.717.0", - "memoizee": "^0.4.17", - "typed-error": "^3.2.2" + "memoizee": "^0.4.17" + }, + "peerDependencies": { + "@balena/pinejs": "^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^20.0.0" }, "versionist": { "publishedAt": "2025-01-02T15:32:49.486Z"