@jackdbd/eleventy-plugin-text-to-speech
Version:
Eleventy plugin that uses text-to-speech to generate audio assets for your website, then injects audio players in your HTML.
33 lines • 1.18 kB
JavaScript
import defDebug from 'debug';
import { validationError } from './errors.js';
import { DEBUG_PREFIX, ERR_PREFIX } from './constants.js';
const debug = defDebug(`${DEBUG_PREFIX}:validation`);
export const validatedResult = (data, schema) => {
if (process.env.SKIP_VALIDATION) {
debug(`skipped validation (schema: %s)`, schema.description || 'not set');
return { error: undefined, value: data };
}
else {
const result = schema.safeParse(data);
if (!result.success) {
return { error: validationError(result.error), value: undefined };
}
return { error: undefined, value: result.data };
}
};
export const validatedDataOrThrow = (data, schema) => {
if (process.env.SKIP_VALIDATION) {
debug(`skipped validation (schema: %s)`, schema.description || 'not set');
return data;
}
else {
const result = schema.safeParse(data);
if (!result.success) {
const err = validationError(result.error);
console.error(`${ERR_PREFIX} ${err.message}`);
throw err;
}
return result.data;
}
};
//# sourceMappingURL=validation.js.map