1
0
Fork 0

Added parts to pattern-info

This commit is contained in:
Joost De Cock 2019-05-03 13:22:18 +02:00
parent 7b3f95872b
commit c6ff8f0794
6 changed files with 43 additions and 32 deletions

View file

@ -31,6 +31,9 @@
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
"prebuild": "node src/prebuild.js"
},
"peerDependencies": {},
"dependencies": {},
"devDependencies": {},
"files": [
"dist/*",
"README.md",

View file

@ -1,5 +1,6 @@
export { default as options } from "./prebuild/options";
export { default as optionGroups } from "./prebuild/option-groups";
export { default as parts } from "./prebuild/parts";
export { default as versions } from "./prebuild/versions";
export const list = [

View file

@ -2,9 +2,9 @@ const path = require("path");
const fse = require("fs-extra");
const patterns = require("@freesewing/patterns");
const patternOptions = pattern => {
const patternOptions = config => {
let all = [];
let groups = pattern.optionGroups;
let groups = config.optionGroups;
for (let group of Object.keys(groups)) {
for (let option of groups[group]) {
if (typeof option === "string") all.push(option);
@ -19,14 +19,44 @@ const patternOptions = pattern => {
return all;
};
const patternParts = config => {
let parts = {};
if (config.parts) {
for (let p of config.parts) parts[p] = p;
}
if (config.dependencies) {
for (let p of Object.keys(config.dependencies)) {
parts[p] = p;
if (typeof config.dependencies[p] === "string") {
parts[config.dependencies[p]] = config.dependencies[p];
} else {
for (let d of config.dependencies[p]) parts[d] = d;
}
}
}
if (config.inject) {
for (let p of Object.keys(config.inject)) {
parts[p] = p;
parts[config.inject[p]] = config.inject[p];
}
}
if (config.hide) {
for (let p of config.hide) delete parts[p];
}
return Object.keys(parts);
};
let options = {};
let optionGroups = {};
let parts = {};
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;
parts[p] = patternParts(instance.config);
versions[p] = instance.config.version;
}
@ -38,6 +68,10 @@ fse.writeFileSync(
path.join(".", "src", "prebuild", "option-groups.js"),
"module.exports = " + JSON.stringify(optionGroups) + "\n"
);
fse.writeFileSync(
path.join(".", "src", "prebuild", "parts.js"),
"module.exports = " + JSON.stringify(parts) + "\n"
);
fse.writeFileSync(
path.join(".", "src", "prebuild", "versions.js"),
"module.exports = " + JSON.stringify(versions) + "\n"