From c18b233a20f6dca091521711e7d0e519503330dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnaud=20Barr=C3=A9?= Date: Mon, 29 Aug 2022 18:21:00 +0200 Subject: [PATCH] Fix ci [publish] --- .github/workflows/publish.yml | 3 ++- .idea/jsonSchemas.xml | 26 ++++++++++++++++++++++ package.json | 2 +- playground/vite/downwind.config.ts | 2 +- src/esbuildPlugin.ts | 6 ++++- src/index.ts | 4 +++- src/types.d.ts | 1 + src/vitePlugin.ts | 6 ++++- tests/snapshots/esbuildPlugin-hash.css | 2 +- tests/snapshots/esbuildPlugin-minify.css | 2 +- tests/snapshots/esbuildPlugin-no-write.css | 2 +- tests/snapshots/esbuildPlugin-simple.css | 2 +- 12 files changed, 48 insertions(+), 10 deletions(-) create mode 100644 .idea/jsonSchemas.xml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3942c19..4ca5402 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -12,6 +12,7 @@ jobs: - uses: xhyrom/setup-bun@v0.1.7 - run: bun install - run: bun ci - - uses: ArnaudBarre/npm-publish@v1 + - uses: ArnaudBarre/npm-publish@v1.1 with: + working-directory: dist npm-token: ${{ secrets.NPM_TOKEN }} diff --git a/.idea/jsonSchemas.xml b/.idea/jsonSchemas.xml new file mode 100644 index 0000000..03ba9b6 --- /dev/null +++ b/.idea/jsonSchemas.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/package.json b/package.json index cd6710a..b1b94ae 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,11 @@ "author": "Arnaud Barré (https://github.com/ArnaudBarre)", "license": "MIT", "scripts": { + "postinstall": "cd playground/vite && bun install", "dev": "scripts/bundle.ts --dev", "build": "scripts/bundle.ts", "test": "tests/run-tests.ts --update-snapshots", "test-ci": "tests/run-tests.ts", - "tsc": "tsc", "lint": "bun run lint-ci --fix --cache", "lint-ci": "eslint src scripts tests --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "prettier": "bun run prettier-ci --write", diff --git a/playground/vite/downwind.config.ts b/playground/vite/downwind.config.ts index bc00fa1..eb37ccb 100644 --- a/playground/vite/downwind.config.ts +++ b/playground/vite/downwind.config.ts @@ -1,4 +1,4 @@ -import { DownwindConfig } from "../../dist"; +import type { DownwindConfig } from "../../src/types"; export const config: DownwindConfig = { shortcuts: { diff --git a/src/esbuildPlugin.ts b/src/esbuildPlugin.ts index edaa22b..b881dc4 100644 --- a/src/esbuildPlugin.ts +++ b/src/esbuildPlugin.ts @@ -11,7 +11,11 @@ const esbuildPlugin: typeof declaration = ({ scannedExtension } = {}) => ({ name: "downwind", setup: async (build) => { const targets = convertTargets(build.initialOptions.target); - const downwind = await initDownwind({ targets, scannedExtension }); + const downwind = await initDownwind({ + targets, + scannedExtension, + root: build.initialOptions.absWorkingDir, + }); const cssModulesMap: Record = {}; let hasBase = false; let hasUtils = false; diff --git a/src/index.ts b/src/index.ts index 2220e2b..3678d62 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,5 @@ import { readFileSync } from "fs"; +import { relative } from "node:path"; import { loadConfig } from "@arnaud-barre/config-loader"; import { CSSModuleExports, Dependency, transform } from "@parcel/css"; @@ -66,6 +67,7 @@ export const initDownwindWithConfig = ({ config: userConfig, targets = forceDownlevelNesting, scannedExtension = "tsx", + root = process.cwd(), }: { config: UserConfig | undefined; } & Parameters[0]) => { @@ -403,7 +405,7 @@ export const initDownwindWithConfig = ({ readFileSync(path, "utf-8"), ); const result = transform({ - filename: path, + filename: relative(root, path), code: Buffer.from(content), analyzeDependencies: opts?.analyzeDependencies, cssModules: path.endsWith(".module.css"), diff --git a/src/types.d.ts b/src/types.d.ts index 8c47b6f..05f0e23 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -22,6 +22,7 @@ type ParcelTargets = NonNullable; export declare const initDownwind: (opts?: { targets?: ParcelTargets; scannedExtension?: string; + root?: string; }) => Promise; export type Downwind = { diff --git a/src/vitePlugin.ts b/src/vitePlugin.ts index ff25e86..6a8ae74 100644 --- a/src/vitePlugin.ts +++ b/src/vitePlugin.ts @@ -19,7 +19,11 @@ const vitePlugin: typeof declaration = ({ // Common const configResolved = async (config: ResolvedConfig) => { targets = convertTargets(config.build.cssTarget); - downwind = await initDownwind({ targets, scannedExtension }); + downwind = await initDownwind({ + targets, + scannedExtension, + root: config.root, + }); }; let hasBase = false; diff --git a/tests/snapshots/esbuildPlugin-hash.css b/tests/snapshots/esbuildPlugin-hash.css index 6acf754..8255439 100644 --- a/tests/snapshots/esbuildPlugin-hash.css +++ b/tests/snapshots/esbuildPlugin-hash.css @@ -191,7 +191,7 @@ body { margin: 0; } -.od15oG_container { +._6vyDYG_container { text-align: center; padding: 3rem; } diff --git a/tests/snapshots/esbuildPlugin-minify.css b/tests/snapshots/esbuildPlugin-minify.css index 09f2f9f..34df90d 100644 --- a/tests/snapshots/esbuildPlugin-minify.css +++ b/tests/snapshots/esbuildPlugin-minify.css @@ -1 +1 @@ -*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}html{height:100%;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity));flex-direction:column;font-size:1.125rem;line-height:1.75rem;display:flex;overflow:hidden}body{margin:0}.od15oG_container{text-align:center;padding:3rem}.btn{--tw-shadow-color:#0000001a;box-shadow:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);border-radius:.5rem;padding:.5rem 1rem;font-weight:600}.btn-green{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.btn-green:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity))}.mt-4{margin-top:1rem}.p-4{padding:1rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700} \ No newline at end of file +*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html{-webkit-text-size-adjust:100%;tab-size:4;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}html{height:100%;--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity));flex-direction:column;font-size:1.125rem;line-height:1.75rem;display:flex;overflow:hidden}body{margin:0}._6vyDYG_container{text-align:center;padding:3rem}.btn{--tw-shadow-color:#0000001a;box-shadow:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);border-radius:.5rem;padding:.5rem 1rem;font-weight:600}.btn-green{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity));--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity))}.btn-green:hover{--tw-bg-opacity:1;background-color:rgb(21 128 61/var(--tw-bg-opacity))}.mt-4{margin-top:1rem}.p-4{padding:1rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700} \ No newline at end of file diff --git a/tests/snapshots/esbuildPlugin-no-write.css b/tests/snapshots/esbuildPlugin-no-write.css index 6acf754..8255439 100644 --- a/tests/snapshots/esbuildPlugin-no-write.css +++ b/tests/snapshots/esbuildPlugin-no-write.css @@ -191,7 +191,7 @@ body { margin: 0; } -.od15oG_container { +._6vyDYG_container { text-align: center; padding: 3rem; } diff --git a/tests/snapshots/esbuildPlugin-simple.css b/tests/snapshots/esbuildPlugin-simple.css index 6acf754..8255439 100644 --- a/tests/snapshots/esbuildPlugin-simple.css +++ b/tests/snapshots/esbuildPlugin-simple.css @@ -191,7 +191,7 @@ body { margin: 0; } -.od15oG_container { +._6vyDYG_container { text-align: center; padding: 3rem; }