diff --git a/example/server/index.ts b/example/server/index.ts index 54711f9..ab4997b 100644 --- a/example/server/index.ts +++ b/example/server/index.ts @@ -6,10 +6,11 @@ const app = express(); const router = express.Router(); const port = 3001; const API_KEY = 'example-api-key'; +const URL = 'http://localhost:3000'; app.use(cors()); -const uploadJet = new UploadJet({ apiKey: API_KEY }); +const uploadJet = new UploadJet({ apiKey: API_KEY, url: URL }); const uploadRouteConfig: UploadOptions = { fileType: 'image', maxFileSize: '1MB', diff --git a/packages/express/apiProposal.md b/packages/express/apiProposal.md index 21d4200..5ae4010 100644 --- a/packages/express/apiProposal.md +++ b/packages/express/apiProposal.md @@ -8,20 +8,20 @@ Once the package is installed, you can import the library by using import or require approach: ```javascript -import UploadJet from 'upload-jet'; +import UploadJet from '@upload-jet/express'; // or -const UploadJet = require('upload-jet'); +const UploadJet = require('@upload-jet/express'); ``` ## Usage -To use the uploader it is required to provide an api key when creating -a new instance of Upload Jet class. +To use the uploader it is required to provide an api key and specify the URL of the Upload-Jet server when creating a new instance of the Upload Jet class. ```javascript -const uploadJet = new UploadJet({ apiKey: API_KEY }); +const URL = 'SERVER_URL'; +const uploadJet = new UploadJet({ apiKey: API_KEY, url: URL }); ``` ### Registering a new route diff --git a/packages/express/src/schema/upload-jet-config.dto.ts b/packages/express/src/schema/upload-jet-config.dto.ts index 3755015..6499ce3 100644 --- a/packages/express/src/schema/upload-jet-config.dto.ts +++ b/packages/express/src/schema/upload-jet-config.dto.ts @@ -2,7 +2,8 @@ import { z } from 'zod'; export const uploadJetConfigSchema = z .object({ - apiKey: z.string() + apiKey: z.string(), + url: z.string() }) .strict(); diff --git a/packages/express/src/upload-jet.ts b/packages/express/src/upload-jet.ts index d847045..2f4bdae 100644 --- a/packages/express/src/upload-jet.ts +++ b/packages/express/src/upload-jet.ts @@ -13,17 +13,18 @@ import { createUploadPolicyBodySchema } from './schema/create-upload-policy-body import * as bytes from 'bytes'; import { ZodError } from 'zod'; -const API_URL = 'http://localhost:3000'; const BAD_REQUEST_CODE = 400; const INTERNAL_SERVER_ERROR_CODE = 500; const DEFAULT_SERVER_ERROR_MESSAGE = 'Something went wrong.'; export class UploadJet { #apiKey: string; + #url: string; constructor(config: UploadJetConfig) { const data = uploadJetConfigSchema.parse(config); this.#apiKey = data.apiKey; + this.#url = data.url; } createUploadRoute(options: UploadOptions) { @@ -96,7 +97,7 @@ export class UploadJet { {} ); - const url = new URL('upload-policy', API_URL); + const url = new URL('upload-policy', this.#url); const headers = { Authorization: `Bearer ${this.#apiKey}` }; return axios .post(url.href, policyRules, { headers }) diff --git a/upload-jet/src/application/application.entity.ts b/upload-jet/src/application/application.entity.ts index 3977571..852f2c9 100644 --- a/upload-jet/src/application/application.entity.ts +++ b/upload-jet/src/application/application.entity.ts @@ -39,7 +39,7 @@ export default class Application extends BaseEntity { @Property({ persist: false }) get keyHint() { const apiKeys = this.apiKeys.getItems(); - return apiKeys.find(apiKey => !apiKey.deletedAt).keyHint; + return apiKeys.find(apiKey => !apiKey.deletedAt)?.keyHint; } constructor(name: string, userId: number) {