✨ Added @freesewing/pattern-info
This commit is contained in:
parent
3c803b3257
commit
0c4187e12a
7 changed files with 363 additions and 0 deletions
22
packages/pattern-info/src/index.js
Normal file
22
packages/pattern-info/src/index.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
import options from "./prebuild/options";
|
||||
import optionGroups from "./prebuild/option-groups";
|
||||
import versions from "./prebuild/versions";
|
||||
|
||||
const list = [
|
||||
"aaron",
|
||||
"bent",
|
||||
"brian",
|
||||
"bruce",
|
||||
"carlton",
|
||||
"cathrin",
|
||||
"huey",
|
||||
"hugo",
|
||||
"jaeger",
|
||||
"simon",
|
||||
"sven",
|
||||
"tamiko",
|
||||
"trayvon",
|
||||
"wahid"
|
||||
];
|
||||
|
||||
export { list, options, optionGroups, versions };
|
44
packages/pattern-info/src/prebuild.js
Normal file
44
packages/pattern-info/src/prebuild.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
const path = require("path");
|
||||
const fse = require("fs-extra");
|
||||
const patterns = require("@freesewing/patterns").default;
|
||||
|
||||
const patternOptions = pattern => {
|
||||
let all = [];
|
||||
let groups = pattern.optionGroups;
|
||||
for (let group of Object.keys(groups)) {
|
||||
for (let option of groups[group]) {
|
||||
if (typeof option === "string") all.push(option);
|
||||
else {
|
||||
for (let subgroup of Object.keys(option)) {
|
||||
for (let suboption of option[subgroup]) all.push(suboption);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return all;
|
||||
};
|
||||
|
||||
let options = {};
|
||||
let optionGroups = {};
|
||||
let versions = {};
|
||||
for (let pattern of Object.keys(patterns)) {
|
||||
let instance = new patterns[pattern]();
|
||||
let p = pattern.toLowerCase();
|
||||
options[p] = patternOptions(instance.config);
|
||||
optionGroups[p] = instance.config.optionGroups;
|
||||
versions[p] = instance.config.version;
|
||||
}
|
||||
|
||||
fse.writeFileSync(
|
||||
path.join(".", "src", "prebuild", "options.js"),
|
||||
"module.exports = " + JSON.stringify(options) + "\n"
|
||||
);
|
||||
fse.writeFileSync(
|
||||
path.join(".", "src", "prebuild", "option-groups.js"),
|
||||
"module.exports = " + JSON.stringify(optionGroups) + "\n"
|
||||
);
|
||||
fse.writeFileSync(
|
||||
path.join(".", "src", "prebuild", "versions.js"),
|
||||
"module.exports = " + JSON.stringify(versions) + "\n"
|
||||
);
|
Loading…
Add table
Add a link
Reference in a new issue