From 0dd30bafc146ee868640b04d887293c0f1174ac4 Mon Sep 17 00:00:00 2001 From: Adam Skoufis Date: Thu, 23 Jan 2025 14:40:01 +1100 Subject: [PATCH] Split out compiler into `@vanilla-extract/compiler` package --- .changeset/many-flowers-switch.md | 5 ++++ .changeset/new-cameras-stare.md | 5 ++++ .changeset/seven-drinks-drum.md | 5 ++++ .changeset/tiny-needles-dance.md | 7 +++++ .gitignore | 1 + packages/compiler/README.md | 3 ++ packages/compiler/package.json | 24 +++++++++++++++ .../{integration => compiler}/src/compiler.ts | 14 +++++---- packages/compiler/src/index.ts | 5 ++++ .../{integration => compiler}/src/lock.ts | 0 packages/esbuild-plugin-next/package.json | 1 + packages/esbuild-plugin-next/src/index.ts | 6 ++-- packages/integration/package.json | 4 +-- packages/integration/src/index.ts | 17 +++++------ packages/vite-plugin/package.json | 1 + packages/vite-plugin/src/index.ts | 5 ++-- pnpm-lock.yaml | 30 +++++++++++++++---- tests/compiler/compiler.test.ts | 3 +- tests/compiler/compiler.vitest.test.ts | 3 +- tests/package.json | 1 + 20 files changed, 109 insertions(+), 31 deletions(-) create mode 100644 .changeset/many-flowers-switch.md create mode 100644 .changeset/new-cameras-stare.md create mode 100644 .changeset/seven-drinks-drum.md create mode 100644 .changeset/tiny-needles-dance.md create mode 100644 packages/compiler/README.md create mode 100644 packages/compiler/package.json rename packages/{integration => compiler}/src/compiler.ts (97%) create mode 100644 packages/compiler/src/index.ts rename packages/{integration => compiler}/src/lock.ts (100%) diff --git a/.changeset/many-flowers-switch.md b/.changeset/many-flowers-switch.md new file mode 100644 index 000000000..b1df5598d --- /dev/null +++ b/.changeset/many-flowers-switch.md @@ -0,0 +1,5 @@ +--- +'@vanilla-extract/vite-plugin': patch +--- + +Consume compiler API from new `@vanilla-extract/compiler` package instead of `@vanilla-extract/integration` diff --git a/.changeset/new-cameras-stare.md b/.changeset/new-cameras-stare.md new file mode 100644 index 000000000..62e24bdcb --- /dev/null +++ b/.changeset/new-cameras-stare.md @@ -0,0 +1,5 @@ +--- +'@vanilla-extract/compiler': minor +--- + +Initial release diff --git a/.changeset/seven-drinks-drum.md b/.changeset/seven-drinks-drum.md new file mode 100644 index 000000000..6d765fbb9 --- /dev/null +++ b/.changeset/seven-drinks-drum.md @@ -0,0 +1,5 @@ +--- +'@vanilla-extract/integration': minor +--- + +Export `serializeVanillaModule` function diff --git a/.changeset/tiny-needles-dance.md b/.changeset/tiny-needles-dance.md new file mode 100644 index 000000000..1ff262591 --- /dev/null +++ b/.changeset/tiny-needles-dance.md @@ -0,0 +1,7 @@ +--- +'@vanilla-extract/integration': major +--- + +Remove `createCompiler` function and `Compiler` and `CreateCompilerOptions` types + +BREAKING CHANGE: These APIs have been moved to the new `@vanilla-extract/compiler` package diff --git a/.gitignore b/.gitignore index 8d1c05a7f..1eb2e7f77 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ tsconfig.tsbuildinfo packages/**/README.md !packages/sprinkles/README.md !packages/integration/README.md +!packages/compiler/README.md test-results .parcel-cache diff --git a/packages/compiler/README.md b/packages/compiler/README.md new file mode 100644 index 000000000..dbd3eaf18 --- /dev/null +++ b/packages/compiler/README.md @@ -0,0 +1,3 @@ +# @vanilla-extract/integration + +This package is not intended for public consumption. \ No newline at end of file diff --git a/packages/compiler/package.json b/packages/compiler/package.json new file mode 100644 index 000000000..f58bd76fc --- /dev/null +++ b/packages/compiler/package.json @@ -0,0 +1,24 @@ +{ + "name": "@vanilla-extract/compiler", + "version": "0.0.0", + "description": "Zero-runtime Stylesheets-in-TypeScript", + "main": "dist/vanilla-extract-compiler.cjs.js", + "module": "dist/vanilla-extract-compiler.esm.js", + "types": "dist/vanilla-extract-compiler.cjs.d.ts", + "files": [ + "/dist" + ], + "repository": { + "type": "git", + "url": "https://github.com/vanilla-extract-css/vanilla-extract.git", + "directory": "packages/compiler" + }, + "author": "SEEK", + "license": "MIT", + "dependencies": { + "@vanilla-extract/css": "workspace:^", + "@vanilla-extract/integration": "workspace:^", + "vite": "^5.0.11", + "vite-node": "^1.2.0" + } +} diff --git a/packages/integration/src/compiler.ts b/packages/compiler/src/compiler.ts similarity index 97% rename from packages/integration/src/compiler.ts rename to packages/compiler/src/compiler.ts index 87f64d086..3e8a6b5bd 100644 --- a/packages/integration/src/compiler.ts +++ b/packages/compiler/src/compiler.ts @@ -4,13 +4,15 @@ import type { Adapter } from '@vanilla-extract/css'; import { transformCss } from '@vanilla-extract/css/transformCss'; import type { ModuleNode, UserConfig as ViteUserConfig } from 'vite'; -import type { IdentifierOption } from './types'; -import { cssFileFilter } from './filters'; -import { getPackageInfo } from './packageInfo'; -import { transform } from './transform'; -import { normalizePath } from './addFileScope'; +import { + cssFileFilter, + transform, + normalizePath, + getPackageInfo, + serializeVanillaModule, + type IdentifierOption, +} from '@vanilla-extract/integration'; import { lock } from './lock'; -import { serializeVanillaModule } from './processVanillaFile'; type Css = Parameters[0]; type Composition = Parameters[0]; diff --git a/packages/compiler/src/index.ts b/packages/compiler/src/index.ts new file mode 100644 index 000000000..ef5bf040d --- /dev/null +++ b/packages/compiler/src/index.ts @@ -0,0 +1,5 @@ +export { + createCompiler, + type Compiler, + type CreateCompilerOptions, +} from './compiler'; diff --git a/packages/integration/src/lock.ts b/packages/compiler/src/lock.ts similarity index 100% rename from packages/integration/src/lock.ts rename to packages/compiler/src/lock.ts diff --git a/packages/esbuild-plugin-next/package.json b/packages/esbuild-plugin-next/package.json index 1bb2d08c1..033bdf9d3 100644 --- a/packages/esbuild-plugin-next/package.json +++ b/packages/esbuild-plugin-next/package.json @@ -17,6 +17,7 @@ "author": "SEEK", "license": "MIT", "dependencies": { + "@vanilla-extract/compiler": "workspace:^", "@vanilla-extract/integration": "workspace:^" }, "peerDependencies": { diff --git a/packages/esbuild-plugin-next/src/index.ts b/packages/esbuild-plugin-next/src/index.ts index ad896d433..a1fce9fc1 100644 --- a/packages/esbuild-plugin-next/src/index.ts +++ b/packages/esbuild-plugin-next/src/index.ts @@ -1,11 +1,13 @@ import { dirname } from 'path'; import { - cssFileFilter, + type CreateCompilerOptions, createCompiler, +} from '@vanilla-extract/compiler'; +import { + cssFileFilter, vanillaExtractTransformPlugin, IdentifierOption, - CreateCompilerOptions, } from '@vanilla-extract/integration'; import type { Plugin } from 'esbuild'; diff --git a/packages/integration/package.json b/packages/integration/package.json index 5f59fab14..f0322ed61 100644 --- a/packages/integration/package.json +++ b/packages/integration/package.json @@ -24,9 +24,7 @@ "eval": "0.1.8", "find-up": "^5.0.0", "javascript-stringify": "^2.0.1", - "mlly": "^1.4.2", - "vite": "^5.0.11", - "vite-node": "^1.2.0" + "mlly": "^1.4.2" }, "devDependencies": { "@types/babel__core": "^7.20.5" diff --git a/packages/integration/src/index.ts b/packages/integration/src/index.ts index b9a3fe8b8..9ac51d50c 100644 --- a/packages/integration/src/index.ts +++ b/packages/integration/src/index.ts @@ -2,19 +2,18 @@ export { processVanillaFile, parseFileScope, stringifyFileScope, + serializeVanillaModule, } from './processVanillaFile'; export { getSourceFromVirtualCssFile } from './virtualFile'; -export { getPackageInfo } from './packageInfo'; -export { compile, vanillaExtractTransformPlugin } from './compile'; -export { createCompiler } from './compiler'; +export { getPackageInfo, type PackageInfo } from './packageInfo'; +export { + compile, + vanillaExtractTransformPlugin, + type CompileOptions, +} from './compile'; export { hash } from './hash'; export { addFileScope, normalizePath } from './addFileScope'; export { serializeCss, deserializeCss } from './serialize'; export { transformSync, transform } from './transform'; - -export * from './filters'; - +export { cssFileFilter, virtualCssFileFilter } from './filters'; export type { IdentifierOption } from './types'; -export type { PackageInfo } from './packageInfo'; -export type { CompileOptions } from './compile'; -export type { Compiler, CreateCompilerOptions } from './compiler'; diff --git a/packages/vite-plugin/package.json b/packages/vite-plugin/package.json index a73f16417..9ed24736c 100644 --- a/packages/vite-plugin/package.json +++ b/packages/vite-plugin/package.json @@ -16,6 +16,7 @@ "author": "SEEK", "license": "MIT", "dependencies": { + "@vanilla-extract/compiler": "workspace:^", "@vanilla-extract/integration": "workspace:^" }, "devDependencies": { diff --git a/packages/vite-plugin/src/index.ts b/packages/vite-plugin/src/index.ts index 0d41bcb29..61a5e8475 100644 --- a/packages/vite-plugin/src/index.ts +++ b/packages/vite-plugin/src/index.ts @@ -9,13 +9,12 @@ import type { TransformResult, UserConfig, } from 'vite'; +import { type Compiler, createCompiler } from '@vanilla-extract/compiler'; import { cssFileFilter, - IdentifierOption, + type IdentifierOption, getPackageInfo, transform, - type Compiler, - createCompiler, normalizePath, } from '@vanilla-extract/integration'; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f52a99b98..c67289016 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -384,6 +384,21 @@ importers: specifier: ^7.20.5 version: 7.20.5 + packages/compiler: + dependencies: + '@vanilla-extract/css': + specifier: workspace:^ + version: link:../css + '@vanilla-extract/integration': + specifier: workspace:^ + version: link:../integration + vite: + specifier: ^5.0.11 + version: 5.1.4(@types/node@20.9.5)(terser@5.26.0) + vite-node: + specifier: ^1.2.0 + version: 1.5.0(@types/node@20.9.5)(terser@5.26.0) + packages/css: dependencies: '@emotion/hash': @@ -449,6 +464,9 @@ importers: packages/esbuild-plugin-next: dependencies: + '@vanilla-extract/compiler': + specifier: workspace:^ + version: link:../compiler '@vanilla-extract/integration': specifier: workspace:^ version: link:../integration @@ -489,12 +507,6 @@ importers: mlly: specifier: ^1.4.2 version: 1.4.2 - vite: - specifier: ^5.0.11 - version: 5.1.4(@types/node@20.9.5)(terser@5.26.0) - vite-node: - specifier: ^1.2.0 - version: 1.5.0(@types/node@20.9.5)(terser@5.26.0) devDependencies: '@types/babel__core': specifier: ^7.20.5 @@ -578,6 +590,9 @@ importers: packages/vite-plugin: dependencies: + '@vanilla-extract/compiler': + specifier: workspace:^ + version: link:../compiler '@vanilla-extract/integration': specifier: workspace:^ version: link:../integration @@ -912,6 +927,9 @@ importers: '@vanilla-extract-private/test-helpers': specifier: workspace:* version: link:../test-helpers + '@vanilla-extract/compiler': + specifier: workspace:* + version: link:../packages/compiler '@vanilla-extract/css': specifier: workspace:* version: link:../packages/css diff --git a/tests/compiler/compiler.test.ts b/tests/compiler/compiler.test.ts index 559defa00..b5ace5e5d 100644 --- a/tests/compiler/compiler.test.ts +++ b/tests/compiler/compiler.test.ts @@ -1,5 +1,6 @@ import path from 'path'; -import { createCompiler, normalizePath } from '@vanilla-extract/integration'; +import { createCompiler } from '@vanilla-extract/compiler'; +import { normalizePath } from '@vanilla-extract/integration'; import tsconfigPaths from 'vite-tsconfig-paths'; expect.addSnapshotSerializer({ diff --git a/tests/compiler/compiler.vitest.test.ts b/tests/compiler/compiler.vitest.test.ts index a8529fdd0..4f6087c27 100644 --- a/tests/compiler/compiler.vitest.test.ts +++ b/tests/compiler/compiler.vitest.test.ts @@ -1,6 +1,7 @@ import path from 'path'; import { describe, beforeAll, afterAll, test, expect } from 'vitest'; -import { createCompiler, normalizePath } from '@vanilla-extract/integration'; +import { createCompiler } from '@vanilla-extract/compiler'; +import { normalizePath } from '@vanilla-extract/integration'; // Vitest has trouble with snapshots that don't contain wrapping quotes. See this regex and the functions above/below it: // https://github.com/vitest-dev/vitest/blob/ae73f2737607a878ba589d548aa6f8ba639dc07c/packages/snapshot/src/port/inlineSnapshot.ts#L96 diff --git a/tests/package.json b/tests/package.json index 26216452e..c35bfbbf2 100644 --- a/tests/package.json +++ b/tests/package.json @@ -9,6 +9,7 @@ "@testing-library/dom": "^10.0.0", "@testing-library/jest-dom": "^6.4.2", "@vanilla-extract-private/test-helpers": "workspace:*", + "@vanilla-extract/compiler": "workspace:*", "@vanilla-extract/css": "workspace:*", "@vanilla-extract/dynamic": "workspace:*", "@vanilla-extract/integration": "workspace:*",