UNPKG

comic-vine-sdk

Version:

A JS/TS client for the Comic Vine API

28 lines 3.47 kB
import { z, ZodError } from 'zod'; import { customError, OptionsValidationError } from '../errors/index.js'; const options = z.object({ /** * The base url for the Comic Vine API. * This could be used to set a proxy when using the library in a browser. * It also ensures that if the comic vine url was to change it wouldn't be a breaking change to the library. * @default https://comicvine.gamespot.com/api/ */ baseUrl: z .string() .url() .optional() .default('https://comicvine.gamespot.com/api/'), }); export const loadOptions = (userOptions) => { try { return options.parse(userOptions ?? {}); } catch (error) { if (error instanceof ZodError) { const validationError = error.issues[0]; throw new OptionsValidationError(validationError.path, validationError.message); } throw customError(error); } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3B0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLEtBQUssQ0FBQztBQUNsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFekUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2Qjs7Ozs7T0FLRztJQUNILE9BQU8sRUFBRSxDQUFDO1NBQ1AsTUFBTSxFQUFFO1NBQ1IsR0FBRyxFQUFFO1NBQ0wsUUFBUSxFQUFFO1NBQ1YsT0FBTyxDQUFDLHFDQUFxQyxDQUFDO0NBQ2xELENBQUMsQ0FBQztBQUtILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQXlCLEVBQUUsRUFBRTtJQUN2RCxJQUFJLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFBQyxPQUFPLEtBQWMsRUFBRSxDQUFDO1FBQ3hCLElBQUksS0FBSyxZQUFZLFFBQVEsRUFBRSxDQUFDO1lBQzlCLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxJQUFJLHNCQUFzQixDQUM5QixlQUFlLENBQUMsSUFBSSxFQUNwQixlQUFlLENBQUMsT0FBTyxDQUN4QixDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7QUFDSCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB6LCBab2RFcnJvciB9IGZyb20gJ3pvZCc7XG5pbXBvcnQgeyBjdXN0b21FcnJvciwgT3B0aW9uc1ZhbGlkYXRpb25FcnJvciB9IGZyb20gJy4uL2Vycm9ycy9pbmRleC5qcyc7XG5cbmNvbnN0IG9wdGlvbnMgPSB6Lm9iamVjdCh7XG4gIC8qKlxuICAgKiBUaGUgYmFzZSB1cmwgZm9yIHRoZSBDb21pYyBWaW5lIEFQSS5cbiAgICogVGhpcyBjb3VsZCBiZSB1c2VkIHRvIHNldCBhIHByb3h5IHdoZW4gdXNpbmcgdGhlIGxpYnJhcnkgaW4gYSBicm93c2VyLlxuICAgKiBJdCBhbHNvIGVuc3VyZXMgdGhhdCBpZiB0aGUgY29taWMgdmluZSB1cmwgd2FzIHRvIGNoYW5nZSBpdCB3b3VsZG4ndCBiZSBhIGJyZWFraW5nIGNoYW5nZSB0byB0aGUgbGlicmFyeS5cbiAgICogQGRlZmF1bHQgaHR0cHM6Ly9jb21pY3ZpbmUuZ2FtZXNwb3QuY29tL2FwaS9cbiAgICovXG4gIGJhc2VVcmw6IHpcbiAgICAuc3RyaW5nKClcbiAgICAudXJsKClcbiAgICAub3B0aW9uYWwoKVxuICAgIC5kZWZhdWx0KCdodHRwczovL2NvbWljdmluZS5nYW1lc3BvdC5jb20vYXBpLycpLFxufSk7XG5cbmV4cG9ydCB0eXBlIHVzZXJPcHRpb25zID0gei5pbnB1dDx0eXBlb2Ygb3B0aW9ucz47XG5leHBvcnQgdHlwZSBPcHRpb25zID0gei5vdXRwdXQ8dHlwZW9mIG9wdGlvbnM+O1xuXG5leHBvcnQgY29uc3QgbG9hZE9wdGlvbnMgPSAodXNlck9wdGlvbnM/OiB1c2VyT3B0aW9ucykgPT4ge1xuICB0cnkge1xuICAgIHJldHVybiBvcHRpb25zLnBhcnNlKHVzZXJPcHRpb25zID8/IHt9KTtcbiAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBab2RFcnJvcikge1xuICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yID0gZXJyb3IuaXNzdWVzWzBdO1xuICAgICAgdGhyb3cgbmV3IE9wdGlvbnNWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIHZhbGlkYXRpb25FcnJvci5wYXRoLFxuICAgICAgICB2YWxpZGF0aW9uRXJyb3IubWVzc2FnZSxcbiAgICAgICk7XG4gICAgfVxuICAgIHRocm93IGN1c3RvbUVycm9yKGVycm9yKTtcbiAgfVxufTtcbiJdfQ==