@k-vyn/coloralgorithm
Version:
An algorithm to produce color sets
29 lines (26 loc) • 1.04 kB
text/typescript
import { AlgorithmResult, ColorProps, ColorOptions, ColorResults } from "./types";
import generateColors from "./generate-colors";
import convertToColors from "./convert-to-colors";
import generateColorsWithLock from "./generate-colors-with-lock";
export function generate(props: ColorProps, options?: ColorOptions): ColorResults {
if (options === undefined) {
options = {};
}
const { lockHex, lockHexInverted, provideInverted } = options;
const algorithmResult: AlgorithmResult = [];
const generated = generateColors(props, options);
if (lockHex) {
algorithmResult.push(generateColorsWithLock(props, options, generated));
} else {
algorithmResult.push(generated);
}
if (provideInverted) {
const generatedInverted = generateColors(props, options, true);
lockHexInverted === undefined
? algorithmResult.push(generatedInverted)
: algorithmResult.push(
generateColorsWithLock(props, options, generatedInverted)
);
}
return convertToColors(props, options, algorithmResult);
}