From 7f1332215f70aee2b69b2ffd9947010c5d68e9a6 Mon Sep 17 00:00:00 2001
From: Joost De Cock
Date: Tue, 14 Jun 2022 23:30:00 +0200
Subject: [PATCH] feat: Finalized migration from Rollup to Esbuild
---
.prettierignore | 5 -
CHANGELOG.md | 508 ++++++++++++++++++++++++-
README.md | 23 +-
config/changelog.yaml | 102 +++++
config/dependencies.yaml | 63 +--
config/descriptions.yaml | 2 +-
config/exceptions.yaml | 15 +-
config/scripts.yaml | 51 ++-
config/templates/build.dflt.js | 55 +++
config/templates/rollup.config.dflt.js | 29 --
package.json | 2 +-
scripts/reconfigure.js | 95 +----
yarn.lock | 16 +-
13 files changed, 731 insertions(+), 235 deletions(-)
create mode 100644 config/templates/build.dflt.js
delete mode 100644 config/templates/rollup.config.dflt.js
diff --git a/.prettierignore b/.prettierignore
index 18b8b4ed929..ec967556865 100644
--- a/.prettierignore
+++ b/.prettierignore
@@ -4,8 +4,3 @@
*.yml
*.md
-
-# More auto-generated code
-packages/*/example/public/*
-packages/*/example/src/*
-packages/*/tests/*.js
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a91b3219862..ccd5e05183a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,12 +3,514 @@
## Unreleased
+### aaron
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### albert
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### bee
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### bella
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### benjamin
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### bent
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### breanna
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### brian
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### bruce
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### carlita
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### carlton
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### cathrin
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### charlie
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### components
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### config-helpers
+
+#### Added
+
+ - This new package replaces the previous snapseries package and adds extra helper methods for pattern config such as `pctBasedOn()` which was previously exported by core
+
+### core
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+ - The `pctBasedOn()` helper method for pattern config was moved to config-helpers We did not make this a breaking change since it's only used internally.
+
+### cornelius
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### diana
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### examples
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### florence
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### florent
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### gatsby-remark-jargon
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### holmes
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### hortensia
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### huey
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
### hugo
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
#### Fixed
- Fix incorrect seam allowance Closes [#2208](https://github.com/freesewing/freesewing/issues/2208)
+### i18n
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+#### Fixed
+
+ - Added missing lab namespace for English
+
+### jaeger
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### legend
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### lucy
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### lunetius
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### models
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### mui-theme
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### paco
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### pattern-info
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### penelope
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-banner
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-bartack
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-bundle
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-bust
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-buttons
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-cutonfold
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-dimension
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-export-dxf
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-flip
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-gore
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-grainline
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-i18n
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-logo
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-measurements
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-mirror
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-notches
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-round
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-scalebox
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-sprinkle
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-svgattr
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-theme
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-title
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-validate
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugin-versionfree-svg
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### plugintest
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### remark-jargon
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### rendertest
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### sandy
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### shin
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### simon
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+#### Fixed
+
+ - Handle edge-case for 1/10 dolls with breasts where path split would yield empty half
+
+### simone
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+#### Fixed
+
+ - Added the frontdarts option back after it was (accidentally) removed
+ - Handle edge-case for 1/10 dolls with breasts where path split would yield empty half
+
+### sven
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### tamiko
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### teagan
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+#### Fixed
+
+ - Added missing name to config file
+
+### theo
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### tiberius
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### titan
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### trayvon
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### tutorial
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### ursula
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### utils
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### wahid
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### walburga
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### waralee
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
+### yuri
+
+#### Changed
+
+ - Migrated from Rollup to Esbuild for all builds
+
## 2.20.8 (2022-05-21)
@@ -1174,12 +1676,6 @@
- Support drafting of non-human measurements (dolls & giants) Closes [#1318](https://github.com/freesewing/freesewing/issues/1318)
- Fix issue with armhole introduced with the S3 options in Brian Closes
-### snapseries
-
-#### Added
-
- - Initial release of `@freesewing/snapseries` wich holds commonly used series of snap values for percentage options
-
### theo
#### Changed
diff --git a/README.md b/README.md
index ad3e6d47a78..8f942de98db 100644
--- a/README.md
+++ b/README.md
@@ -22,7 +22,7 @@

 Elena FdR π π |
 Emmanuel Nyachoke π» π |
+  Enoch Riese π» |
 EvEkSwed π |
 Fantastik-Maman π |
 Forrest O. π |
 FrΓ©dΓ©ric π |
-  Glenn Matthews π |
+  Glenn Matthews π |
 Igor Couto π |
 Ikko Ashimine π |
 Irapeke π |
 Jacek Sawoszczuk π |
 Jason Williams π |
 Jeremy Jackson π» |
-  Joebidido π |
+  Joebidido π |
 Joost De Cock π§ |
 Josh Essman π |
 Kake π |
 Kapunahele Wong π |
 Karen π π |
 Katie McGinley π |
-  Kieran Klaassen π» |
+  Kieran Klaassen π» |
 Kittycatou π |
 Kris π |
 Kristin Ruben π» |
 Loudepeuter π |
 Lucian π |
 Marcus π |
-  Martin Tribo π |
+  Martin Tribo π |
 Nadege Michel β οΈ π |
 Natalia π» π¨ π |
 Nathan Yergler π |
 Nick Dower π π» π |
 Patrick Forringer π |
 Paul π π π |
-  Phillip Thelen π» |
+  Phillip Thelen π» |
 Pixieish π |
 Prof. dr. Sorcha NΓ Dhubhghaill π |
 Quentin FELIX π» π¨ |
 Rik Hekker π |
 Sam Livingston-Gray π |
 Sanne π» π |
-  Sara Latorre π |
+  Sara Latorre π |
 SeaZeeZee π π» |
 Slylele π π |
 Soazillon π |
 SoneaTheBest π |
 Stefan Sydow π π π» |
 TrΓona π |
-  Unmutual π |
+  Unmutual π |
 Wouter van Wageningen π» π¨ π§ |
 amysews π |
 beautifulsummermoon π |
 berce π |
 biou π» |
 bobgeorgethe3rd π» π π¨ |
-  brmlyklr π |
+  brmlyklr π |
 chri5b π» β οΈ |
 dingcycle π |
 drowned-in-books π¬ |
 econo202 π |
 ericamattos π |
 fightingrabbit π» |
-  gaylyndie π |
+  gaylyndie π |
 grimlokason π» |
 hellgy π¨ |
 jackseye π |
 marckiesel π |
 mesil π |
 starfetch π» π π π¨ |
-  ttimearl π |
+  ttimearl π |
 tuesgloomsday π |
 valadaptive π» |
 viocky π |
diff --git a/config/changelog.yaml b/config/changelog.yaml
index f4686edf826..93926b20d6a 100644
--- a/config/changelog.yaml
+++ b/config/changelog.yaml
@@ -1,8 +1,110 @@
Unreleased:
+
+ Added:
+ config-helpers:
+ - This new package replaces the previous snapseries package
+ and adds extra helper methods for pattern config such as
+ `pctBasedOn()` which was previously exported by core
+
+ Changed:
+ aaron: &esbuild
+ - Migrated from Rollup to Esbuild for all builds
+ albert: *esbuild
+ bee: *esbuild
+ bella: *esbuild
+ benjamin: *esbuild
+ bent: *esbuild
+ breanna: *esbuild
+ brian: *esbuild
+ bruce: *esbuild
+ carlita: *esbuild
+ carlton: *esbuild
+ cathrin: *esbuild
+ charlie: *esbuild
+ components: *esbuild
+ core:
+ - Migrated from Rollup to Esbuild for all builds
+ - The `pctBasedOn()` helper method for pattern config was moved to config-helpers
+ We did not make this a breaking change since it's only used internally.
+ cornelius: *esbuild
+ diana: *esbuild
+ examples: *esbuild
+ florence: *esbuild
+ florent: *esbuild
+ gatsby-remark-jargon: *esbuild
+ holmes: *esbuild
+ hortensia: *esbuild
+ huey: *esbuild
+ hugo: *esbuild
+ i18n: *esbuild
+ jaeger: *esbuild
+ legend: *esbuild
+ lucy: *esbuild
+ lunetius: *esbuild
+ models: *esbuild
+ mui-theme: *esbuild
+ paco: *esbuild
+ pattern-info: *esbuild
+ penelope: *esbuild
+ plugin-banner: *esbuild
+ plugin-bartack: *esbuild
+ plugin-bundle: *esbuild
+ plugin-bust: *esbuild
+ plugin-buttons: *esbuild
+ plugin-cutonfold: *esbuild
+ plugin-dimension: *esbuild
+ plugin-export-dxf: *esbuild
+ plugin-flip: *esbuild
+ plugin-gore: *esbuild
+ plugin-grainline: *esbuild
+ plugin-i18n: *esbuild
+ plugin-logo: *esbuild
+ plugin-measurements: *esbuild
+ plugin-mirror: *esbuild
+ plugin-notches: *esbuild
+ plugin-round: *esbuild
+ plugin-scalebox: *esbuild
+ plugin-sprinkle: *esbuild
+ plugin-svgattr: *esbuild
+ plugintest: *esbuild
+ plugin-theme: *esbuild
+ plugin-title: *esbuild
+ plugin-validate: *esbuild
+ plugin-versionfree-svg: *esbuild
+ remark-jargon: *esbuild
+ rendertest: *esbuild
+ sandy: *esbuild
+ shin: *esbuild
+ simon: *esbuild
+ simone: *esbuild
+ sven: *esbuild
+ tamiko: *esbuild
+ teagan: *esbuild
+ theo: *esbuild
+ tiberius: *esbuild
+ titan: *esbuild
+ trayvon: *esbuild
+ tutorial: *esbuild
+ ursula: *esbuild
+ utils: *esbuild
+ wahid: *esbuild
+ walburga: *esbuild
+ waralee: *esbuild
+ yuri: *esbuild
+
Fixed:
hugo:
- Fix incorrect seam allowance
Closes [#2208](https://github.com/freesewing/freesewing/issues/2208)
+ i18n:
+ - Added missing lab namespace for English
+ simon:
+ - Handle edge-case for 1/10 dolls with breasts where path split would yield empty half
+ simone:
+ - Added the frontdarts option back after it was (accidentally) removed
+ - Handle edge-case for 1/10 dolls with breasts where path split would yield empty half
+ teagan:
+ - Added missing name to config file
2.20.8:
date: 2022-05-21
diff --git a/config/dependencies.yaml b/config/dependencies.yaml
index 4cc5f90c5f0..3c606f66512 100644
--- a/config/dependencies.yaml
+++ b/config/dependencies.yaml
@@ -3,49 +3,16 @@ _types:
peer:
'@freesewing/core': &freesewing '^{{version}}'
'@freesewing/plugin-bundle': *freesewing
+ '@freesewing/config-helpers': *freesewing
dev:
- 'react': &react '^17.0.2'
- 'react-dom': &react-dom '^17.0.2'
- '@babel/plugin-proposal-class-properties': '^7.13.0'
- '@freesewing/components': *freesewing
- '@freesewing/css-theme': *freesewing
- '@freesewing/i18n': *freesewing
- '@freesewing/mui-theme': *freesewing
- '@freesewing/plugin-bust': *freesewing
- '@freesewing/plugin-buttons': *freesewing
- '@freesewing/plugin-flip': *freesewing
- '@freesewing/utils': *freesewing
- 'react-scripts': '^5.0.0'
- 'webpack': '^5.67.0'
- 'rollup': '^2.66.1'
- '@rollup/plugin-babel': '^5.3.0'
- '@rollup/plugin-commonjs': '^21.0.1'
- '@rollup/plugin-json': '^4.1.0'
- '@rollup/plugin-node-resolve': '^13.1.3'
- 'rollup-plugin-peer-deps-external': '^2.2.4'
- '@material-ui/core': &matui-core '^4.12.3'
- '@material-ui/icons': &matui-icons '^4.11.2'
- '@material-ui/lab': &matui-lab '^v4.0.0-alpha.60'
- 'axios': &axios '^0.25.0'
- 'react-intl': &react-intl '^5.24.4'
- 'prop-types': '^15.8.1'
'mocha': &mocha '^9.1.1'
'chai': &chai '^4.2.0'
- '@babel/register': &babelregister '^7.10.5'
plugin:
peer:
'@freesewing/core': *freesewing
dev:
'mocha': *mocha
'chai': *chai
- '@babel/core': '^7.11.0'
- '@babel/register': *babelregister
- 'rollup': '^2.50.6'
- '@rollup/plugin-babel': '^5.3.0'
- '@rollup/plugin-commonjs': '^21.0.1'
- '@rollup/plugin-json': '^4.1.0'
- '@rollup/plugin-node-resolve': '^13.0.0'
- 'rollup-plugin-peer-deps-external': '^2.2.4'
aaron:
peer:
'@freesewing/brian': *freesewing
@@ -80,7 +47,6 @@ charlie:
peer:
'@freesewing/plugin-bartack': *freesewing
'@freesewing/plugin-mirror': *freesewing
- '@freesewing/snapseries': *freesewing
'@freesewing/titan': *freesewing
css-theme:
_:
@@ -90,8 +56,8 @@ css-theme:
'@fontsource/ubuntu': &ubuntu 'latest'
components:
peer:
- 'axios': *axios
- 'react': *react
+ 'axios': &axios '^0.25.0'
+ 'react': &react '^17.0.2'
'@freesewing/pattern-info': *freesewing
'@freesewing/mui-theme': *freesewing
'@freesewing/css-theme': *freesewing
@@ -106,10 +72,10 @@ components:
'@fontsource/ubuntu': *ubuntu
'@freesewing/i18n': *freesewing
'@freesewing/utils': *freesewing
- 'react-intl': *react-intl
- '@material-ui/core': *matui-core
- '@material-ui/icons': *matui-icons
- '@material-ui/lab': *matui-lab
+ 'react-intl': &react-intl '^5.24.4'
+ '@material-ui/core': &matui-core '^4.12.3'
+ '@material-ui/icons': &matui-icons '^4.11.2'
+ '@material-ui/lab': &matui-lab '^v4.0.0-alpha.60'
'prismjs': '^1.25.0'
'react-markdown': '^6.0.2'
'file-saver': '^2.0.5'
@@ -181,13 +147,12 @@ mui-theme:
peer:
'@material-ui/core': *matui-core
'react': *react
- 'react-dom': *react-dom
+ 'react-dom': '^17.0.2'
legend:
peer:
'@freesewing/plugin-buttons': *freesewing
paco:
peer:
- '@freesewing/snapseries': *freesewing
'@freesewing/titan': *freesewing
plugin-bundle:
dev:
@@ -235,12 +200,6 @@ remark-jargon:
peer:
'remark': '^13.0.0'
'remark-html': '^13.0.1'
-sandy:
- peer:
- '@freesewing/snapseries': *freesewing
-shin:
- peer:
- '@freesewing/snapseries': *freesewing
simon:
peer:
'@freesewing/brian': *freesewing
@@ -272,12 +231,6 @@ teagan:
peer:
'@freesewing/brian': *freesewing
'@freesewing/plugin-bust': *freesewing
-titan:
- peer:
- '@freesewing/snapseries': *freesewing
-trayvon:
- peer:
- '@freesewing/snapseries': *freesewing
utils:
peer:
'tlds': '^1.221.1'
diff --git a/config/descriptions.yaml b/config/descriptions.yaml
index c70d9ceea3b..b84abedacda 100644
--- a/config/descriptions.yaml
+++ b/config/descriptions.yaml
@@ -12,6 +12,7 @@ carlita: 'A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long
carlton: 'A FreeSewing pattern for Sherlock Holmes cosplay; Or just a nice long coat'
cathrin: 'A FreeSewing pattern for a underbust corset / waist trainer'
charlie: 'A FreeSewing pattern for chino trousers'
+config-helpers: 'A FreeSewing package to facilitate pattern configurations'
components: 'A collection of React components for FreeSewing web UIs'
core: 'A library for creating made-to-measure sewing patterns'
cornelius: 'A FreeSewing pattern for cycling breeches, based on the Keystone drafting system'
@@ -72,7 +73,6 @@ sandy: 'A FreeSewing pattern for a circle skirt'
shin: 'A FreeSewing pattern for swim trunks'
simon: 'A FreeSewing pattern for a button down shirt'
simone: 'A FreeSewing pattern for a button down shirt (Simone = Simon for people with breasts)'
-snapseries: 'A FreeSewing package for common values for snapped percentage options'
strapi: "Freesewing's Strapi instance"
sven: 'A FreeSewing pattern for a straightforward sweater'
svgtopdf: 'FreeSewing on-demand tiler'
diff --git a/config/exceptions.yaml b/config/exceptions.yaml
index 0693a54c241..5ed8408f9f6 100644
--- a/config/exceptions.yaml
+++ b/config/exceptions.yaml
@@ -28,10 +28,10 @@ customReadme:
- freesewing.shared
- freesewing.org
- svgtopdf
-customRollup:
+customBuild:
- backend
- components
- - core
+ - create-freesewing-pattern
- css-theme
- freesewing.dev
- freesewing.lab
@@ -43,13 +43,8 @@ customRollup:
- remark-jargon
- strapi
- svgtopdf
+ - plugin-bundle
- utils
-namedExports:
- - css-theme
- - models
- - pattern-info
- - mui-theme
- - snapseries
packageJson:
backend:
private: true
@@ -97,8 +92,12 @@ packageJson:
module: '!'
freesewing.dev:
private: true
+ freesewing.lab:
+ private: true
freesewing.org:
private: true
+ freesewing.shared:
+ private: true
holmes:
author: AlfaLyr (https://github.com/alfalyr)
i18n:
diff --git a/config/scripts.yaml b/config/scripts.yaml
index 18058fd6ebb..798233026fe 100644
--- a/config/scripts.yaml
+++ b/config/scripts.yaml
@@ -1,58 +1,55 @@
_:
+ build: 'node build.js'
+ cibuild_step1: 'node build.js'
clean: 'rimraf dist'
- build: 'rollup -c'
- cibuild_step1: 'rollup -c'
- test: ¬ests 'echo "{{name}}: No tests configured. Perhaps you''d like to do this?" && exit 0'
- pubtest: 'npm publish --registry http://localhost:6662'
- pubforce: 'npm publish'
+ mbuild: 'NO_MINIFY=1 node build.js'
symlink: 'mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -'
- start: 'rollup -c -w'
+ test: ¬ests 'echo "{{name}}: No tests configured. Perhaps you''d like to do this?" && exit 0'
+ vbuild: 'VERBOSE=1 node build.js'
_types:
pattern:
- netlify: 'echo "Not configured yet"'
+ prettier: "npx prettier --write 'src/*.js' 'config/*.js'"
test: &test 'BABEL_ENV=production npx mocha tests/*.test.mjs --require @babel/register'
testci: &testci "BABEL_ENV=production npx mocha tests/*.test.mjs --require @babel/register --reporter ../../tests/reporters/terse.js"
plugin:
+ prettier: "npx prettier --write 'src/*.js' 'tests/*.mjs'"
test: *test
testci: *testci
- prettier: "npx prettier --write 'src/*.js' 'tests/*.mjs'"
create-freesewing-pattern:
- clean: '!'
- nodebuild: '!'
- modulebuild: '!'
- cibuild_step1: '!'
build: '!'
- test: *test
- testci: *testci
+ cibuild_step1: '!'
+ clean: '!'
+ mbuild: '!'
+ modulebuild: '!'
+ nodebuild: '!'
+ test: '!'
+ testci: '!'
+ vbuild: '!'
css-theme:
- cibuild_step1: 'npx node-sass --output-style compressed src/theme.scss dist/theme.css'
build: 'npx node-sass --output-style compressed src/theme.scss dist/theme.css'
+ cibuild_step1: 'npx node-sass --output-style compressed src/theme.scss dist/theme.css'
watch: 'npx node-sass --watch --output-style compressed src/theme.scss dist/theme.css'
components:
- test: *notests
+ clean: 'rimraf Blockquote && rimraf Draft && rimraf DraftConfigurator && rimraf Emblem && rimraf Example && rimraf Footer && rimraf Icon && rimraf Legend && rimraf LineDrawing && rimraf Logo && rimraf Navbar && rimraf Ogol && rimraf Robot && rimraf SampleConfigurator && rimraf Spinner && rimraf withGist && rimraf withLanguage && rimraf withStorage && rimraf Workbench'
storybook: 'start-storybook -p 6663'
- # react-scripts doesn't handle .mjs files correctly
- modulebuild: '!'
- clean: 'rimraf Blockquote && rimraf Draft && rimraf DraftConfigurator && rimraf Emblem && rimraf Example && rimraf Footer && rimraf Icon && rimraf Logo && rimraf Navbar && rimraf Ogol && rimraf Robot && rimraf SampleConfigurator && rimraf withGist && rimraf withLanguage && rimraf Workbench'
- cibuild_step2: 'rollup -c'
- build: 'rollup -c'
- watch: 'BABEL_ENV=production rollup -c -w -o dist/index.js -f cjs'
+ test: *notests
core:
- testonly: 'BABEL_ENV=production npx mocha tests/*.test.js'
+ coverage: 'BABEL_ENV=production nyc npm test && nyc report --reporter=text-lcov > coverage.lcov && ./node_modules/.bin/codecov'
+ report: 'BABEL_ENV=production nyc report --reporter=html'
test: 'BABEL_ENV=production nyc -x node_modules -x tests/fixtures -x bin-pack npx mocha tests/*.test.js'
testci: "BABEL_ENV=production npx mocha tests/*.test.js --require @babel/register --reporter ../../tests/reporters/terse.js"
- report: 'BABEL_ENV=production nyc report --reporter=html'
- coverage: 'BABEL_ENV=production nyc npm test && nyc report --reporter=text-lcov > coverage.lcov && ./node_modules/.bin/codecov'
+ testonly: 'BABEL_ENV=production npx mocha tests/*.test.js'
i18n:
# react-scripts doesn't handle .mjs files correctly
modulebuild: '!'
+ prebuild: 'node src/prebuild.mjs'
test: *test
testci: *testci
- prebuild: 'node src/prebuild.mjs'
pattern-info:
cibuild_step1: '!'
- cibuild_step2: 'node src/prebuild.js && rollup -c'
+ cibuild_step2: 'node src/prebuild.js && node build.js'
prebuild: 'node src/prebuild.js'
utils:
+ clean: "rimraf backend && rimraf camelCase && rimraf capitalize && rimraf cloneObject && rimraf convertSize && rimraf defaultGist && rimraf defaultSa && rimraf formatImperial && rimraf formatMm && rimraf isDegMeasurement && rimraf measurementAsMm && rimraf measurementDiffers && rimraf neckstimate && rimraf optionDefault && rimraf optionType && rimraf roundMm && rimraf roundMmDown && rimraf roundMmUp && rimraf sliderStep && rimraf smallestImperialStep && rimraf storage && rimraf tiler && rimraf validateEmail && rimraf validateTld"
# react-scripts doesn't handle .mjs files correctly
modulebuild: '!'
diff --git a/config/templates/build.dflt.js b/config/templates/build.dflt.js
new file mode 100644
index 00000000000..c77d47c1637
--- /dev/null
+++ b/config/templates/build.dflt.js
@@ -0,0 +1,55 @@
+/* This script will build the package with esbuild */
+const esbuild = require('esbuild')
+const pkg = require('./package.json')
+
+// Create banner based on package info
+const banner = `/**
+ * ${pkg.name} | v${pkg.version}
+ * ${pkg.description}
+ * (c) ${new Date().getFullYear()} ${pkg.author}
+ * @license ${pkg.license}
+ */`
+
+// Shared esbuild options
+const options = {
+ banner: { js: banner },
+ bundle: true,
+ entryPoints: ['src/index.js'],
+ external: ["@freesewing"],
+ metafile: process.env.VERBOSE ? true : false,
+ minify: process.env.NO_MINIFY ? false : true,
+ sourcemap: true,
+}
+
+// Different formats
+const formats = {
+ cjs: "dist/index.js",
+ esm: "dist/index.mjs",
+}
+
+// Let esbuild generate different formats
+let result
+(async () => {
+ for (const [format, outfile] of Object.entries(formats)) {
+ result = await esbuild
+ .build({ ...options, outfile, format })
+ .catch(() => process.exit(1))
+ }
+
+ if (process.env.VERBOSE) {
+ const info = await esbuild.analyzeMetafile(result.metafile)
+ console.log(info)
+ }
+
+ // Also build a version that has all dependencies bundled
+ // This makes it easy to run tests
+ await esbuild
+ .build({
+ ...options,
+ outfile: 'tests/dist/index.mjs',
+ format: 'esm',
+ external: [],
+ })
+ .catch(() => process.exit(1))
+
+})()
diff --git a/config/templates/rollup.config.dflt.js b/config/templates/rollup.config.dflt.js
deleted file mode 100644
index 83bc5ef0eec..00000000000
--- a/config/templates/rollup.config.dflt.js
+++ /dev/null
@@ -1,29 +0,0 @@
-import resolve from '@rollup/plugin-node-resolve'
-import commonjs from '@rollup/plugin-commonjs'
-import json from '@rollup/plugin-json'
-import peerDepsExternal from 'rollup-plugin-peer-deps-external'
-import { name, version, description, author, license, main, module, rollup } from './package.json'
-
-const banner = `/**\n * ${name} | v${version}\n * ${description}\n * (c) ${new Date().getFullYear()} ${author}\n * @license ${license}\n */`
-const output = [
- {
- banner,
- file: main,
- format: 'cjs',
- sourcemap: true,
- exports: rollup.exports,
- },
-]
-if (typeof module !== 'undefined')
- output.push({
- banner,
- file: module,
- format: 'es',
- sourcemap: true,
- })
-
-export default {
- input: 'src/index.js',
- output,
- plugins: [peerDepsExternal(), resolve({ modulesOnly: true }), commonjs(), json()],
-}
diff --git a/package.json b/package.json
index 5aa72332acd..6c4b713b38a 100644
--- a/package.json
+++ b/package.json
@@ -17,7 +17,7 @@
"kickstart": "npx lerna bootstrap && yarn buildall",
"clean": "rimraf dist",
"test": "lerna run test",
- "prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/**/example/src/*' 'packages/i18n/src/locales/**/*.*' 'packages/**/tests/*.js'",
+ "prettier": "npx prettier --write 'packages/**/src/*.js' 'packages/**/config/*.js' 'packages/i18n/src/locales/**/*.*' 'packages/**/tests/*.mjs'",
"reconfigure": "all-contributors generate && node scripts/reconfigure.js",
"prerelease": "lerna version --no-git-tag-version --no-push && yarn reconfigure && yarn buildall",
"buildall": "lerna run cibuild_step1 && lerna run cibuild_step2",
diff --git a/scripts/reconfigure.js b/scripts/reconfigure.js
index ecfe149efa9..e9150bae7ee 100644
--- a/scripts/reconfigure.js
+++ b/scripts/reconfigure.js
@@ -24,9 +24,9 @@ const config = {
exceptions: readConfigFile('exceptions.yaml'),
templates: {
pkg: readTemplateFile('package.dflt.json'),
- rollup: readTemplateFile('rollup.config.dflt.js'),
changelog: readTemplateFile('changelog.dflt.md'),
- readme: readTemplateFile('readme.dflt.md')
+ readme: readTemplateFile('readme.dflt.md'),
+ build: readTemplateFile('build.dflt.js'),
}
}
@@ -54,35 +54,6 @@ function readTemplateFile(file) {
return fs.readFileSync(path.join(repoPath, 'config', 'templates', file), 'utf-8')
}
-/**
- * Reads a pattern example file
- */
-function readExampleFile(file, subdir = false) {
- return fs.readFileSync(
- subdir
- ? path.join(
- repoPath,
- 'packages',
- 'create-freesewing-pattern',
- 'template',
- 'default',
- 'example',
- file
- )
- : path.join(
- repoPath,
- 'packages',
- 'create-freesewing-pattern',
- 'template',
- 'default',
- 'example',
- subdir,
- file
- ),
- 'utf-8'
- )
-}
-
/**
* Reads a YAML config file, with Mustache replacements if needed
*/
@@ -231,9 +202,6 @@ function packageConfig(pkg, config) {
if (config.exceptions.packageJson[pkg][key] === '!') delete pkgConf[key]
}
}
- if (config.exceptions.namedExports.indexOf(pkg) !== -1) {
- pkgConf.rollup.exports = 'named'
- }
return pkgConf
}
@@ -407,57 +375,9 @@ function validate(pkgs, config) {
}
/**
- * Creates and 'example' directory for patterns,
- * same result as what gets done by create-freesewing-pattern.
- */
-function configurePatternExample(pkg, config) {
- // Create example dir structure
- let source = path.join(
- config.repoPath,
- 'packages',
- 'create-freesewing-pattern',
- 'template',
- 'freesewing',
- 'example'
- )
- let dest = path.join(config.repoPath, 'packages', pkg, 'example')
- fse.ensureDirSync(path.join(dest, 'src'))
- fse.ensureDirSync(path.join(dest, 'public'))
- // Copy files
- for (let file of ['.babelrc', '.env'])
- fs.copyFileSync(path.join(source, file), path.join(dest, file))
- for (let file of ['index.js', 'serviceWorker.js', 'layout.css'])
- fs.copyFileSync(path.join(source, 'src', file), path.join(dest, 'src', file))
- fs.copyFileSync(
- path.join(source, 'public', 'favicon.ico'),
- path.join(dest, 'public', 'favicon.ico')
- )
- // Write templates
- let replace = {
- name: pkg,
- version,
- author: 'freesewing',
- yarn: true,
- language: 'en'
- }
- for (let file of ['package.json', 'README.md', 'netlify.toml']) {
- let template = handlebars.compile(fs.readFileSync(path.join(source, file), 'utf-8'))
- fs.writeFileSync(path.join(dest, file), template(replace))
- }
- for (let file of ['index.html', 'manifest.json', 'layout.css']) {
- let template = handlebars.compile(fs.readFileSync(path.join(source, 'public', file), 'utf-8'))
- fs.writeFileSync(path.join(dest, 'public', file), template(replace))
- }
- let template = handlebars.compile(fs.readFileSync(path.join(source, 'src', 'App.js'), 'utf-8'))
- fs.writeFileSync(path.join(dest, 'src', 'App.js'), template(replace))
-}
-
-/**
- * Puts a package.json, rollup.config.js, README.md, and CHANGELOG.md
+ * Puts a package.json, build.js, README.md, and CHANGELOG.md
* into every subdirectory under the packages directory.
- * Also creates an example dir for pattern packages, and writes
- * the global CHANGELOG.md.
- * New: Adds unit tests for patterns
+ * Also adds unit tests for patterns, and writes the global CHANGELOG.md.
*/
function reconfigure(pkgs, config) {
for (const pkg of pkgs) {
@@ -469,10 +389,10 @@ function reconfigure(pkgs, config) {
JSON.stringify(pkgConfig, null, 2) + '\n'
)
}
- if (config.exceptions.customRollup.indexOf(pkg) === -1) {
+ if (config.exceptions.customBuild.indexOf(pkg) === -1) {
fs.writeFileSync(
- path.join(config.repoPath, 'packages', pkg, 'rollup.config.js'),
- config.templates.rollup
+ path.join(config.repoPath, 'packages', pkg, 'build.js'),
+ config.templates.build
)
}
if (config.exceptions.customReadme.indexOf(pkg) === -1) {
@@ -485,7 +405,6 @@ function reconfigure(pkgs, config) {
)
}
const type = packageType(pkg, config)
- if (type === 'pattern') configurePatternExample(pkg, config)
}
fs.writeFileSync(path.join(config.repoPath, 'CHANGELOG.md'), changelog('global', config))
console.log(chalk.yellowBright.bold('All done.'))
diff --git a/yarn.lock b/yarn.lock
index 3bc9c2e9db7..83ed7344674 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3954,7 +3954,7 @@
resolved "https://registry.yarnpkg.com/@request/interface/-/interface-0.1.0.tgz#c913504d3dc2810afad555b599aeaec2cc4c6768"
integrity sha1-yRNQTT3CgQr61VW1ma6uwsxMZ2g=
-"@rollup/plugin-babel@^5.1.0", "@rollup/plugin-babel@^5.2.0", "@rollup/plugin-babel@^5.3.0":
+"@rollup/plugin-babel@^5.1.0", "@rollup/plugin-babel@^5.2.0":
version "5.3.0"
resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz#9cb1c5146ddd6a4968ad96f209c50c62f92f9879"
integrity sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw==
@@ -3994,7 +3994,7 @@
is-module "^1.0.0"
resolve "^1.19.0"
-"@rollup/plugin-node-resolve@^13.0.0", "@rollup/plugin-node-resolve@^13.1.3":
+"@rollup/plugin-node-resolve@^13.0.0":
version "13.1.3"
resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.3.tgz#2ed277fb3ad98745424c1d2ba152484508a92d79"
integrity sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==
@@ -11323,6 +11323,14 @@ esbuild-openbsd-64@0.14.43:
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.43.tgz#0229dc2db2ded97b03bb93bba7646b30ffdf5d0d"
integrity sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==
+esbuild-plugin-yaml@^0.0.1:
+ version "0.0.1"
+ resolved "https://registry.yarnpkg.com/esbuild-plugin-yaml/-/esbuild-plugin-yaml-0.0.1.tgz#660b9ddab78f4c3f488284762d6c01b6738615fb"
+ integrity sha512-s3jqOeeCd+dUuUsuBqLRgN2SeQjPF2ppIglvV3B//txgQpTDThGvxu6sqiOUOJ0NOzegitmpWCXoCONdRbUS7w==
+ dependencies:
+ fs-extra "^9.1.0"
+ js-yaml "^4.0.0"
+
esbuild-sunos-64@0.14.43:
version "0.14.43"
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.43.tgz#17e316216eb9f1de25d52a9000356ae5b869e736"
@@ -24734,7 +24742,7 @@ rollup-plugin-json@^4.0.0:
dependencies:
rollup-pluginutils "^2.5.0"
-rollup-plugin-peer-deps-external@^2.2.3, rollup-plugin-peer-deps-external@^2.2.4:
+rollup-plugin-peer-deps-external@^2.2.3:
version "2.2.4"
resolved "https://registry.yarnpkg.com/rollup-plugin-peer-deps-external/-/rollup-plugin-peer-deps-external-2.2.4.tgz#8a420bbfd6dccc30aeb68c9bf57011f2f109570d"
integrity sha512-AWdukIM1+k5JDdAqV/Cxd+nejvno2FVLVeZ74NKggm3Q5s9cbbcOgUPGdbxPi4BXu7xGaZ8HG12F+thImYu/0g==
@@ -24775,7 +24783,7 @@ rollup-pluginutils@^2.5.0, rollup-pluginutils@^2.8.2:
dependencies:
estree-walker "^0.6.1"
-rollup@^2.43.1, rollup@^2.50.6, rollup@^2.66.1:
+rollup@^2.43.1:
version "2.67.0"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.67.0.tgz#496de7e641dbe39f681c5a82419cb5013917d406"
integrity sha512-W83AaERwvDiHwHEF/dfAfS3z1Be5wf7n+pO3ZAO5IQadCT2lBTr7WQ2MwZZe+nodbD+n3HtC4OCOAdsOPPcKZQ==