✨ Added parts to pattern-info
This commit is contained in:
parent
7b3f95872b
commit
c6ff8f0794
6 changed files with 43 additions and 32 deletions
|
@ -31,6 +31,9 @@
|
||||||
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -",
|
||||||
"prebuild": "node src/prebuild.js"
|
"prebuild": "node src/prebuild.js"
|
||||||
},
|
},
|
||||||
|
"peerDependencies": {},
|
||||||
|
"dependencies": {},
|
||||||
|
"devDependencies": {},
|
||||||
"files": [
|
"files": [
|
||||||
"dist/*",
|
"dist/*",
|
||||||
"README.md",
|
"README.md",
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
export { default as options } from "./prebuild/options";
|
export { default as options } from "./prebuild/options";
|
||||||
export { default as optionGroups } from "./prebuild/option-groups";
|
export { default as optionGroups } from "./prebuild/option-groups";
|
||||||
|
export { default as parts } from "./prebuild/parts";
|
||||||
export { default as versions } from "./prebuild/versions";
|
export { default as versions } from "./prebuild/versions";
|
||||||
|
|
||||||
export const list = [
|
export const list = [
|
||||||
|
|
|
@ -2,9 +2,9 @@ const path = require("path");
|
||||||
const fse = require("fs-extra");
|
const fse = require("fs-extra");
|
||||||
const patterns = require("@freesewing/patterns");
|
const patterns = require("@freesewing/patterns");
|
||||||
|
|
||||||
const patternOptions = pattern => {
|
const patternOptions = config => {
|
||||||
let all = [];
|
let all = [];
|
||||||
let groups = pattern.optionGroups;
|
let groups = config.optionGroups;
|
||||||
for (let group of Object.keys(groups)) {
|
for (let group of Object.keys(groups)) {
|
||||||
for (let option of groups[group]) {
|
for (let option of groups[group]) {
|
||||||
if (typeof option === "string") all.push(option);
|
if (typeof option === "string") all.push(option);
|
||||||
|
@ -19,14 +19,44 @@ const patternOptions = pattern => {
|
||||||
return all;
|
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 options = {};
|
||||||
let optionGroups = {};
|
let optionGroups = {};
|
||||||
|
let parts = {};
|
||||||
let versions = {};
|
let versions = {};
|
||||||
for (let pattern of Object.keys(patterns)) {
|
for (let pattern of Object.keys(patterns)) {
|
||||||
let instance = new patterns[pattern]();
|
let instance = new patterns[pattern]();
|
||||||
let p = pattern.toLowerCase();
|
let p = pattern.toLowerCase();
|
||||||
options[p] = patternOptions(instance.config);
|
options[p] = patternOptions(instance.config);
|
||||||
optionGroups[p] = instance.config.optionGroups;
|
optionGroups[p] = instance.config.optionGroups;
|
||||||
|
parts[p] = patternParts(instance.config);
|
||||||
versions[p] = instance.config.version;
|
versions[p] = instance.config.version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,6 +68,10 @@ fse.writeFileSync(
|
||||||
path.join(".", "src", "prebuild", "option-groups.js"),
|
path.join(".", "src", "prebuild", "option-groups.js"),
|
||||||
"module.exports = " + JSON.stringify(optionGroups) + "\n"
|
"module.exports = " + JSON.stringify(optionGroups) + "\n"
|
||||||
);
|
);
|
||||||
|
fse.writeFileSync(
|
||||||
|
path.join(".", "src", "prebuild", "parts.js"),
|
||||||
|
"module.exports = " + JSON.stringify(parts) + "\n"
|
||||||
|
);
|
||||||
fse.writeFileSync(
|
fse.writeFileSync(
|
||||||
path.join(".", "src", "prebuild", "versions.js"),
|
path.join(".", "src", "prebuild", "versions.js"),
|
||||||
"module.exports = " + JSON.stringify(versions) + "\n"
|
"module.exports = " + JSON.stringify(versions) + "\n"
|
||||||
|
|
|
@ -30,6 +30,9 @@
|
||||||
"pubforce": "npm publish",
|
"pubforce": "npm publish",
|
||||||
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
|
"symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -"
|
||||||
},
|
},
|
||||||
|
"peerDependencies": {},
|
||||||
|
"dependencies": {},
|
||||||
|
"devDependencies": {},
|
||||||
"files": [
|
"files": [
|
||||||
"dist/*",
|
"dist/*",
|
||||||
"README.md",
|
"README.md",
|
||||||
|
|
|
@ -5,7 +5,6 @@ export { default as formatImperial } from "./formatImperial";
|
||||||
export { default as formatMm } from "./formatMm";
|
export { default as formatMm } from "./formatMm";
|
||||||
export { default as optionDefault } from "./optionDefault";
|
export { default as optionDefault } from "./optionDefault";
|
||||||
export { default as optionType } from "./optionType";
|
export { default as optionType } from "./optionType";
|
||||||
export { default as partList } from "./partList";
|
|
||||||
export { default as roundMm } from "./roundMm";
|
export { default as roundMm } from "./roundMm";
|
||||||
export { default as roundMmDown } from "./roundMmDown";
|
export { default as roundMmDown } from "./roundMmDown";
|
||||||
export { default as roundMmUp } from "./roundMmUp";
|
export { default as roundMmUp } from "./roundMmUp";
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
const partList = 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);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default partList;
|
|
Loading…
Add table
Add a link
Reference in a new issue