diff --git a/index.js b/index.js index 390038d1..ce97fcfd 100644 --- a/index.js +++ b/index.js @@ -33,6 +33,10 @@ class Replicate { * @param {Function} [options.fetch] - Fetch function to use. Defaults to `globalThis.fetch` */ constructor(options) { + if (!options.auth) { + throw new Error('Missing required parameter: auth'); + } + this.auth = options.auth; this.userAgent = options.userAgent || `replicate-javascript/${packageJSON.version}`; diff --git a/index.test.ts b/index.test.ts index eab4ffec..3bcfc86a 100644 --- a/index.test.ts +++ b/index.test.ts @@ -33,6 +33,22 @@ describe('Replicate client', () => { }); expect(clientWithCustomUserAgent.userAgent).toBe('my-app/1.2.3'); }); + + test('Throws error if no auth token is provided', () => { + const expected = 'Missing required parameter: auth' + + expect(() => { + new Replicate({ auth: undefined }); + }).toThrow(expected); + + expect(() => { + new Replicate({ auth: null }); + }).toThrow(expected); + + expect(() => { + new Replicate({ auth: "" }); + }).toThrow(expected); + }); }); describe('collections.list', () => {