@thangk/easythemer
Version:
Easily generate shades from a colour palette for use in your app
72 lines • 2.93 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const validators_1 = require("../validators");
const constants_1 = require("../constants");
const ValidateChannelParams_1 = __importDefault(require("../validators/ValidateChannelParams"));
function useValidate(inputToValidate) {
const output = {
result: null,
errors: null,
};
let { result, errors } = output;
const workingInputCopy = [...inputToValidate].map((shadeOption) => {
const { type, optionName, hex, channelParams, generateShades } = shadeOption;
if (!type) {
errors = {
...errors,
type: "Type is undefined. Input data type is not a type made by this dev. Therefore no validation will be performed.",
};
return;
}
if (type === constants_1.TYPE.SHADE_OPTION) {
/**
* fields to validate:
* - optionName
* - hex
* - generateShades
* - channelParams
*/
const validatedOptionName = new validators_1.ValidateOptionName(optionName);
const validatedHex = new validators_1.ValidateHex(hex);
const validatedChannelParams = channelParams ? new ValidateChannelParams_1.default(channelParams) : null;
if (validatedOptionName.hasErrors) {
errors = { ...errors, colourName: validatedOptionName.getErrorsList };
}
if (validatedHex.hasErrors) {
errors = { ...errors, colourHex: validatedHex.getErrorsList };
}
if (validatedChannelParams && validatedChannelParams.hasErrors) {
errors = { ...errors, channelParams: validatedChannelParams.getErrorsList };
}
if (generateShades !== true && generateShades !== false) {
errors = { ...errors, generateShades: "generateShades must be true or false" };
}
return {
...shadeOption,
optionName: validatedOptionName.getResult,
hex: validatedHex.getResult,
};
}
if (type === constants_1.TYPE.SHADE_FACTORS_SET) {
/**
* TODO: validate shades
*/
}
});
console.log("errors in useValidate", errors);
// if no errors, return validated object
if (!errors) {
console.log("no errors in useValidate");
return {
...output,
result: workingInputCopy, // validated object
};
}
console.log("errors in useValidate");
return output;
}
exports.default = useValidate;
//# sourceMappingURL=useValidate.js.map