comic-vine-sdk
Version:
A JS/TS client for the Comic Vine API
32 lines • 3.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadOptions = void 0;
const zod_1 = require("zod");
const index_js_1 = require("../errors/index.js");
const options = zod_1.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: zod_1.z
.string()
.url()
.optional()
.default('https://comicvine.gamespot.com/api/'),
});
const loadOptions = (userOptions) => {
try {
return options.parse(userOptions !== null && userOptions !== void 0 ? userOptions : {});
}
catch (error) {
if (error instanceof zod_1.ZodError) {
const validationError = error.issues[0];
throw new index_js_1.OptionsValidationError(validationError.path, validationError.message);
}
throw (0, index_js_1.customError)(error);
}
};
exports.loadOptions = loadOptions;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvb3B0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBa0M7QUFDbEMsaURBQXlFO0FBRXpFLE1BQU0sT0FBTyxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkI7Ozs7O09BS0c7SUFDSCxPQUFPLEVBQUUsT0FBQztTQUNQLE1BQU0sRUFBRTtTQUNSLEdBQUcsRUFBRTtTQUNMLFFBQVEsRUFBRTtTQUNWLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQztDQUNsRCxDQUFDLENBQUM7QUFLSSxNQUFNLFdBQVcsR0FBRyxDQUFDLFdBQXlCLEVBQUUsRUFBRTtJQUN2RCxJQUFJLENBQUM7UUFDSCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxhQUFYLFdBQVcsY0FBWCxXQUFXLEdBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUFDLE9BQU8sS0FBYyxFQUFFLENBQUM7UUFDeEIsSUFBSSxLQUFLLFlBQVksY0FBUSxFQUFFLENBQUM7WUFDOUIsTUFBTSxlQUFlLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QyxNQUFNLElBQUksaUNBQXNCLENBQzlCLGVBQWUsQ0FBQyxJQUFJLEVBQ3BCLGVBQWUsQ0FBQyxPQUFPLENBQ3hCLENBQUM7UUFDSixDQUFDO1FBQ0QsTUFBTSxJQUFBLHNCQUFXLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztBQUNILENBQUMsQ0FBQztBQWJXLFFBQUEsV0FBVyxlQWF0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHosIFpvZEVycm9yIH0gZnJvbSAnem9kJztcbmltcG9ydCB7IGN1c3RvbUVycm9yLCBPcHRpb25zVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vZXJyb3JzL2luZGV4LmpzJztcblxuY29uc3Qgb3B0aW9ucyA9IHoub2JqZWN0KHtcbiAgLyoqXG4gICAqIFRoZSBiYXNlIHVybCBmb3IgdGhlIENvbWljIFZpbmUgQVBJLlxuICAgKiBUaGlzIGNvdWxkIGJlIHVzZWQgdG8gc2V0IGEgcHJveHkgd2hlbiB1c2luZyB0aGUgbGlicmFyeSBpbiBhIGJyb3dzZXIuXG4gICAqIEl0IGFsc28gZW5zdXJlcyB0aGF0IGlmIHRoZSBjb21pYyB2aW5lIHVybCB3YXMgdG8gY2hhbmdlIGl0IHdvdWxkbid0IGJlIGEgYnJlYWtpbmcgY2hhbmdlIHRvIHRoZSBsaWJyYXJ5LlxuICAgKiBAZGVmYXVsdCBodHRwczovL2NvbWljdmluZS5nYW1lc3BvdC5jb20vYXBpL1xuICAgKi9cbiAgYmFzZVVybDogelxuICAgIC5zdHJpbmcoKVxuICAgIC51cmwoKVxuICAgIC5vcHRpb25hbCgpXG4gICAgLmRlZmF1bHQoJ2h0dHBzOi8vY29taWN2aW5lLmdhbWVzcG90LmNvbS9hcGkvJyksXG59KTtcblxuZXhwb3J0IHR5cGUgdXNlck9wdGlvbnMgPSB6LmlucHV0PHR5cGVvZiBvcHRpb25zPjtcbmV4cG9ydCB0eXBlIE9wdGlvbnMgPSB6Lm91dHB1dDx0eXBlb2Ygb3B0aW9ucz47XG5cbmV4cG9ydCBjb25zdCBsb2FkT3B0aW9ucyA9ICh1c2VyT3B0aW9ucz86IHVzZXJPcHRpb25zKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIG9wdGlvbnMucGFyc2UodXNlck9wdGlvbnMgPz8ge30pO1xuICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIFpvZEVycm9yKSB7XG4gICAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3IgPSBlcnJvci5pc3N1ZXNbMF07XG4gICAgICB0aHJvdyBuZXcgT3B0aW9uc1ZhbGlkYXRpb25FcnJvcihcbiAgICAgICAgdmFsaWRhdGlvbkVycm9yLnBhdGgsXG4gICAgICAgIHZhbGlkYXRpb25FcnJvci5tZXNzYWdlLFxuICAgICAgKTtcbiAgICB9XG4gICAgdGhyb3cgY3VzdG9tRXJyb3IoZXJyb3IpO1xuICB9XG59O1xuIl19