1
0
Fork 0
freesewing/packages/pattern-bundle/src/index.js

40 lines
1.2 KiB
JavaScript
Raw Normal View History

2018-12-20 17:59:08 +01:00
import Aaron from "@freesewing/aaron";
import Brian from "@freesewing/brian";
import Bruce from "@freesewing/bruce";
import Cathrin from "@freesewing/cathrin";
import Hugo from "@freesewing/hugo";
2018-12-28 17:45:57 +01:00
import Simon from "@freesewing/simon";
2018-12-07 16:19:46 +01:00
import info from "./info";
2018-12-20 17:59:08 +01:00
const capitalize = string => string.charAt(0).toUpperCase() + string.slice(1);
const uncapitalize = string => string.charAt(0).toLowerCase() + string.slice(1);
2018-12-07 16:19:46 +01:00
export const patterns = {
2018-12-20 17:59:08 +01:00
Aaron,
Brian,
Bruce,
Cathrin,
2018-12-28 17:45:57 +01:00
Hugo,
Simon
2018-12-07 16:19:46 +01:00
};
2018-12-20 17:59:08 +01:00
export const patternList = Object.keys(patterns).map(p => uncapitalize(p));
2018-12-07 16:19:46 +01:00
let list = [];
for (let p of patternList) {
2018-12-20 17:59:08 +01:00
let pattern = new patterns[(capitalize(p))]();
for (let m of pattern.config.measurements) list.push(m);
2018-12-11 19:00:46 +01:00
info[p].version = pattern.config.version;
info[p].measurements = pattern.config.measurements;
2018-12-07 16:19:46 +01:00
info[p].options = [];
for (let o of Object.keys(pattern.config.options)) {
if (typeof pattern.config.options[o] === "object") info[p].options.push(o);
2018-12-07 16:19:46 +01:00
}
2018-12-11 19:00:46 +01:00
info[p].config = pattern.config;
2018-12-07 16:19:46 +01:00
}
export const patternInfo = info;
export const measurementList = list.filter(function(value, index, self) {
return self.indexOf(value) === index;
});