@flairjs/parcel-transformer 0.0.1-beta.5 → 0.0.1-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -100,8 +100,8 @@ var Store = class {
100
100
  };
101
101
  const store = new Store();
102
102
  const __dirname$1 = (0, node_path.dirname)((0, node_url.fileURLToPath)(require("url").pathToFileURL(__filename).href));
103
- const getUserTheme = async () => {
104
- if (store.getUserTheme()) return store.getUserTheme();
103
+ const getUserTheme = async (options) => {
104
+ if (store.getUserTheme() && !options?.ignoreCache) return store.getUserTheme();
105
105
  try {
106
106
  let userThemeFilePath = path.default.resolve(process.cwd(), "flair.theme.ts");
107
107
  if (!(0, fs.existsSync)(userThemeFilePath)) userThemeFilePath = path.default.resolve(process.cwd(), "flair.theme.js");
@@ -159,7 +159,7 @@ const setupGeneratedCssDir = async (options) => {
159
159
  }
160
160
  return flairGeneratedCssDir;
161
161
  };
162
- const setupUserThemeFile = async ({ buildThemeFile }) => {
162
+ const setupUserThemeFile = async ({ buildThemeFile, onThemeFileChange }) => {
163
163
  const flairThemeFile = require$1.resolve("@flairjs/client/theme.css");
164
164
  let userTheme = await getUserTheme();
165
165
  const buildThemeCSS = buildThemeFile ?? buildThemeTokens;
@@ -172,6 +172,7 @@ const setupUserThemeFile = async ({ buildThemeFile }) => {
172
172
  store.setLastThemeUpdate(Date.now());
173
173
  if (!userTheme) return;
174
174
  const themeCSS$1 = buildThemeCSS(userTheme.theme);
175
+ onThemeFileChange?.();
175
176
  await (0, node_fs_promises.writeFile)(flairThemeFile, themeCSS$1, "utf-8");
176
177
  });
177
178
  }
@@ -230,7 +231,7 @@ const transformCode = (code, filePath, options) => {
230
231
  //#region src/index.ts
231
232
  const SourceMap = __parcel_source_map.default.default ?? __parcel_source_map.default;
232
233
  let initialized = false;
233
- var src_default = new __parcel_plugin.Transformer({
234
+ const transformer = new __parcel_plugin.Transformer({
234
235
  async loadConfig({ config }) {
235
236
  const getConfigResult = await config.getConfig(["tool.config.js"]);
236
237
  const filePath = getConfigResult?.filePath;
@@ -279,6 +280,7 @@ var src_default = new __parcel_plugin.Transformer({
279
280
  }
280
281
  }
281
282
  });
283
+ var src_default = transformer;
282
284
 
283
285
  //#endregion
284
286
  module.exports = src_default;
package/dist/esm/index.js CHANGED
@@ -65,8 +65,8 @@ var Store = class {
65
65
  };
66
66
  const store = new Store();
67
67
  const __dirname = dirname(fileURLToPath(import.meta.url));
68
- const getUserTheme = async () => {
69
- if (store.getUserTheme()) return store.getUserTheme();
68
+ const getUserTheme = async (options) => {
69
+ if (store.getUserTheme() && !options?.ignoreCache) return store.getUserTheme();
70
70
  try {
71
71
  let userThemeFilePath = path$1.resolve(process.cwd(), "flair.theme.ts");
72
72
  if (!existsSync$1(userThemeFilePath)) userThemeFilePath = path$1.resolve(process.cwd(), "flair.theme.js");
@@ -124,7 +124,7 @@ const setupGeneratedCssDir = async (options) => {
124
124
  }
125
125
  return flairGeneratedCssDir;
126
126
  };
127
- const setupUserThemeFile = async ({ buildThemeFile }) => {
127
+ const setupUserThemeFile = async ({ buildThemeFile, onThemeFileChange }) => {
128
128
  const flairThemeFile = require.resolve("@flairjs/client/theme.css");
129
129
  let userTheme = await getUserTheme();
130
130
  const buildThemeCSS = buildThemeFile ?? buildThemeTokens;
@@ -137,6 +137,7 @@ const setupUserThemeFile = async ({ buildThemeFile }) => {
137
137
  store.setLastThemeUpdate(Date.now());
138
138
  if (!userTheme) return;
139
139
  const themeCSS$1 = buildThemeCSS(userTheme.theme);
140
+ onThemeFileChange?.();
140
141
  await writeFile(flairThemeFile, themeCSS$1, "utf-8");
141
142
  });
142
143
  }
@@ -195,7 +196,7 @@ const transformCode$1 = (code, filePath, options) => {
195
196
  //#region src/index.ts
196
197
  const SourceMap = SourceMapImport.default ?? SourceMapImport;
197
198
  let initialized = false;
198
- var src_default = new Transformer({
199
+ const transformer = new Transformer({
199
200
  async loadConfig({ config }) {
200
201
  const getConfigResult = await config.getConfig(["tool.config.js"]);
201
202
  const filePath = getConfigResult?.filePath;
@@ -244,6 +245,7 @@ var src_default = new Transformer({
244
245
  }
245
246
  }
246
247
  });
248
+ var src_default = transformer;
247
249
 
248
250
  //#endregion
249
251
  export { src_default as default };
@@ -1,14 +1,33 @@
1
- import { Transformer } from "@parcel/plugin";
2
- declare const _default: Transformer<{
3
- cssGeneratedDir: string | null;
4
- userTheme: {
5
- theme: any;
6
- originalPath: string;
7
- } | null;
8
- cssPreprocessor?: (css: string, id: string) => string;
9
- include?: string | string[];
10
- exclude?: string | string[];
11
- buildThemeFile?: (theme: import("@flairjs/client").FlairThemeConfig) => string;
12
- classNameList?: string[];
13
- }>;
14
- export default _default;
1
+ import { FlairThemeConfig } from '@flairjs/client';
2
+ import type { Transformer } from '@parcel/plugin';
3
+
4
+ export declare interface FlairJsParcelTransformerOptions extends SharedPluginOptions {
5
+ }
6
+
7
+ declare interface SharedPluginOptions {
8
+ /**
9
+ * Preprocess the extracted CSS before it is passed to lightningcss
10
+ * @experimental
11
+ * @param css the extracted css
12
+ * @param id the id of the file being processed
13
+ * @returns the processed css
14
+ */
15
+ cssPreprocessor?: (css: string, id: string) => string;
16
+ include?: string | string[];
17
+ exclude?: string | string[];
18
+ /**
19
+ * Override the default theme file content based on the user theme
20
+ * @param theme the user theme
21
+ * @returns the theme file content
22
+ */
23
+ buildThemeFile?: (theme: FlairThemeConfig) => string;
24
+ /**
25
+ * List of class names used in the project. Supports regex.
26
+ */
27
+ classNameList?: string[];
28
+ }
29
+
30
+ declare const transformer: Transformer<FlairJsParcelTransformerOptions>;
31
+ export default transformer;
32
+
33
+ export { }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flairjs/parcel-transformer",
3
- "version": "0.0.1-beta.5",
3
+ "version": "0.0.1-beta.6",
4
4
  "main": "./dist/cjs/index.js",
5
5
  "module": "./dist/esm/index.js",
6
6
  "types": "./dist/types/index.d.ts",
@@ -13,17 +13,21 @@
13
13
  },
14
14
  "peerDependencies": {
15
15
  "parcel": ">=2.0.0",
16
- "@flairjs/core": "0.0.1-beta.5"
16
+ "@flairjs/core": "0.0.1-beta.6"
17
17
  },
18
18
  "devDependencies": {
19
- "@biomejs/biome": "^1.9.4",
20
- "@rollup/plugin-typescript": "^12.1.4",
19
+ "@biomejs/biome": "^2.2.4",
20
+ "@microsoft/api-extractor": "^7.52.13",
21
21
  "@types/node": "^22.8.1",
22
22
  "parcel": "^2.16.0",
23
+ "rimraf": "^6.0.1",
23
24
  "rolldown": "1.0.0-beta.37",
24
25
  "typescript": "^5.8.2",
25
- "@flairjs/bundler-shared": "0.0.1-beta.9",
26
- "@flairjs/core": "0.0.1-beta.5"
26
+ "@flairjs/bundler-shared": "0.0.1-beta.10",
27
+ "@flairjs/core": "0.0.1-beta.6"
28
+ },
29
+ "engines": {
30
+ "parcel": ">=2.0.0"
27
31
  },
28
32
  "dependencies": {
29
33
  "@parcel/plugin": "^2.16.0",
@@ -32,7 +36,7 @@
32
36
  "picomatch": "^4.0.3"
33
37
  },
34
38
  "scripts": {
35
- "build": "tsc && rolldown -c",
39
+ "build": "rimraf dist && tsc && api-extractor run --local && rolldown -c && rimraf dist/types-temp",
36
40
  "check": "biome check --write",
37
41
  "dev": "rolldown -w -c",
38
42
  "format": "biome format --write"