From 0ddb93e54a20c7888c898c9680c91295e991a603 Mon Sep 17 00:00:00 2001 From: castastrophe Date: Tue, 31 Oct 2023 13:12:58 -0400 Subject: [PATCH] chore: migrate generator package to root --- .prettierignore | 2 +- {tools/generator => generator}/CHANGELOG.md | 0 {tools/generator => generator}/package.json | 2 +- {tools/generator => generator}/plopfile.js | 8 ++--- .../templates/.npmignore.hbs | 0 .../templates/README.md.hbs | 0 .../templates/gulpfile.js.hbs | 0 .../templates/index.css.hbs | 0 .../metadata/{{ folderName }}.yml.hbs | 0 .../templates/package.json.hbs | 0 .../templates/stories/template.js.hbs | 0 .../stories/{{ folderName }}.stories.js.hbs | 0 .../templates/themes/express.css.hbs | 0 .../templates/themes/spectrum.css.hbs | 0 package.json | 6 ++-- tasks/clean-up-after-migration.sh | 34 +++++++++++++++++++ 16 files changed, 44 insertions(+), 8 deletions(-) rename {tools/generator => generator}/CHANGELOG.md (100%) rename {tools/generator => generator}/package.json (95%) rename {tools/generator => generator}/plopfile.js (98%) rename {tools/generator => generator}/templates/.npmignore.hbs (100%) rename {tools/generator => generator}/templates/README.md.hbs (100%) rename {tools/generator => generator}/templates/gulpfile.js.hbs (100%) rename {tools/generator => generator}/templates/index.css.hbs (100%) rename {tools/generator => generator}/templates/metadata/{{ folderName }}.yml.hbs (100%) rename {tools/generator => generator}/templates/package.json.hbs (100%) rename {tools/generator => generator}/templates/stories/template.js.hbs (100%) rename {tools/generator => generator}/templates/stories/{{ folderName }}.stories.js.hbs (100%) rename {tools/generator => generator}/templates/themes/express.css.hbs (100%) rename {tools/generator => generator}/templates/themes/spectrum.css.hbs (100%) create mode 100644 tasks/clean-up-after-migration.sh diff --git a/.prettierignore b/.prettierignore index 6e7bfd3a47..f316314172 100644 --- a/.prettierignore +++ b/.prettierignore @@ -10,7 +10,7 @@ components/vars/css/**/*.css components/vars/custom.css components/tokens/custom-*/*.css tools/preview/storybook-static/** -tools/generator +generator dist template.hbs diff --git a/tools/generator/CHANGELOG.md b/generator/CHANGELOG.md similarity index 100% rename from tools/generator/CHANGELOG.md rename to generator/CHANGELOG.md diff --git a/tools/generator/package.json b/generator/package.json similarity index 95% rename from tools/generator/package.json rename to generator/package.json index caefb0729a..637588d20e 100644 --- a/tools/generator/package.json +++ b/generator/package.json @@ -9,7 +9,7 @@ "repository": { "type": "git", "url": "https://github.com/adobe/spectrum-css.git", - "directory": "tools/generator" + "directory": "generator" }, "bugs": { "url": "https://github.com/adobe/spectrum-css/issues" diff --git a/tools/generator/plopfile.js b/generator/plopfile.js similarity index 98% rename from tools/generator/plopfile.js rename to generator/plopfile.js index 404b4f612b..f8edb1ed70 100644 --- a/tools/generator/plopfile.js +++ b/generator/plopfile.js @@ -3,11 +3,11 @@ import { existsSync, readdirSync, readFileSync } from 'fs'; import { readFile } from 'fs/promises'; import { resolve } from 'path'; -import yaml from 'js-yaml'; import cheerio from 'cheerio'; +import yaml from 'js-yaml'; -import autocompletePrompt from 'inquirer-autocomplete-prompt'; import fuzzy from 'fuzzy'; +import autocompletePrompt from 'inquirer-autocomplete-prompt'; const fetchPackage = async (path) => readFile(resolve(path, 'package.json'), { @@ -17,13 +17,13 @@ const fetchPackage = async (path) => export default async (plop) => { /* Allow customization from the environment variables */ - const rootFolder = process.env.ROOT_DIR ?? resolve(process.cwd(), '../../'); + const rootFolder = process.env.ROOT_DIR ?? resolve(process.cwd(), '../'); const srcPath = process.env.COMPONENT_DIR ?? resolve(rootFolder, 'components'); const projectName = process.env.PROJECT_NAME ?? 'Spectrum CSS'; const pkg = await fetchPackage(rootFolder); const tokens = await fetchPackage(resolve(srcPath, 'tokens')); - const builder = await fetchPackage(resolve(process.cwd(), '../component-builder-simple')); + const builder = await fetchPackage(resolve(process.cwd(), '../tools/component-builder-simple')); /* Fetch the project name */ plop.setWelcomeMessage(`Welcome to the ${projectName} component generator!\n To get started, answer a few short questions about your component.`); diff --git a/tools/generator/templates/.npmignore.hbs b/generator/templates/.npmignore.hbs similarity index 100% rename from tools/generator/templates/.npmignore.hbs rename to generator/templates/.npmignore.hbs diff --git a/tools/generator/templates/README.md.hbs b/generator/templates/README.md.hbs similarity index 100% rename from tools/generator/templates/README.md.hbs rename to generator/templates/README.md.hbs diff --git a/tools/generator/templates/gulpfile.js.hbs b/generator/templates/gulpfile.js.hbs similarity index 100% rename from tools/generator/templates/gulpfile.js.hbs rename to generator/templates/gulpfile.js.hbs diff --git a/tools/generator/templates/index.css.hbs b/generator/templates/index.css.hbs similarity index 100% rename from tools/generator/templates/index.css.hbs rename to generator/templates/index.css.hbs diff --git a/tools/generator/templates/metadata/{{ folderName }}.yml.hbs b/generator/templates/metadata/{{ folderName }}.yml.hbs similarity index 100% rename from tools/generator/templates/metadata/{{ folderName }}.yml.hbs rename to generator/templates/metadata/{{ folderName }}.yml.hbs diff --git a/tools/generator/templates/package.json.hbs b/generator/templates/package.json.hbs similarity index 100% rename from tools/generator/templates/package.json.hbs rename to generator/templates/package.json.hbs diff --git a/tools/generator/templates/stories/template.js.hbs b/generator/templates/stories/template.js.hbs similarity index 100% rename from tools/generator/templates/stories/template.js.hbs rename to generator/templates/stories/template.js.hbs diff --git a/tools/generator/templates/stories/{{ folderName }}.stories.js.hbs b/generator/templates/stories/{{ folderName }}.stories.js.hbs similarity index 100% rename from tools/generator/templates/stories/{{ folderName }}.stories.js.hbs rename to generator/templates/stories/{{ folderName }}.stories.js.hbs diff --git a/tools/generator/templates/themes/express.css.hbs b/generator/templates/themes/express.css.hbs similarity index 100% rename from tools/generator/templates/themes/express.css.hbs rename to generator/templates/themes/express.css.hbs diff --git a/tools/generator/templates/themes/spectrum.css.hbs b/generator/templates/themes/spectrum.css.hbs similarity index 100% rename from tools/generator/templates/themes/spectrum.css.hbs rename to generator/templates/themes/spectrum.css.hbs diff --git a/package.json b/package.json index 50a69f26c8..249dffc750 100644 --- a/package.json +++ b/package.json @@ -41,10 +41,11 @@ "postdocs:mod": "prettier --cache --write components/*/metadata/*.md > /dev/null", "lint:components": "node ./tasks/packageLint.js", "lint:styles": "stylelint", + "migration:clean": "test -n \"${BASH_VERSION}\" && bash ./tasks/clean-up-after-migration.sh || exit 0", "mv:preview": "rimraf dist/preview && mv tools/preview/storybook-static dist/preview", "new": "nx run @spectrum-css/generator:new", "precommit": "lint-staged", - "prepare": "husky install", + "prepare": "husky install && yarn migration:clean", "prepare:site": "run-s clean:docs build:all", "prerelease": "yarn version:build", "release": "lerna publish", @@ -61,7 +62,8 @@ "workspaces": [ "components/*", "tools/*", - "plugins/*" + "plugins/*", + "generator" ], "devDependencies": { "@adobe/focus-ring-polyfill": "^0.1.5", diff --git a/tasks/clean-up-after-migration.sh b/tasks/clean-up-after-migration.sh new file mode 100644 index 0000000000..e33d35e186 --- /dev/null +++ b/tasks/clean-up-after-migration.sh @@ -0,0 +1,34 @@ +#!/usr/bin/bash + +# Copyright 2023 Adobe. All rights reserved. +# This file is licensed to you under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. You may obtain a copy +# of the License at http://www.apache.org/licenses/LICENSE-2.0 + +# Unless required by applicable law or agreed to in writing, software distributed under +# the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS +# OF ANY KIND, either express or implied. See the License for the specific language +# governing permissions and limitations under the License. + +# After migrating from our old build system, there are a lot of empty folders hanging out still +# This script aims to clean up those folders + +# Legacy tools folder (included storybook & generator) +# test -d "tools" && rm -rf tools + +test -d "tools/generator" && rm -rf tools/generator + +# Legacy tokens packages +# test -d "components/vars" && rm -rf components/vars +# test -d "components/expressvars" && rm -rf components/expressvars +# test -d "components/tokens" && rm -rf components/tokens + +# test -d "plugins/legacy-postcss-dropdupedvars" && rm -rf plugins/legacy-postcss-dropdupedvars +# test -d "plugins/legacy-postcss-dropunusedvars" && rm -rf plugins/legacy-postcss-dropunusedvars +# test -d "plugins/postcss-combininator" && rm -rf plugins/postcss-combininator +# test -d "plugins/postcss-dropdupedvars" && rm -rf plugins/postcss-dropdupedvars +# test -d "plugins/postcss-droproot" && rm -rf plugins/postcss-droproot +# test -d "plugins/postcss-dropunusedvars" && rm -rf plugins/postcss-dropunusedvars +# test -d "plugins/postcss-remapvars" && rm -rf plugins/postcss-remapvars +# test -d "plugins/postcss-transformselectors" && rm -rf plugins/postcss-transformselectors +# test -d "plugins/postcss-varfallback" && rm -rf plugins/postcss-varfallback