@prescott/geo-pattern
Version:
Create beautiful generative geometric background images from a string.
25 lines • 894 B
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PatternSelector = void 0;
const pattern_store_1 = require("./pattern-store");
class PatternSelector {
constructor(patterns, seed, store = pattern_store_1.defaultStore) {
this.seed = seed;
this.store = store;
this.patterns = this.fetchPatterns(patterns);
}
select() {
const index = Math.min(this.seed.read(20, 1), this.patterns.length - 1);
return this.patterns[index];
}
fetchPatterns(patterns) {
const fetched = Array.from(new Set(patterns))
.map((pattern) => this.store.get(pattern))
.filter((pattern) => !!pattern);
return fetched.length > 0 ?
fetched :
Array.from(this.store.values());
}
}
exports.PatternSelector = PatternSelector;
//# sourceMappingURL=pattern-selector.js.map