diff --git a/packages/snapseries/CHANGELOG.md b/packages/config-helpers/CHANGELOG.md similarity index 50% rename from packages/snapseries/CHANGELOG.md rename to packages/config-helpers/CHANGELOG.md index af8df329c2c..4dea7a7c456 100644 --- a/packages/snapseries/CHANGELOG.md +++ b/packages/config-helpers/CHANGELOG.md @@ -1,12 +1,6 @@ -# Change log for: @freesewing/snapseries +# Change log for: @freesewing/config-helpers -## 2.19.0 (2021-10-17) - -### Added - - - Initial release of `@freesewing/snapseries` wich holds commonly used series of snap values for percentage options - This is the **initial release**, and the start of this change log. diff --git a/packages/snapseries/README.md b/packages/config-helpers/README.md similarity index 98% rename from packages/snapseries/README.md rename to packages/config-helpers/README.md index b646b3646af..bdfde28c260 100644 --- a/packages/snapseries/README.md +++ b/packages/config-helpers/README.md @@ -1,13 +1,13 @@ ![FreeSewing](https://static.freesewing.org/banner.png)

@freesewing/snapseries on NPM + href="https://www.npmjs.com/package/@freesewing/config-helpers" + title="@freesewing/config-helpers on NPM" + >@freesewing/config-helpers on NPM License: MIT Code quality on DeepScan Open issues tagged pkg:snapseries + href="https://github.com/freesewing/freesewing/issues?q=is%3Aissue+is%3Aopen+label%3Apkg%3Aconfig-helpers" + title="Open issues tagged pkg:config-helpers" + >Open issues tagged pkg:config-helpers

-# @freesewing/snapseries +# @freesewing/config-helpers -A FreeSewing package for common values for snapped percentage options +A FreeSewing package to facilitate pattern configurations @@ -57,7 +57,7 @@ A FreeSewing package for common values for snapped percentage options This repository is our *monorepo* holding [all our NPM packages](https://freesewing.dev/reference/packages/). -This folder holds: @freesewing/snapseries +This folder holds: @freesewing/config-helpers ## About FreeSewing 💀 diff --git a/packages/config-helpers/build.js b/packages/config-helpers/build.js new file mode 100644 index 00000000000..a9b1854b663 --- /dev/null +++ b/packages/config-helpers/build.js @@ -0,0 +1,33 @@ +/* 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'], + minify: true, + sourcemap: true, +} + +// Different formats +const formats = { + esm: "dist/index.mjs", + cjs: "dist/index.js" +} + +// Let esbuild generate different formats +for (const [format, outfile] of Object.entries(formats)) esbuild + .build({ ...options, outfile, format }) + .catch(() => process.exit(1)) + + diff --git a/packages/snapseries/package.json b/packages/config-helpers/package.json similarity index 64% rename from packages/snapseries/package.json rename to packages/config-helpers/package.json index 2a5b225c688..f93c6b39839 100644 --- a/packages/snapseries/package.json +++ b/packages/config-helpers/package.json @@ -1,7 +1,7 @@ { - "name": "@freesewing/snapseries", + "name": "@freesewing/config-helpers", "version": "2.20.8", - "description": "A FreeSewing package for common values for snapped percentage options", + "description": "A FreeSewing package to facilitate pattern configurations", "author": "Joost De Cock (https://github.com/joostdecock)", "homepage": "https://freesewing.org/", "repository": "github:freesewing/freesewing", @@ -26,13 +26,10 @@ "module": "dist/index.mjs", "scripts": { "clean": "rimraf dist", - "build": "rollup -c", - "cibuild_step1": "rollup -c", - "test": "echo \"snapseries: No tests configured. Perhaps you'd like to do this?\" && exit 0", - "pubtest": "npm publish --registry http://localhost:6662", - "pubforce": "npm publish", - "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -", - "start": "rollup -c -w" + "build": "node build.js", + "cibuild_step1": "node build.js", + "test": "echo \"config-helpers: No tests configured. Perhaps you'd like to do this?\" && exit 0", + "symlink": "mkdir -p ./node_modules/@freesewing && cd ./node_modules/@freesewing && ln -s -f ../../../* . && cd -" }, "peerDependencies": {}, "dependencies": {}, @@ -47,10 +44,7 @@ "tag": "latest" }, "engines": { - "node": ">=12.0.0", + "node": ">=14.0.0", "npm": ">=6" - }, - "rollup": { - "exports": "named" } } diff --git a/packages/snapseries/rollup.config.js b/packages/config-helpers/rollup.config.js similarity index 100% rename from packages/snapseries/rollup.config.js rename to packages/config-helpers/rollup.config.js diff --git a/packages/snapseries/src/index.js b/packages/config-helpers/src/index.js similarity index 68% rename from packages/snapseries/src/index.js rename to packages/config-helpers/src/index.js index 693317004c6..fb286d70fdd 100644 --- a/packages/snapseries/src/index.js +++ b/packages/config-helpers/src/index.js @@ -1,3 +1,8 @@ + +/* + * Snap series + * ============================== + */ // Common width for elastics export const elastics = { metric: [3.5, 5, 10, 12, 20, 25, 30, 40, 50, 60, 80, 100, 120], @@ -32,3 +37,15 @@ export const bigsteps = { metric: 10, imperial: 12.7, // 1/2 inch } + +/* + * Config helper methods + * ============================== + */ +export function pctBasedOn(measurement) { + return { + toAbs: (val, { measurements }) => measurements[measurement] * val, + fromAbs: (val, { measurements }) => Math.round((10 * val) / measurements[measurement]) / 10, + } +} +