fix: Make yarn new design work again
Also makes the reconfigure script responsible for the generation of the use-design hook.
This commit is contained in:
parent
71e1d2b42d
commit
7eff523f7e
8 changed files with 378 additions and 247 deletions
|
@ -1,6 +1,8 @@
|
|||
{
|
||||
"aaron": {
|
||||
"description": "A FreeSewing pattern for a A-shirt or tank top",
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
"difficulty": 2,
|
||||
|
@ -8,6 +10,8 @@
|
|||
"techniques": ["hem", "stretch", "knitBinding", "curvedSeam"]
|
||||
},
|
||||
"albert": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for an apron",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": "Wouter Van Wageningen",
|
||||
|
@ -16,6 +20,8 @@
|
|||
"techniques": ["hem", "knitBinding", "curvedSeam", "pocket"]
|
||||
},
|
||||
"bee": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a bikini top",
|
||||
"code": "bobgeorgethe3rd",
|
||||
"design": "PrudenceRabbit",
|
||||
|
@ -24,6 +30,8 @@
|
|||
"techniques": ["hem", "stretch", "curvedSeam", "precision"]
|
||||
},
|
||||
"bella": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a womenswear bodice block",
|
||||
"code": "Joost De Cock",
|
||||
"design": ["Bella Incognito", "Joost De Cock"],
|
||||
|
@ -32,6 +40,8 @@
|
|||
"techniques": ["dart", "block"]
|
||||
},
|
||||
"benjamin": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a bow tie",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": "Wouter Van Wageningen",
|
||||
|
@ -40,6 +50,8 @@
|
|||
"techniques": ["precision", "interfacing"]
|
||||
},
|
||||
"bent": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a menswear body block with a two-part sleeve",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -48,6 +60,8 @@
|
|||
"techniques": ["hem", "curvedSeam", "setSleeve"]
|
||||
},
|
||||
"bob": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a bib",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -56,6 +70,8 @@
|
|||
"techniques": ["biasTape", "curvedSeam", "snap"]
|
||||
},
|
||||
"breanna": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a basic body block for womenswear",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -64,6 +80,8 @@
|
|||
"techniques": ["block", "dart"]
|
||||
},
|
||||
"brian": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a basic body block for menswear",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -72,6 +90,8 @@
|
|||
"techniques": ["block", "flatSleeve"]
|
||||
},
|
||||
"bruce": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for boxer briefs",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -80,6 +100,8 @@
|
|||
"techniques": ["stretch", "hem", "curvedSeam", "elastic"]
|
||||
},
|
||||
"carlita": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat",
|
||||
"code": "Joost De Cock",
|
||||
"design": ["Anneke Caramin", "Joost De Cock"],
|
||||
|
@ -99,6 +121,8 @@
|
|||
]
|
||||
},
|
||||
"carlton": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat",
|
||||
"code": "Joost De Cock",
|
||||
"design": ["Anneke Caramin", "Joost De Cock"],
|
||||
|
@ -117,6 +141,8 @@
|
|||
]
|
||||
},
|
||||
"cathrin": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a underbust corset / waist trainer",
|
||||
"code": "Joost De Cock",
|
||||
"design": ["Cathrin Åhlén", "Joost De Cock"],
|
||||
|
@ -125,6 +151,8 @@
|
|||
"techniques": ["boning", "precision", "curvedSeam", "interfacing"]
|
||||
},
|
||||
"charlie": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for chino trousers",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -143,6 +171,8 @@
|
|||
]
|
||||
},
|
||||
"cornelius": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for cycling breeches, based on the Keystone drafting system",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": "Wouter Van Wageningen",
|
||||
|
@ -151,6 +181,8 @@
|
|||
"techniques": []
|
||||
},
|
||||
"diana": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a top with a draped neck",
|
||||
"code": "Erica Alcusa Sáez",
|
||||
"design": "Erica Alcusa Sáez",
|
||||
|
@ -159,10 +191,14 @@
|
|||
"techniques": ["curvedSeam", "flatSleeve", "hem"]
|
||||
},
|
||||
"examples": {
|
||||
"lab": false,
|
||||
"org": false,
|
||||
"description": "A FreeSewing pattern holding examples for our documentation",
|
||||
"code": "Joost De Cock"
|
||||
},
|
||||
"florence": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a face mask",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -171,6 +207,8 @@
|
|||
"techniques": ["curvedSeam"]
|
||||
},
|
||||
"florent": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a flat cap",
|
||||
"code": ["Quentin Felix", "Joost De Cock"],
|
||||
"design": "Quentin Felix",
|
||||
|
@ -179,6 +217,8 @@
|
|||
"techniques": ["curvedSeam"]
|
||||
},
|
||||
"hi": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a shark plush toy",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": "Wouter Van Wageningen",
|
||||
|
@ -187,6 +227,8 @@
|
|||
"techniques": ["curvedSeam", "dart"]
|
||||
},
|
||||
"holmes": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a Sherlock Holmes hat",
|
||||
"code": ["Erica Alcusa Sáez", "bobgeorgethe3rd"],
|
||||
"design": "Erica Alcusa Sáez",
|
||||
|
@ -195,6 +237,8 @@
|
|||
"techniques": ["curvedSeam", "lining"]
|
||||
},
|
||||
"hortensia": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a handbag",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": ["Stoffsuchti", "Wouter Van Wageningen"],
|
||||
|
@ -203,6 +247,8 @@
|
|||
"techniques": ["curvedSeam", "precision", "lining", "zipper"]
|
||||
},
|
||||
"huey": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a zip-up hoodie",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -211,6 +257,8 @@
|
|||
"techniques": ["curvedSeam", "pocket", "zipper", "ribbing", "flatSleeve"]
|
||||
},
|
||||
"hugo": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a hooded jumper with raglan sleeves",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -219,6 +267,8 @@
|
|||
"techniques": ["curvedSeam", "pocket", "ribbing", "raglanSleeve"]
|
||||
},
|
||||
"jaeger": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a sport coat style jacket",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -237,10 +287,14 @@
|
|||
]
|
||||
},
|
||||
"legend": {
|
||||
"lab": false,
|
||||
"org": false,
|
||||
"description": "A FreeSewing pattern to document pattern notation",
|
||||
"code": "Joost De Cock"
|
||||
},
|
||||
"lucy": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a historical tie-on pocket",
|
||||
"code": "SeaZeeZee",
|
||||
"design": "SeaZeeZee",
|
||||
|
@ -249,6 +303,8 @@
|
|||
"techniques": ["curvedSeam"]
|
||||
},
|
||||
"lunetius": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a lacerna, a historical Roman cloak",
|
||||
"code": "Rika Tamaike",
|
||||
"design": "Rika Tamaike",
|
||||
|
@ -257,6 +313,8 @@
|
|||
"techniques": ["hem"]
|
||||
},
|
||||
"magde": {
|
||||
"lab": true,
|
||||
"org": false,
|
||||
"description": "A FreeSewing pattern for a bike messenger bag",
|
||||
"code": "clegganator259",
|
||||
"design": "clegganator259",
|
||||
|
@ -265,6 +323,8 @@
|
|||
"techniques": []
|
||||
},
|
||||
"noble": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a princess seam bodice block",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": "Wouter Van Wageningen",
|
||||
|
@ -273,6 +333,8 @@
|
|||
"techniques": ["curvedSeam", "precision", "princessSeam"]
|
||||
},
|
||||
"octoplushy": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for an octopus plushy toy",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": "Wouter Van Wageningen",
|
||||
|
@ -281,6 +343,8 @@
|
|||
"techniques": ["curvedSeam", "precision"]
|
||||
},
|
||||
"paco": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for summer pants",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -289,6 +353,8 @@
|
|||
"techniques": ["elastic", "curvedSeam", "pocket", "weltPocket", "hem"]
|
||||
},
|
||||
"penelope": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a pencil skirt",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": "Wouter Van Wageningen",
|
||||
|
@ -297,14 +363,20 @@
|
|||
"techniques": ["hem", "curvedSeam", "precision", "zipper"]
|
||||
},
|
||||
"plugintest": {
|
||||
"lab": false,
|
||||
"org": false,
|
||||
"description": "A FreeSewing pattern to test (y)our plugins",
|
||||
"code": "Joost De Cock"
|
||||
},
|
||||
"rendertest": {
|
||||
"lab": false,
|
||||
"org": false,
|
||||
"description": "A FreeSewing pattern to test (y)our render engine our CSS",
|
||||
"code": "Joost De Cock"
|
||||
},
|
||||
"sandy": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a circle skirt",
|
||||
"code": ["Erica Alcusa Sáez", "Joost De Cock"],
|
||||
"design": "Erica Alcusa Sáez",
|
||||
|
@ -313,6 +385,8 @@
|
|||
"techniques": ["curvedSeam", "button", "hem"]
|
||||
},
|
||||
"shin": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for swim trunks",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -321,6 +395,8 @@
|
|||
"techniques": ["hem", "stretch", "curvedSeam", "elastic"]
|
||||
},
|
||||
"simon": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a button down shirt",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -329,6 +405,8 @@
|
|||
"techniques": ["hem", "button", "interfacing", "curvedSeam", "flatFelledSeam", "flatSleeve"]
|
||||
},
|
||||
"simone": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -337,6 +415,8 @@
|
|||
"techniques": ["hem", "button", "interfacing", "curvedSeam", "flatFelledSeam", "flatSleeve"]
|
||||
},
|
||||
"sven": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a straightforward sweater",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -345,6 +425,8 @@
|
|||
"techniques": ["curvedSeam", "flatSleeve", "ribbing"]
|
||||
},
|
||||
"tamiko": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a zero-waste top",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -353,6 +435,8 @@
|
|||
"techniques": ["curvedSeam"]
|
||||
},
|
||||
"teagan": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a T-shirt",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -361,6 +445,8 @@
|
|||
"techniques": ["curvedSeam", "hem", "flatSleeve", "knitBand"]
|
||||
},
|
||||
"tiberius": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a tunica, a historical Roman tunic",
|
||||
"code": "Rika Tamaike",
|
||||
"design": "Rika Tamaike",
|
||||
|
@ -369,6 +455,8 @@
|
|||
"techniques": []
|
||||
},
|
||||
"titan": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a unisex trouser block",
|
||||
"code": "Joost De Cock",
|
||||
"design": ["Debra Bean", "Joost De Cock"],
|
||||
|
@ -377,6 +465,8 @@
|
|||
"techniques": []
|
||||
},
|
||||
"trayvon": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a tie",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -385,6 +475,8 @@
|
|||
"techniques": ["precision", "lining"]
|
||||
},
|
||||
"uma": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a basic, highly-customizable underwear pattern",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -393,6 +485,8 @@
|
|||
"techniques": ["elastic", "curvedSeam"]
|
||||
},
|
||||
"wahid": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a classic fitted waistcoat",
|
||||
"code": "Joost De Cock",
|
||||
"design": "Joost De Cock",
|
||||
|
@ -401,6 +495,8 @@
|
|||
"techniques": ["curvedSeam", "hem", "interfacing", "lining", "weltPocket", "button"]
|
||||
},
|
||||
"walburga": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a wappenrock (tabard/surcoat), a historical European/medieval (ish) garment",
|
||||
"code": "Rika Tamaike",
|
||||
"design": "Rika Tamaike",
|
||||
|
@ -409,6 +505,8 @@
|
|||
"techniques": ["hem"]
|
||||
},
|
||||
"waralee": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for wrap pants",
|
||||
"code": "Wouter Van Wageningen",
|
||||
"design": "Wouter Van Wageningen",
|
||||
|
@ -417,6 +515,8 @@
|
|||
"techniques": []
|
||||
},
|
||||
"yuri": {
|
||||
"lab": true,
|
||||
"org": true,
|
||||
"description": "A FreeSewing pattern for a fancy zipless sweater based on the Huey hoodie",
|
||||
"code": "Hellgy",
|
||||
"design": "Biou",
|
||||
|
|
7
config/templates/design/i18n/en.json
Normal file
7
config/templates/design/i18n/en.json
Normal file
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"t": "{{ title }}",
|
||||
"d": "{{ description }}",
|
||||
"p": { },
|
||||
"s": { },
|
||||
"o": { }
|
||||
}
|
8
config/templates/design/i18n/index.mjs
Normal file
8
config/templates/design/i18n/index.mjs
Normal file
|
@ -0,0 +1,8 @@
|
|||
import en from './en.json' assert { type: 'json' }
|
||||
import de from './de.json' assert { type: 'json' }
|
||||
import es from './es.json' assert { type: 'json' }
|
||||
import fr from './fr.json' assert { type: 'json' }
|
||||
import nl from './nl.json' assert { type: 'json' }
|
||||
import uk from './uk.json' assert { type: 'json' }
|
||||
|
||||
export const i18n = { en, de, es, fr, nl, uk }
|
17
config/templates/use-design.mjs.mustache
Normal file
17
config/templates/use-design.mjs.mustache
Normal file
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* This file is auto-generated.
|
||||
* Any manual changes will be overwritten.
|
||||
*/
|
||||
{{#designs}}
|
||||
import { {{ Name }} as {{ name }} } from '@freesewing/{{ name }}'
|
||||
{{/designs}}
|
||||
|
||||
const designs = {
|
||||
{{#designs}}
|
||||
{{ name }},
|
||||
{{/designs}}
|
||||
}
|
||||
|
||||
export const useDesign = (design) => (designs[design] ? designs[design] : false)
|
||||
|
||||
export const collection = Object.keys(designs)
|
|
@ -5,10 +5,13 @@ import chalk from 'chalk'
|
|||
import { banner } from './banner.mjs'
|
||||
import mustache from 'mustache'
|
||||
import { execSync } from 'child_process'
|
||||
import languages from '../config/languages.json' assert { type: 'json' }
|
||||
// Software
|
||||
import designs from '../config/software/designs.json' assert { type: 'json' }
|
||||
import plugins from '../config/software/plugins.json' assert { type: 'json' }
|
||||
|
||||
console.log({ languages })
|
||||
|
||||
const type = process.argv[2]
|
||||
|
||||
// Add new design
|
||||
|
@ -39,42 +42,13 @@ async function addDesign() {
|
|||
${chalk.gray('≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡')}
|
||||
|
||||
We're going to add a new design to this repository. That's awesome 🎉
|
||||
Let's start by picking the category for this design 🏷️
|
||||
`)
|
||||
const { type } = await prompts({
|
||||
type: 'select',
|
||||
name: 'type',
|
||||
message: 'In what category should we add the design?',
|
||||
choices: [
|
||||
{
|
||||
title: 'Accessories',
|
||||
value: 'accessories',
|
||||
description: 'Hats, bags, plushies, and so on',
|
||||
},
|
||||
{ title: 'Blocks', value: 'blocks', description: 'Blocks/Slopers to base other designs on' },
|
||||
{
|
||||
title: 'Garments',
|
||||
value: 'garments',
|
||||
description: 'For clothes. The most common category',
|
||||
},
|
||||
{
|
||||
title: 'Utilities',
|
||||
value: 'utilities',
|
||||
description: 'For utility designs such as our rendertest or legend',
|
||||
},
|
||||
],
|
||||
initial: 2,
|
||||
})
|
||||
|
||||
console.log(`
|
||||
Cool cool cool.
|
||||
Now a name. Naming things is hard 😬
|
||||
Let's start by picking a name. Naming things is hard 😬
|
||||
|
||||
We'd appreciate if you pick:
|
||||
|
||||
- a firstname like ${chalk.green('alex')}, ${chalk.green('jordan')}, ${chalk.green(
|
||||
'ezra'
|
||||
)}, or ${chalk.green('logan')}
|
||||
'ezra'
|
||||
)}, or ${chalk.green('logan')}
|
||||
- that is an aliteration with the kind of design, like ${chalk.green(
|
||||
'wahid'
|
||||
)} for a ${chalk.green('w')}aistcoat
|
||||
|
@ -89,9 +63,9 @@ async function addDesign() {
|
|||
validate: validateDesignName,
|
||||
})
|
||||
|
||||
if (name && type) {
|
||||
console.log('\n' + ` Alright, let's add ${chalk.green(name)} under ${chalk.green(type)} 🪄`)
|
||||
createDesign(name, type)
|
||||
if (name) {
|
||||
console.log('\n' + ` Alright, let's add ${chalk.green(name)} 🪄`)
|
||||
createDesign(name)
|
||||
execSync('npm run reconfigure')
|
||||
console.log(` All done 🎉`)
|
||||
|
||||
|
@ -112,16 +86,16 @@ async function addDesign() {
|
|||
Hhere's a few other things you can configure:
|
||||
|
||||
👉 ${chalk.yellow('Author')}: Credit where credit is due; Add yourself as author in ${chalk.green(
|
||||
'config/exceptions.yaml'
|
||||
)}
|
||||
👉 ${chalk.yellow('Description')}: We used a placeholder description; Update it in ${chalk.green(
|
||||
'config/software/designs.json'
|
||||
)}
|
||||
'config/exceptions.yaml'
|
||||
)}
|
||||
👉 ${chalk.yellow('Description')}: We used placeholder metadata; Update it in ${chalk.green(
|
||||
'config/software/designs.json'
|
||||
)}
|
||||
👉 ${chalk.yellow(
|
||||
'Dependencies'
|
||||
)}: If you need additional plugins or patterns to extend, update ${chalk.green(
|
||||
'config/dependencies.yaml'
|
||||
)}
|
||||
'config/dependencies.yaml'
|
||||
)}
|
||||
|
||||
If you change any of these, run ${chalk.blue('yarn reconfigure')} to update the package(s).
|
||||
|
||||
|
@ -184,16 +158,16 @@ async function addPlugin() {
|
|||
Hhere's a few other things you can configure:
|
||||
|
||||
👉 ${chalk.yellow('Author')}: Credit where credit is due; Add yourself as author in ${chalk.green(
|
||||
'config/exceptions.yaml'
|
||||
)}
|
||||
'config/exceptions.yaml'
|
||||
)}
|
||||
👉 ${chalk.yellow('Description')}: We used a placeholder description; Update it in ${chalk.green(
|
||||
'config/software/plugins.json'
|
||||
)}
|
||||
'config/software/plugins.json'
|
||||
)}
|
||||
👉 ${chalk.yellow(
|
||||
'Dependencies'
|
||||
)}: If you need additional plugins or patterns to extend, update ${chalk.green(
|
||||
'config/dependencies.yaml'
|
||||
)}
|
||||
'config/dependencies.yaml'
|
||||
)}
|
||||
|
||||
If you change any of these, run ${chalk.blue('yarn reconfigure')} to update the package(s).
|
||||
|
||||
|
@ -213,14 +187,7 @@ async function addPlugin() {
|
|||
}
|
||||
|
||||
function validateDesignName(name) {
|
||||
if (
|
||||
[
|
||||
...Object.keys(designs.accessories),
|
||||
...Object.keys(designs.blocks),
|
||||
...Object.keys(designs.garments),
|
||||
...Object.keys(designs.utilities),
|
||||
].indexOf(name) !== -1
|
||||
)
|
||||
if (Object.keys(designs).indexOf(name) !== -1)
|
||||
return `Sorry but ${name} is already taken so you'll need to pick something else`
|
||||
|
||||
if (/^([a-z][a-z0-9_]*)$/.test(name)) return true
|
||||
|
@ -237,24 +204,26 @@ function validatePluginName(name) {
|
|||
else return ' 🙈 Please use only [a-z], no spaces, no capitals, no nothing 🤷'
|
||||
}
|
||||
|
||||
function createDesign(name, type) {
|
||||
function createDesign(name) {
|
||||
const template = ['config', 'templates', 'design']
|
||||
const design = ['designs', name]
|
||||
const description = 'A FreeSewing pattern that needs a description'
|
||||
const capitalized_name = name.charAt(0).toUpperCase() + name.slice(1)
|
||||
|
||||
// Add to designs config file
|
||||
designs[type][name] = {
|
||||
designs[name] = {
|
||||
description: description,
|
||||
code: 'Coder name',
|
||||
design: 'Designer name',
|
||||
difficulty: 1,
|
||||
tags: ['tagname'],
|
||||
techniques: ['techname'],
|
||||
}
|
||||
write(['config', 'software', 'designs.json'], JSON.stringify(orderDesigns(designs), null, 2))
|
||||
|
||||
// Create folders
|
||||
mkdir([...design, 'src'])
|
||||
mkdir([...design, 'i18n'])
|
||||
mkdir([...design, 'tests'])
|
||||
|
||||
// Create package.json
|
||||
|
@ -263,11 +232,21 @@ function createDesign(name, type) {
|
|||
description,
|
||||
})
|
||||
|
||||
// Create index.mjs
|
||||
// Create src/index.mjs
|
||||
templateOut([...template, 'src', 'index.mjs.mustache'], [...design, 'src', 'index.mjs'], {
|
||||
capitalized_name,
|
||||
})
|
||||
|
||||
// Copy i18n/index.mjs
|
||||
cp([...template, 'i18n', 'index.mjs'], [...design, 'i18n', 'index.mjs'])
|
||||
|
||||
// Create i18n translation files
|
||||
for (const language of languages)
|
||||
templateOut([...template, 'i18n', 'en.json'], [...design, 'i18n', `${language}.json`], {
|
||||
title: capitalized_name,
|
||||
description,
|
||||
})
|
||||
|
||||
// Create tests file
|
||||
cp([...template, 'tests', 'shared.test.mjs'], [...design, 'tests', 'shared.test.mjs'])
|
||||
|
||||
|
|
|
@ -150,6 +150,24 @@ export const designs = {
|
|||
`
|
||||
)
|
||||
|
||||
// Step 7: Create use-design hooks for lab & org
|
||||
for (const site of ['lab', 'org']) {
|
||||
fs.writeFileSync(
|
||||
path.join(repo.path, 'sites', site, 'hooks', 'use-design.mjs'),
|
||||
mustache.render(
|
||||
fs.readFileSync(
|
||||
path.join(repo.path, 'config', 'templates', 'use-design.mjs.mustache'),
|
||||
'utf-8'
|
||||
),
|
||||
{
|
||||
designs: Object.keys(designs)
|
||||
.filter((name) => designs[name][site])
|
||||
.map((name) => ({ name, Name: capitalize(name) })),
|
||||
}
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
// All done
|
||||
log.write(chalk.green(' All done\n'))
|
||||
process.exit()
|
||||
|
|
|
@ -1,103 +1,101 @@
|
|||
import { Aaron } from '@freesewing/aaron'
|
||||
import { Albert } from '@freesewing/albert'
|
||||
import { Bee } from '@freesewing/bee'
|
||||
import { Bella } from '@freesewing/bella'
|
||||
import { Benjamin } from '@freesewing/benjamin'
|
||||
import { Bent } from '@freesewing/bent'
|
||||
import { Bob } from '@freesewing/bob'
|
||||
import { Breanna } from '@freesewing/breanna'
|
||||
import { Brian } from '@freesewing/brian'
|
||||
import { Bruce } from '@freesewing/bruce'
|
||||
import { Carlita } from '@freesewing/carlita'
|
||||
import { Carlton } from '@freesewing/carlton'
|
||||
import { Cathrin } from '@freesewing/cathrin'
|
||||
import { Charlie } from '@freesewing/charlie'
|
||||
import { Cornelius } from '@freesewing/cornelius'
|
||||
import { Diana } from '@freesewing/diana'
|
||||
import { Florence } from '@freesewing/florence'
|
||||
import { Florent } from '@freesewing/florent'
|
||||
import { Hi } from '@freesewing/hi'
|
||||
import { Holmes } from '@freesewing/holmes'
|
||||
import { Hortensia } from '@freesewing/hortensia'
|
||||
import { Huey } from '@freesewing/huey'
|
||||
import { Hugo } from '@freesewing/hugo'
|
||||
import { Jaeger } from '@freesewing/jaeger'
|
||||
import { Legend } from '@freesewing/legend'
|
||||
import { Lucy } from '@freesewing/lucy'
|
||||
import { Lunetius } from '@freesewing/lunetius'
|
||||
import { Magde } from '@freesewing/magde'
|
||||
import { Noble } from '@freesewing/noble'
|
||||
import { Octoplushy } from '@freesewing/octoplushy'
|
||||
import { Paco } from '@freesewing/paco'
|
||||
import { Penelope } from '@freesewing/penelope'
|
||||
import { Plugintest } from '@freesewing/plugintest'
|
||||
import { Rendertest } from '@freesewing/rendertest'
|
||||
import { Sandy } from '@freesewing/sandy'
|
||||
import { Shin } from '@freesewing/shin'
|
||||
import { Simon } from '@freesewing/simon'
|
||||
import { Simone } from '@freesewing/simone'
|
||||
import { Sven } from '@freesewing/sven'
|
||||
import { Tamiko } from '@freesewing/tamiko'
|
||||
import { Teagan } from '@freesewing/teagan'
|
||||
import { Tiberius } from '@freesewing/tiberius'
|
||||
import { Titan } from '@freesewing/titan'
|
||||
import { Trayvon } from '@freesewing/trayvon'
|
||||
import { Uma } from '@freesewing/uma'
|
||||
import { Wahid } from '@freesewing/wahid'
|
||||
import { Walburga } from '@freesewing/walburga'
|
||||
import { Waralee } from '@freesewing/waralee'
|
||||
import { Yuri } from '@freesewing/yuri'
|
||||
/*
|
||||
* This file is auto-generated.
|
||||
* Any manual changes will be overwritten.
|
||||
*/
|
||||
import { Aaron as aaron } from '@freesewing/aaron'
|
||||
import { Albert as albert } from '@freesewing/albert'
|
||||
import { Bee as bee } from '@freesewing/bee'
|
||||
import { Bella as bella } from '@freesewing/bella'
|
||||
import { Benjamin as benjamin } from '@freesewing/benjamin'
|
||||
import { Bent as bent } from '@freesewing/bent'
|
||||
import { Bob as bob } from '@freesewing/bob'
|
||||
import { Breanna as breanna } from '@freesewing/breanna'
|
||||
import { Brian as brian } from '@freesewing/brian'
|
||||
import { Bruce as bruce } from '@freesewing/bruce'
|
||||
import { Carlita as carlita } from '@freesewing/carlita'
|
||||
import { Carlton as carlton } from '@freesewing/carlton'
|
||||
import { Cathrin as cathrin } from '@freesewing/cathrin'
|
||||
import { Charlie as charlie } from '@freesewing/charlie'
|
||||
import { Cornelius as cornelius } from '@freesewing/cornelius'
|
||||
import { Diana as diana } from '@freesewing/diana'
|
||||
import { Florence as florence } from '@freesewing/florence'
|
||||
import { Florent as florent } from '@freesewing/florent'
|
||||
import { Hi as hi } from '@freesewing/hi'
|
||||
import { Holmes as holmes } from '@freesewing/holmes'
|
||||
import { Hortensia as hortensia } from '@freesewing/hortensia'
|
||||
import { Huey as huey } from '@freesewing/huey'
|
||||
import { Hugo as hugo } from '@freesewing/hugo'
|
||||
import { Jaeger as jaeger } from '@freesewing/jaeger'
|
||||
import { Lucy as lucy } from '@freesewing/lucy'
|
||||
import { Lunetius as lunetius } from '@freesewing/lunetius'
|
||||
import { Magde as magde } from '@freesewing/magde'
|
||||
import { Noble as noble } from '@freesewing/noble'
|
||||
import { Octoplushy as octoplushy } from '@freesewing/octoplushy'
|
||||
import { Paco as paco } from '@freesewing/paco'
|
||||
import { Penelope as penelope } from '@freesewing/penelope'
|
||||
import { Sandy as sandy } from '@freesewing/sandy'
|
||||
import { Shin as shin } from '@freesewing/shin'
|
||||
import { Simon as simon } from '@freesewing/simon'
|
||||
import { Simone as simone } from '@freesewing/simone'
|
||||
import { Sven as sven } from '@freesewing/sven'
|
||||
import { Tamiko as tamiko } from '@freesewing/tamiko'
|
||||
import { Teagan as teagan } from '@freesewing/teagan'
|
||||
import { Tiberius as tiberius } from '@freesewing/tiberius'
|
||||
import { Titan as titan } from '@freesewing/titan'
|
||||
import { Trayvon as trayvon } from '@freesewing/trayvon'
|
||||
import { Uma as uma } from '@freesewing/uma'
|
||||
import { Wahid as wahid } from '@freesewing/wahid'
|
||||
import { Walburga as walburga } from '@freesewing/walburga'
|
||||
import { Waralee as waralee } from '@freesewing/waralee'
|
||||
import { Yuri as yuri } from '@freesewing/yuri'
|
||||
|
||||
const designs = {
|
||||
aaron: Aaron,
|
||||
albert: Albert,
|
||||
bee: Bee,
|
||||
bella: Bella,
|
||||
benjamin: Benjamin,
|
||||
bent: Bent,
|
||||
bob: Bob,
|
||||
breanna: Breanna,
|
||||
brian: Brian,
|
||||
bruce: Bruce,
|
||||
carlita: Carlita,
|
||||
carlton: Carlton,
|
||||
cathrin: Cathrin,
|
||||
charlie: Charlie,
|
||||
cornelius: Cornelius,
|
||||
diana: Diana,
|
||||
florence: Florence,
|
||||
florent: Florent,
|
||||
hi: Hi,
|
||||
holmes: Holmes,
|
||||
hortensia: Hortensia,
|
||||
huey: Huey,
|
||||
hugo: Hugo,
|
||||
jaeger: Jaeger,
|
||||
legend: Legend,
|
||||
lucy: Lucy,
|
||||
lunetius: Lunetius,
|
||||
magde: Magde,
|
||||
noble: Noble,
|
||||
octoplushy: Octoplushy,
|
||||
paco: Paco,
|
||||
penelope: Penelope,
|
||||
plugintest: Plugintest,
|
||||
rendertest: Rendertest,
|
||||
sandy: Sandy,
|
||||
shin: Shin,
|
||||
simon: Simon,
|
||||
simone: Simone,
|
||||
sven: Sven,
|
||||
tamiko: Tamiko,
|
||||
teagan: Teagan,
|
||||
tiberius: Tiberius,
|
||||
titan: Titan,
|
||||
trayvon: Trayvon,
|
||||
uma: Uma,
|
||||
wahid: Wahid,
|
||||
walburga: Walburga,
|
||||
waralee: Waralee,
|
||||
yuri: Yuri,
|
||||
aaron,
|
||||
albert,
|
||||
bee,
|
||||
bella,
|
||||
benjamin,
|
||||
bent,
|
||||
bob,
|
||||
breanna,
|
||||
brian,
|
||||
bruce,
|
||||
carlita,
|
||||
carlton,
|
||||
cathrin,
|
||||
charlie,
|
||||
cornelius,
|
||||
diana,
|
||||
florence,
|
||||
florent,
|
||||
hi,
|
||||
holmes,
|
||||
hortensia,
|
||||
huey,
|
||||
hugo,
|
||||
jaeger,
|
||||
lucy,
|
||||
lunetius,
|
||||
magde,
|
||||
noble,
|
||||
octoplushy,
|
||||
paco,
|
||||
penelope,
|
||||
sandy,
|
||||
shin,
|
||||
simon,
|
||||
simone,
|
||||
sven,
|
||||
tamiko,
|
||||
teagan,
|
||||
tiberius,
|
||||
titan,
|
||||
trayvon,
|
||||
uma,
|
||||
wahid,
|
||||
walburga,
|
||||
waralee,
|
||||
yuri,
|
||||
}
|
||||
|
||||
export const useDesign = (design) => (designs[design] ? designs[design] : false)
|
||||
|
|
|
@ -1,95 +1,99 @@
|
|||
import { Aaron } from '@freesewing/aaron'
|
||||
import { Albert } from '@freesewing/albert'
|
||||
import { Bee } from '@freesewing/bee'
|
||||
import { Bella } from '@freesewing/bella'
|
||||
import { Benjamin } from '@freesewing/benjamin'
|
||||
import { Bent } from '@freesewing/bent'
|
||||
import { Bob } from '@freesewing/bob'
|
||||
import { Breanna } from '@freesewing/breanna'
|
||||
import { Brian } from '@freesewing/brian'
|
||||
import { Bruce } from '@freesewing/bruce'
|
||||
import { Carlita } from '@freesewing/carlita'
|
||||
import { Carlton } from '@freesewing/carlton'
|
||||
import { Cathrin } from '@freesewing/cathrin'
|
||||
import { Charlie } from '@freesewing/charlie'
|
||||
import { Cornelius } from '@freesewing/cornelius'
|
||||
import { Diana } from '@freesewing/diana'
|
||||
import { Florence } from '@freesewing/florence'
|
||||
import { Florent } from '@freesewing/florent'
|
||||
import { Hi } from '@freesewing/hi'
|
||||
import { Holmes } from '@freesewing/holmes'
|
||||
import { Hortensia } from '@freesewing/hortensia'
|
||||
import { Huey } from '@freesewing/huey'
|
||||
import { Hugo } from '@freesewing/hugo'
|
||||
import { Jaeger } from '@freesewing/jaeger'
|
||||
import { Lucy } from '@freesewing/lucy'
|
||||
import { Lunetius } from '@freesewing/lunetius'
|
||||
import { Noble } from '@freesewing/noble'
|
||||
import { Octoplushy } from '@freesewing/octoplushy'
|
||||
import { Paco } from '@freesewing/paco'
|
||||
import { Penelope } from '@freesewing/penelope'
|
||||
import { Sandy } from '@freesewing/sandy'
|
||||
import { Shin } from '@freesewing/shin'
|
||||
import { Simon } from '@freesewing/simon'
|
||||
import { Simone } from '@freesewing/simone'
|
||||
import { Sven } from '@freesewing/sven'
|
||||
import { Tamiko } from '@freesewing/tamiko'
|
||||
import { Teagan } from '@freesewing/teagan'
|
||||
import { Tiberius } from '@freesewing/tiberius'
|
||||
import { Titan } from '@freesewing/titan'
|
||||
import { Trayvon } from '@freesewing/trayvon'
|
||||
import { Uma } from '@freesewing/uma'
|
||||
import { Wahid } from '@freesewing/wahid'
|
||||
import { Walburga } from '@freesewing/walburga'
|
||||
import { Waralee } from '@freesewing/waralee'
|
||||
import { Yuri } from '@freesewing/yuri'
|
||||
/*
|
||||
* This file is auto-generated.
|
||||
* Any manual changes will be overwritten.
|
||||
*/
|
||||
import { Aaron as aaron } from '@freesewing/aaron'
|
||||
import { Albert as albert } from '@freesewing/albert'
|
||||
import { Bee as bee } from '@freesewing/bee'
|
||||
import { Bella as bella } from '@freesewing/bella'
|
||||
import { Benjamin as benjamin } from '@freesewing/benjamin'
|
||||
import { Bent as bent } from '@freesewing/bent'
|
||||
import { Bob as bob } from '@freesewing/bob'
|
||||
import { Breanna as breanna } from '@freesewing/breanna'
|
||||
import { Brian as brian } from '@freesewing/brian'
|
||||
import { Bruce as bruce } from '@freesewing/bruce'
|
||||
import { Carlita as carlita } from '@freesewing/carlita'
|
||||
import { Carlton as carlton } from '@freesewing/carlton'
|
||||
import { Cathrin as cathrin } from '@freesewing/cathrin'
|
||||
import { Charlie as charlie } from '@freesewing/charlie'
|
||||
import { Cornelius as cornelius } from '@freesewing/cornelius'
|
||||
import { Diana as diana } from '@freesewing/diana'
|
||||
import { Florence as florence } from '@freesewing/florence'
|
||||
import { Florent as florent } from '@freesewing/florent'
|
||||
import { Hi as hi } from '@freesewing/hi'
|
||||
import { Holmes as holmes } from '@freesewing/holmes'
|
||||
import { Hortensia as hortensia } from '@freesewing/hortensia'
|
||||
import { Huey as huey } from '@freesewing/huey'
|
||||
import { Hugo as hugo } from '@freesewing/hugo'
|
||||
import { Jaeger as jaeger } from '@freesewing/jaeger'
|
||||
import { Lucy as lucy } from '@freesewing/lucy'
|
||||
import { Lunetius as lunetius } from '@freesewing/lunetius'
|
||||
import { Noble as noble } from '@freesewing/noble'
|
||||
import { Octoplushy as octoplushy } from '@freesewing/octoplushy'
|
||||
import { Paco as paco } from '@freesewing/paco'
|
||||
import { Penelope as penelope } from '@freesewing/penelope'
|
||||
import { Sandy as sandy } from '@freesewing/sandy'
|
||||
import { Shin as shin } from '@freesewing/shin'
|
||||
import { Simon as simon } from '@freesewing/simon'
|
||||
import { Simone as simone } from '@freesewing/simone'
|
||||
import { Sven as sven } from '@freesewing/sven'
|
||||
import { Tamiko as tamiko } from '@freesewing/tamiko'
|
||||
import { Teagan as teagan } from '@freesewing/teagan'
|
||||
import { Tiberius as tiberius } from '@freesewing/tiberius'
|
||||
import { Titan as titan } from '@freesewing/titan'
|
||||
import { Trayvon as trayvon } from '@freesewing/trayvon'
|
||||
import { Uma as uma } from '@freesewing/uma'
|
||||
import { Wahid as wahid } from '@freesewing/wahid'
|
||||
import { Walburga as walburga } from '@freesewing/walburga'
|
||||
import { Waralee as waralee } from '@freesewing/waralee'
|
||||
import { Yuri as yuri } from '@freesewing/yuri'
|
||||
|
||||
const designs = {
|
||||
aaron: Aaron,
|
||||
albert: Albert,
|
||||
bee: Bee,
|
||||
bella: Bella,
|
||||
benjamin: Benjamin,
|
||||
bent: Bent,
|
||||
bob: Bob,
|
||||
breanna: Breanna,
|
||||
brian: Brian,
|
||||
bruce: Bruce,
|
||||
carlita: Carlita,
|
||||
carlton: Carlton,
|
||||
cathrin: Cathrin,
|
||||
charlie: Charlie,
|
||||
cornelius: Cornelius,
|
||||
diana: Diana,
|
||||
florence: Florence,
|
||||
florent: Florent,
|
||||
hi: Hi,
|
||||
holmes: Holmes,
|
||||
hortensia: Hortensia,
|
||||
huey: Huey,
|
||||
hugo: Hugo,
|
||||
jaeger: Jaeger,
|
||||
lucy: Lucy,
|
||||
lunetius: Lunetius,
|
||||
noble: Noble,
|
||||
octoplushy: Octoplushy,
|
||||
paco: Paco,
|
||||
penelope: Penelope,
|
||||
sandy: Sandy,
|
||||
shin: Shin,
|
||||
simon: Simon,
|
||||
simone: Simone,
|
||||
sven: Sven,
|
||||
tamiko: Tamiko,
|
||||
teagan: Teagan,
|
||||
tiberius: Tiberius,
|
||||
titan: Titan,
|
||||
trayvon: Trayvon,
|
||||
uma: Uma,
|
||||
wahid: Wahid,
|
||||
walburga: Walburga,
|
||||
waralee: Waralee,
|
||||
yuri: Yuri,
|
||||
aaron,
|
||||
albert,
|
||||
bee,
|
||||
bella,
|
||||
benjamin,
|
||||
bent,
|
||||
bob,
|
||||
breanna,
|
||||
brian,
|
||||
bruce,
|
||||
carlita,
|
||||
carlton,
|
||||
cathrin,
|
||||
charlie,
|
||||
cornelius,
|
||||
diana,
|
||||
florence,
|
||||
florent,
|
||||
hi,
|
||||
holmes,
|
||||
hortensia,
|
||||
huey,
|
||||
hugo,
|
||||
jaeger,
|
||||
lucy,
|
||||
lunetius,
|
||||
noble,
|
||||
octoplushy,
|
||||
paco,
|
||||
penelope,
|
||||
sandy,
|
||||
shin,
|
||||
simon,
|
||||
simone,
|
||||
sven,
|
||||
tamiko,
|
||||
teagan,
|
||||
tiberius,
|
||||
titan,
|
||||
trayvon,
|
||||
uma,
|
||||
wahid,
|
||||
walburga,
|
||||
waralee,
|
||||
yuri,
|
||||
}
|
||||
|
||||
export const useDesign = (design) => (designs[design] ? designs[design] : false)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue