@tamagui/static 1.89.20 → 1.89.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. package/dist/cjs/extractor/bundle.js +30 -15
  2. package/dist/cjs/extractor/bundle.js.map +1 -1
  3. package/dist/cjs/extractor/bundle.native.js +33 -16
  4. package/dist/cjs/extractor/bundle.native.js.map +1 -1
  5. package/dist/cjs/extractor/bundleConfig.js +1 -6
  6. package/dist/cjs/extractor/bundleConfig.js.map +1 -1
  7. package/dist/cjs/extractor/bundleConfig.native.js +1 -6
  8. package/dist/cjs/extractor/bundleConfig.native.js.map +1 -1
  9. package/dist/cjs/extractor/loadTamagui.js +23 -12
  10. package/dist/cjs/extractor/loadTamagui.js.map +1 -1
  11. package/dist/cjs/extractor/loadTamagui.native.js +23 -12
  12. package/dist/cjs/extractor/loadTamagui.native.js.map +1 -1
  13. package/dist/cjs/registerRequire.js +2 -2
  14. package/dist/cjs/registerRequire.js.map +1 -1
  15. package/dist/cjs/registerRequire.native.js +2 -2
  16. package/dist/cjs/registerRequire.native.js.map +1 -1
  17. package/dist/esm/extractor/bundle.js +30 -15
  18. package/dist/esm/extractor/bundle.js.map +1 -1
  19. package/dist/esm/extractor/bundle.mjs +28 -15
  20. package/dist/esm/extractor/bundle.native.js +30 -15
  21. package/dist/esm/extractor/bundle.native.js.map +1 -1
  22. package/dist/esm/extractor/bundleConfig.js +2 -7
  23. package/dist/esm/extractor/bundleConfig.js.map +1 -1
  24. package/dist/esm/extractor/bundleConfig.mjs +2 -7
  25. package/dist/esm/extractor/bundleConfig.native.js +2 -7
  26. package/dist/esm/extractor/bundleConfig.native.js.map +1 -1
  27. package/dist/esm/extractor/loadTamagui.js +24 -12
  28. package/dist/esm/extractor/loadTamagui.js.map +1 -1
  29. package/dist/esm/extractor/loadTamagui.mjs +31 -12
  30. package/dist/esm/extractor/loadTamagui.native.js +24 -12
  31. package/dist/esm/extractor/loadTamagui.native.js.map +1 -1
  32. package/dist/esm/registerRequire.js +2 -1
  33. package/dist/esm/registerRequire.js.map +1 -1
  34. package/dist/esm/registerRequire.mjs +2 -1
  35. package/dist/esm/registerRequire.native.js +2 -1
  36. package/dist/esm/registerRequire.native.js.map +1 -1
  37. package/package.json +14 -14
  38. package/src/extractor/bundle.ts +34 -14
  39. package/src/extractor/bundleConfig.ts +2 -7
  40. package/src/extractor/loadTamagui.ts +35 -8
  41. package/src/registerRequire.ts +2 -1
  42. package/types/extractor/bundle.d.ts +25 -0
  43. package/types/extractor/bundle.d.ts.map +1 -1
  44. package/types/extractor/bundleConfig.d.ts.map +1 -1
  45. package/types/extractor/loadTamagui.d.ts.map +1 -1
  46. package/types/registerRequire.d.ts.map +1 -1
@@ -1,5 +1,6 @@
1
1
  import { register } from "esbuild-register/dist/node";
2
2
  import { requireTamaguiCore } from "./helpers/requireTamaguiCore.mjs";
3
+ import { esbuildIgnoreFilesRegex } from "./extractor/bundle.mjs";
3
4
  const nameToPaths = {},
4
5
  Module = require("module"),
5
6
  getNameToPaths = () => nameToPaths,
@@ -33,7 +34,7 @@ function registerRequire(platform, {
33
34
  if (path === "tamagui" && platform === "native") return og.apply(this, ["tamagui/native"]);
34
35
  if (path === "@tamagui/core" || path === "@tamagui/web") return requireTamaguiCore(platform, path2 => og.apply(this, [path2]));
35
36
  if (path in compiled) return compiled[path];
36
- if (/\.(gif|jpe?g|png|svg|ttf|otf|woff2?|bmp|webp)$/i.test(path)) return {};
37
+ if (esbuildIgnoreFilesRegex.test(path)) return {};
37
38
  if (path === "@gorhom/bottom-sheet" || path.startsWith("react-native-reanimated") || path === "expo-linear-gradient" || path === "@expo/vector-icons" || path === "tamagui/linear-gradient" || path === "react-native-svg") return proxyWorm;
38
39
  if (path === "react-native/package.json") return packageJson;
39
40
  if (path === "react-native-web-lite" || path.startsWith("react-native")) return rnw;
@@ -1,5 +1,6 @@
1
1
  import { register } from "esbuild-register/dist/node";
2
2
  import { requireTamaguiCore } from "./helpers/requireTamaguiCore";
3
+ import { esbuildIgnoreFilesRegex } from "./extractor/bundle";
3
4
  const nameToPaths = {}, Module = require("module"), getNameToPaths = () => nameToPaths, proxyWorm = require("@tamagui/proxy-worm"), rnw = require("react-native-web");
4
5
  let isRegistered = !1, og;
5
6
  const whitelisted = {
@@ -28,7 +29,7 @@ function registerRequire(platform, { proxyWormImports } = {
28
29
  return requireTamaguiCore(platform, (path2) => og.apply(this, [path2]));
29
30
  if (path in compiled)
30
31
  return compiled[path];
31
- if (/\.(gif|jpe?g|png|svg|ttf|otf|woff2?|bmp|webp)$/i.test(path))
32
+ if (esbuildIgnoreFilesRegex.test(path))
32
33
  return {};
33
34
  if (path === "@gorhom/bottom-sheet" || path.startsWith("react-native-reanimated") || path === "expo-linear-gradient" || path === "@expo/vector-icons" || path === "tamagui/linear-gradient" || path === "react-native-svg")
34
35
  return proxyWorm;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/registerRequire.ts"],
4
- "mappings": "AAAA,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AAGnC,MAAM,cAAc,CAAC,GACf,SAAS,QAAQ,QAAQ,GAElB,iBAAiB,MAAM,aAE9B,YAAY,QAAQ,qBAAqB,GAEzC,MAAM,QAAQ,kBAAkB;AAEtC,IAAI,eAAe,IACf;AAEJ,MAAM,cAAc;AAAA,EAClB,OAAO;AACT,GAEM,WAAW,CAAC;AACX,SAAS,iBAAiB,MAAc,QAAa;AAC1D,WAAS,IAAI,IAAI;AACnB;AAEO,SAAS,gBACd,UACA,EAAE,iBAAiB,IAAI;AAAA,EACrB,kBAAkB;AACpB,GACA;AAEA,MAAI;AACF,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,YAAY,MAAM;AAAA,MAAC;AAAA,IACrB;AAGF,QAAM,EAAE,WAAW,IAAI,SAAS;AAAA,IAC9B,uBAAuB;AAAA,EACzB,CAAC;AAED,EAAK,OACH,KAAK,OAAO,UAAU,UAGxB,eAAe,IAEf,OAAO,UAAU,UAAU;AAE3B,WAAS,eAA0B,MAAc;AAC/C,QAAI,SAAS,aAAa,aAAa;AACrC,aAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;AAG1C,QAAI,SAAS,mBAAmB,SAAS;AACvC,aAAO,mBAAmB,UAAU,CAACA,UAC5B,GAAG,MAAM,MAAM,CAACA,KAAI,CAAC,CAC7B;AAGH,QAAI,QAAQ;AACV,aAAO,SAAS,IAAI;AAGtB,QAAI,kDAAkD,KAAK,IAAI;AAC7D,aAAO,CAAC;AAGV,QACE,SAAS,0BACT,KAAK,WAAW,yBAAyB,KACzC,SAAS,0BACT,SAAS,wBACT,SAAS,6BACT,SAAS;AAET,aAAO;AAET,QAAI,SAAS;AACX,aAAO;AAGT,QAAI,SAAS,2BAA2B,KAAK,WAAW,cAAc;AACpE,aAAO;AAGT,QAAI,QAAQ;AACV,aAAO;AAGT,QAAI,CAAC,YAAY,IAAI,KACf,oBAAoB,CAAC,KAAK,SAAS,uBAAuB;AAC5D,aAAI,SAAS,YACJ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAEvB;AAIX,QAAI;AAyBF,aAxBY,GAAG,MAAM,MAAM,SAAS;AAAA,IAyBtC,SAAS,KAAU;AACjB,aACE,CAAC,QAAQ,IAAI,oCACb,KAAK,SAAS,sBAAsB,IAGpC,UAEE,eAAe,IAAI,KAAK,YAAY,WAE7B,CAAC,QAAQ,IAAI,mCAAmC,CAAC,QAAQ,IAAI,QAClE,oBAAoB,IAAI,IAAI,MAG9B,oBAAoB,IAAI,IAAI,GAC5B,QAAQ;AAAA,QACN,uBAAuB,IAAI;AAAA,MAC7B,KAQF,QAAQ;AAAA,QACN,2BAA2B,IAAI;AAAA;AAAA,IAErC,IAAI,OAAO;AAAA,IACX,IAAI,KAAK;AAAA;AAAA;AAAA,MAGL,IAGK;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,YAAY,MAAM;AAChB,iBAAW,GACX,eAAe,IACf,OAAO,UAAU,UAAU;AAAA,IAC7B;AAAA,EACF;AACF;AAEA,MAAM,cAAc,QAAQ,+BAA+B,GACrD,UAAU,QAAQ,IAAI;AAlL5B;AAmLA,MAAM,eACJ,YAAY,SAAS,CAAC,KAAI,aAAQ,IAAI,iCAAZ,mBAA0C,MAAM,MACtE,wBAAwB;AAAA,EAC5B,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,GAAG,OAAO,aAAY,6CAAc,IAAI,CAAC,MAAM,CAAC,GAAG,EAAI,OAAM,CAAC,CAAC;AACjE,GAEM,sBAAsB,oBAAI,IAAY,GAEtC,iBAAiB;AAAA,EACrB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,mBAAmB;AACrB;",
4
+ "mappings": "AAAA,SAAS,gBAAgB;AAEzB,SAAS,0BAA0B;AAEnC,SAAS,+BAA+B;AAExC,MAAM,cAAc,CAAC,GACf,SAAS,QAAQ,QAAQ,GAElB,iBAAiB,MAAM,aAE9B,YAAY,QAAQ,qBAAqB,GAEzC,MAAM,QAAQ,kBAAkB;AAEtC,IAAI,eAAe,IACf;AAEJ,MAAM,cAAc;AAAA,EAClB,OAAO;AACT,GAEM,WAAW,CAAC;AACX,SAAS,iBAAiB,MAAc,QAAa;AAC1D,WAAS,IAAI,IAAI;AACnB;AAEO,SAAS,gBACd,UACA,EAAE,iBAAiB,IAAI;AAAA,EACrB,kBAAkB;AACpB,GACA;AAEA,MAAI;AACF,WAAO;AAAA,MACL,gBAAgB;AAAA,MAChB,YAAY,MAAM;AAAA,MAAC;AAAA,IACrB;AAGF,QAAM,EAAE,WAAW,IAAI,SAAS;AAAA,IAC9B,uBAAuB;AAAA,EACzB,CAAC;AAED,EAAK,OACH,KAAK,OAAO,UAAU,UAGxB,eAAe,IAEf,OAAO,UAAU,UAAU;AAE3B,WAAS,eAA0B,MAAc;AAC/C,QAAI,SAAS,aAAa,aAAa;AACrC,aAAO,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC;AAG1C,QAAI,SAAS,mBAAmB,SAAS;AACvC,aAAO,mBAAmB,UAAU,CAACA,UAC5B,GAAG,MAAM,MAAM,CAACA,KAAI,CAAC,CAC7B;AAGH,QAAI,QAAQ;AACV,aAAO,SAAS,IAAI;AAGtB,QAAI,wBAAwB,KAAK,IAAI;AACnC,aAAO,CAAC;AAGV,QACE,SAAS,0BACT,KAAK,WAAW,yBAAyB,KACzC,SAAS,0BACT,SAAS,wBACT,SAAS,6BACT,SAAS;AAET,aAAO;AAET,QAAI,SAAS;AACX,aAAO;AAGT,QAAI,SAAS,2BAA2B,KAAK,WAAW,cAAc;AACpE,aAAO;AAGT,QAAI,QAAQ;AACV,aAAO;AAGT,QAAI,CAAC,YAAY,IAAI,KACf,oBAAoB,CAAC,KAAK,SAAS,uBAAuB;AAC5D,aAAI,SAAS,YACJ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAEvB;AAIX,QAAI;AAyBF,aAxBY,GAAG,MAAM,MAAM,SAAS;AAAA,IAyBtC,SAAS,KAAU;AACjB,aACE,CAAC,QAAQ,IAAI,oCACb,KAAK,SAAS,sBAAsB,IAGpC,UAEE,eAAe,IAAI,KAAK,YAAY,WAE7B,CAAC,QAAQ,IAAI,mCAAmC,CAAC,QAAQ,IAAI,QAClE,oBAAoB,IAAI,IAAI,MAG9B,oBAAoB,IAAI,IAAI,GAC5B,QAAQ;AAAA,QACN,uBAAuB,IAAI;AAAA,MAC7B,KAQF,QAAQ;AAAA,QACN,2BAA2B,IAAI;AAAA;AAAA,IAErC,IAAI,OAAO;AAAA,IACX,IAAI,KAAK;AAAA;AAAA;AAAA,MAGL,IAGK;AAAA,IACT;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA,YAAY,MAAM;AAChB,iBAAW,GACX,eAAe,IACf,OAAO,UAAU,UAAU;AAAA,IAC7B;AAAA,EACF;AACF;AAEA,MAAM,cAAc,QAAQ,+BAA+B,GACrD,UAAU,QAAQ,IAAI;AAnL5B;AAoLA,MAAM,eACJ,YAAY,SAAS,CAAC,KAAI,aAAQ,IAAI,iCAAZ,mBAA0C,MAAM,MACtE,wBAAwB;AAAA,EAC5B,gBAAgB;AAAA,EAChB,QAAQ;AAAA,EACR,GAAG,OAAO,aAAY,6CAAc,IAAI,CAAC,MAAM,CAAC,GAAG,EAAI,OAAM,CAAC,CAAC;AACjE,GAEM,sBAAsB,oBAAI,IAAY,GAEtC,iBAAiB;AAAA,EACrB,kBAAkB;AAAA,EAClB,iBAAiB;AAAA,EACjB,mBAAmB;AACrB;",
5
5
  "names": ["path"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/static",
3
- "version": "1.89.20",
3
+ "version": "1.89.22",
4
4
  "source": "src/index.ts",
5
5
  "types": "./types/index.d.ts",
6
6
  "main": "dist/cjs/index.js",
@@ -35,17 +35,17 @@
35
35
  "@babel/runtime": "^7.23.2",
36
36
  "@babel/traverse": "^7.23.3",
37
37
  "@babel/types": "^7.23.3",
38
- "@tamagui/build": "1.89.20",
39
- "@tamagui/cli-color": "1.89.20",
40
- "@tamagui/config-default": "1.89.20",
41
- "@tamagui/core": "1.89.20",
42
- "@tamagui/fake-react-native": "1.89.20",
43
- "@tamagui/generate-themes": "1.89.20",
44
- "@tamagui/helpers": "1.89.20",
45
- "@tamagui/helpers-node": "1.89.20",
46
- "@tamagui/proxy-worm": "1.89.20",
47
- "@tamagui/shorthands": "1.89.20",
48
- "@tamagui/types": "1.89.20",
38
+ "@tamagui/build": "1.89.22",
39
+ "@tamagui/cli-color": "1.89.22",
40
+ "@tamagui/config-default": "1.89.22",
41
+ "@tamagui/core": "1.89.22",
42
+ "@tamagui/fake-react-native": "1.89.22",
43
+ "@tamagui/generate-themes": "1.89.22",
44
+ "@tamagui/helpers": "1.89.22",
45
+ "@tamagui/helpers-node": "1.89.22",
46
+ "@tamagui/proxy-worm": "1.89.22",
47
+ "@tamagui/shorthands": "1.89.22",
48
+ "@tamagui/types": "1.89.22",
49
49
  "babel-literal-to-ast": "^2.1.0",
50
50
  "browserslist": "^4.22.2",
51
51
  "esbuild": "^0.19.11",
@@ -56,8 +56,8 @@
56
56
  "invariant": "^2.2.4",
57
57
  "lodash": "^4.17.21",
58
58
  "react-native-web": "^0.19.10",
59
- "react-native-web-internals": "1.89.20",
60
- "react-native-web-lite": "1.89.20"
59
+ "react-native-web-internals": "1.89.22",
60
+ "react-native-web-lite": "1.89.22"
61
61
  },
62
62
  "optionalDependencies": {
63
63
  "lightningcss": "*"
@@ -7,6 +7,39 @@ import type { TamaguiPlatform } from '../types'
7
7
  import { esbuildAliasPlugin } from './esbuildAliasPlugin'
8
8
  import { resolveWebOrNativeSpecificEntry } from './loadTamagui'
9
9
 
10
+ export const esbuildLoaderConfig = {
11
+ '.js': 'jsx',
12
+ '.png': 'dataurl',
13
+ '.jpg': 'dataurl',
14
+ '.jpeg': 'dataurl',
15
+ '.svg': 'dataurl',
16
+ '.gif': 'dataurl',
17
+ '.webp': 'dataurl',
18
+ '.woff2': 'dataurl',
19
+ '.woff': 'dataurl',
20
+ '.eot': 'dataurl',
21
+ '.otf': 'dataurl',
22
+ '.ttf': 'dataurl',
23
+ '.mp4': 'file',
24
+ '.mpeg4': 'file',
25
+ '.mov': 'file',
26
+ '.avif': 'file',
27
+ '.wmv': 'file',
28
+ '.webm': 'file',
29
+ '.wav': 'file',
30
+ '.aac': 'file',
31
+ '.ogg': 'file',
32
+ '.flac': 'file',
33
+ } as const
34
+
35
+ const dataExtensions = Object.keys(esbuildLoaderConfig)
36
+ .filter(
37
+ (k) => esbuildLoaderConfig[k] === 'file' || esbuildLoaderConfig[k] === 'dataurl'
38
+ )
39
+ .map((k) => k.slice(1))
40
+
41
+ export const esbuildIgnoreFilesRegex = new RegExp(`\.(${dataExtensions.join('|')})$`, 'i')
42
+
10
43
  /**
11
44
  * For internal loading of new files
12
45
  */
@@ -51,20 +84,7 @@ function getESBuildConfig(
51
84
  ],
52
85
  platform: 'node',
53
86
  tsconfig,
54
- loader: {
55
- '.js': 'jsx',
56
- '.png': 'dataurl',
57
- '.jpg': 'dataurl',
58
- '.jpeg': 'dataurl',
59
- '.svg': 'dataurl',
60
- '.gif': 'dataurl',
61
- '.webp': 'dataurl',
62
- '.woff2': 'dataurl',
63
- '.woff': 'dataurl',
64
- '.eot': 'dataurl',
65
- '.otf': 'dataurl',
66
- '.ttf': 'dataurl',
67
- },
87
+ loader: esbuildLoaderConfig,
68
88
  logLevel: 'warning',
69
89
  plugins: [
70
90
  {
@@ -12,7 +12,7 @@ import { ensureDir, removeSync, writeFileSync } from 'fs-extra'
12
12
  import { registerRequire, setRequireResult } from '../registerRequire'
13
13
  import type { TamaguiOptions } from '../types'
14
14
  import { babelParse } from './babelParse'
15
- import { bundle } from './bundle'
15
+ import { bundle, esbuildLoaderConfig } from './bundle'
16
16
  import { getTamaguiConfigPathFromOptionsConfig } from './getTamaguiConfigPathFromOptionsConfig'
17
17
 
18
18
  type NameToPaths = {
@@ -318,12 +318,7 @@ export function loadComponentsInner(
318
318
  allowOverwrite: true,
319
319
  // logLevel: 'silent',
320
320
  sourcemap: false,
321
- loader: {
322
- '.png': 'dataurl',
323
- '.jpg': 'dataurl',
324
- '.jpeg': 'dataurl',
325
- '.gif': 'dataurl',
326
- },
321
+ loader: esbuildLoaderConfig,
327
322
  })
328
323
  }
329
324
 
@@ -1,4 +1,4 @@
1
- import { writeFileSync } from 'fs'
1
+ import { readFileSync, writeFileSync } from 'fs'
2
2
  import { basename, dirname, extname, join, relative, resolve } from 'path'
3
3
 
4
4
  import { Color, colorLog } from '@tamagui/cli-color'
@@ -6,7 +6,7 @@ import { getDefaultTamaguiConfig } from '@tamagui/config-default'
6
6
  import type { CLIResolvedOptions, CLIUserOptions, TamaguiOptions } from '@tamagui/types'
7
7
  import type { TamaguiInternalConfig } from '@tamagui/web'
8
8
  import esbuild from 'esbuild'
9
- import { existsSync, pathExists, readJSON, writeFile } from 'fs-extra'
9
+ import { existsSync, outputFile, pathExists, readJSON, writeFile } from 'fs-extra'
10
10
 
11
11
  import { SHOULD_DEBUG } from '../constants'
12
12
  import { requireTamaguiCore } from '../helpers/requireTamaguiCore'
@@ -24,6 +24,7 @@ import {
24
24
  generateTamaguiThemes,
25
25
  } from './generateTamaguiStudioConfig'
26
26
  import { getTamaguiConfigPathFromOptionsConfig } from './getTamaguiConfigPathFromOptionsConfig'
27
+ import { readFile } from 'fs/promises'
27
28
 
28
29
  const getFilledOptions = (propsIn: Partial<TamaguiOptions>): TamaguiOptions => ({
29
30
  // defaults
@@ -60,12 +61,24 @@ export async function loadTamagui(
60
61
  // init config
61
62
  const config = createTamagui(bundleInfo.tamaguiConfig) as any
62
63
 
63
- if (props.outputCSS && props.platform === 'web') {
64
- colorLog(Color.FgYellow, ` ➡ [tamagui] output css: ${props.outputCSS}\n`)
64
+ const { outputCSS } = props
65
+ if (outputCSS && props.platform === 'web') {
66
+ const flush = async () => {
67
+ colorLog(Color.FgYellow, ` ➡ [tamagui] output css: ${outputCSS}\n`)
68
+ await writeFile(outputCSS, css)
69
+ }
65
70
  // default to not minifying it messes up ssr parsing
66
71
  const cssOut = config.getCSS()
67
72
  const css = props.disableMinifyCSS === false ? minifyCSS(cssOut).code : cssOut
68
- await writeFile(props.outputCSS, css)
73
+ try {
74
+ if ((await readFile(outputCSS, 'utf8')) === css) {
75
+ // no change
76
+ } else {
77
+ await flush()
78
+ }
79
+ } catch {
80
+ await flush()
81
+ }
69
82
  }
70
83
  }
71
84
 
@@ -215,13 +228,27 @@ export function loadTamaguiSync({
215
228
  } satisfies TamaguiProjectInfo
216
229
 
217
230
  if (tamaguiConfig) {
218
- if (props.outputCSS) {
219
- colorLog(Color.FgYellow, ` ➡ [tamagui] output css: ${props.outputCSS}\n`)
231
+ const { outputCSS } = props
232
+ if (outputCSS) {
233
+ const flush = () => {
234
+ colorLog(Color.FgYellow, ` ➡ [tamagui] output css: ${outputCSS}\n`)
235
+ writeFileSync(outputCSS, css)
236
+ }
237
+
220
238
  const css =
221
239
  props.disableMinifyCSS === false
222
240
  ? minifyCSS(tamaguiConfig.getCSS()).code
223
241
  : tamaguiConfig.getCSS()
224
- writeFileSync(props.outputCSS, css)
242
+
243
+ try {
244
+ if (readFileSync(outputCSS, 'utf-8') === css) {
245
+ // no change
246
+ } else {
247
+ flush()
248
+ }
249
+ } catch {
250
+ flush()
251
+ }
225
252
  }
226
253
 
227
254
  generateTamaguiStudioConfigSync(props, info)
@@ -2,6 +2,7 @@ import { register } from 'esbuild-register/dist/node'
2
2
 
3
3
  import { requireTamaguiCore } from './helpers/requireTamaguiCore'
4
4
  import type { TamaguiPlatform } from './types'
5
+ import { esbuildIgnoreFilesRegex } from './extractor/bundle'
5
6
 
6
7
  const nameToPaths = {}
7
8
  const Module = require('module')
@@ -65,7 +66,7 @@ export function registerRequire(
65
66
  return compiled[path]
66
67
  }
67
68
 
68
- if (/\.(gif|jpe?g|png|svg|ttf|otf|woff2?|bmp|webp)$/i.test(path)) {
69
+ if (esbuildIgnoreFilesRegex.test(path)) {
69
70
  return {}
70
71
  }
71
72
 
@@ -1,5 +1,30 @@
1
1
  import esbuild from 'esbuild';
2
2
  import type { TamaguiPlatform } from '../types';
3
+ export declare const esbuildLoaderConfig: {
4
+ readonly '.js': "jsx";
5
+ readonly '.png': "dataurl";
6
+ readonly '.jpg': "dataurl";
7
+ readonly '.jpeg': "dataurl";
8
+ readonly '.svg': "dataurl";
9
+ readonly '.gif': "dataurl";
10
+ readonly '.webp': "dataurl";
11
+ readonly '.woff2': "dataurl";
12
+ readonly '.woff': "dataurl";
13
+ readonly '.eot': "dataurl";
14
+ readonly '.otf': "dataurl";
15
+ readonly '.ttf': "dataurl";
16
+ readonly '.mp4': "file";
17
+ readonly '.mpeg4': "file";
18
+ readonly '.mov': "file";
19
+ readonly '.avif': "file";
20
+ readonly '.wmv': "file";
21
+ readonly '.webm': "file";
22
+ readonly '.wav': "file";
23
+ readonly '.aac': "file";
24
+ readonly '.ogg': "file";
25
+ readonly '.flac': "file";
26
+ };
27
+ export declare const esbuildIgnoreFilesRegex: RegExp;
3
28
  /**
4
29
  * For internal loading of new files
5
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/extractor/bundle.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI/C;;GAEG;AAEH,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,GAAG;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,CAAA;AAmGD,wBAAsB,MAAM,CAC1B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,sDAKjC"}
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/extractor/bundle.ts"],"names":[],"mappings":"AAEA,OAAO,OAAO,MAAM,SAAS,CAAA;AAG7B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAI/C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;CAuBtB,CAAA;AAQV,eAAO,MAAM,uBAAuB,QAAsD,CAAA;AAE1F;;GAEG;AAEH,KAAK,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,GAAG;IAChE,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,8BAA8B,CAAC,EAAE,OAAO,CAAA;CACzC,CAAA;AAsFD,wBAAsB,MAAM,CAC1B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,sDAKjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bundleConfig.d.ts","sourceRoot":"","sources":["../../src/extractor/bundleConfig.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAKvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C,KAAK,WAAW,GAAG;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QACE,YAAY,EAAE,YAAY,CAAA;KAC3B,CACF,CAAA;CACF,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAgBD,eAAO,MAAM,cAAc;;;;;;;;CAMK,CAAA;AAEhC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AAQxF,wBAAgB,uBAAuB,YAMtC;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,UAAQ;;;;sBAS5E;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,cAAc;;;;eA4JvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,sBAIzE;AAqBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,UAAQ,GACnB,IAAI,GAAG,gBAAgB,EAAE,CAoI3B"}
1
+ {"version":3,"file":"bundleConfig.d.ts","sourceRoot":"","sources":["../../src/extractor/bundleConfig.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAKvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAK9C,KAAK,WAAW,GAAG;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAChB,MAAM,EACN;QACE,YAAY,EAAE,YAAY,CAAA;KAC3B,CACF,CAAA;CACF,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;IAC5C,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAgBD,eAAO,MAAM,cAAc;;;;;;;;CAMK,CAAA;AAEhC,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;AAQxF,wBAAgB,uBAAuB,YAMtC;AAED,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,UAAQ;;;;sBAS5E;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,cAAc;;;;eA4JvD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,YAAY,UAAQ,sBAIzE;AAqBD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,YAAY,UAAQ,GACnB,IAAI,GAAG,gBAAgB,EAAE,CA+H3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"loadTamagui.d.ts","sourceRoot":"","sources":["../../src/extractor/loadTamagui.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AASxF,OAAO,EACL,kBAAkB,EAInB,MAAM,gBAAgB,CAAA;AAgBvB,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAuCpC;AAiCD,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,kBA4BpD;AAGD,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,QAAQ,EACR,GAAG,OAAO,EACX,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,kBAAkB,CAiHrB;AAED,wBAAsB,UAAU,CAAC,EAC/B,IAAoB,EACpB,YAA8B,EAC9B,cAAc,EACd,IAAI,EACJ,KAAK,GACN,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6B5D;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,UAW5D;AA0BD,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,cAAc;;GAyCtE"}
1
+ {"version":3,"file":"loadTamagui.d.ts","sourceRoot":"","sources":["../../src/extractor/loadTamagui.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AASxF,OAAO,EACL,kBAAkB,EAInB,MAAM,gBAAgB,CAAA;AAiBvB,wBAAsB,WAAW,CAC/B,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAmDpC;AAiCD,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,kBA4BpD;AAGD,wBAAgB,eAAe,CAAC,EAC9B,YAAY,EACZ,QAAQ,EACR,GAAG,OAAO,EACX,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,GAAG,kBAAkB,CA+HrB;AAED,wBAAsB,UAAU,CAAC,EAC/B,IAAoB,EACpB,YAA8B,EAC9B,cAAc,EACd,IAAI,EACJ,KAAK,GACN,GAAE,OAAO,CAAC,cAAc,CAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6B5D;AAED,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,MAAM,UAW5D;AA0BD,OAAO,EAAE,kBAAkB,EAAE,CAAA;AAE7B,wBAAsB,kBAAkB,CAAC,cAAc,EAAE,cAAc;;GAyCtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"registerRequire.d.ts","sourceRoot":"","sources":["../src/registerRequire.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,eAAO,MAAM,cAAc,UAAoB,CAAA;AAc/C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAEzD;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,eAAe,EACzB,EAAE,gBAAgB,EAAE;;CAEnB;2BAsB6B,GAAG,QAAQ,MAAM;;EA2HhD"}
1
+ {"version":3,"file":"registerRequire.d.ts","sourceRoot":"","sources":["../src/registerRequire.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAM9C,eAAO,MAAM,cAAc,UAAoB,CAAA;AAc/C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAEzD;AAED,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,eAAe,EACzB,EAAE,gBAAgB,EAAE;;CAEnB;2BAsB6B,GAAG,QAAQ,MAAM;;EA2HhD"}