create-packer 1.37.2 → 1.38.2

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.
Files changed (237) hide show
  1. package/package.json +3 -2
  2. package/template/cli/.prettierignore +6 -0
  3. package/template/cli/.prettierrc +18 -0
  4. package/template/cli/bin/createTemp.d.ts +1 -0
  5. package/template/cli/bin/createTemp.js +54 -0
  6. package/template/cli/bin/index.d.ts +2 -0
  7. package/template/cli/bin/index.js +4 -0
  8. package/template/cli/bin/utils/index.d.ts +10 -0
  9. package/template/cli/bin/utils/index.js +44 -0
  10. package/template/cli/package.json +53 -47
  11. package/template/docusaurus/.prettierignore +2 -0
  12. package/template/docusaurus/src/components/HomepageFeatures/index.tsx +70 -70
  13. package/template/docusaurus/src/components/HomepageFeatures/styles.module.css +11 -11
  14. package/template/docusaurus/src/css/custom.css +30 -30
  15. package/template/docusaurus/src/pages/index.module.css +23 -23
  16. package/template/docusaurus/src/pages/index.tsx +40 -40
  17. package/template/lib/workspace/.prettierignore +6 -0
  18. package/template/lib/workspace/.prettierrc +18 -0
  19. package/template/lib/workspace/package.json +73 -72
  20. package/template/lib/workspace/packages/react/package.json +41 -40
  21. package/template/lib/workspace/packages/ts/package.json +29 -28
  22. package/template/nest/package.json +84 -84
  23. package/template/nest/src/app.controller.spec.ts +22 -22
  24. package/template/nest/src/app.controller.ts +12 -12
  25. package/template/nest/src/app.module.ts +10 -10
  26. package/template/nest/src/app.service.ts +8 -8
  27. package/template/nest/src/main.ts +10 -10
  28. package/template/nest/src/utils/transform.interceptor.ts +26 -26
  29. package/template/nest/test/app.e2e-spec.ts +24 -24
  30. package/template/web-app/next/app/globals.css +22 -22
  31. package/template/web-app/next/app/layout.tsx +18 -18
  32. package/template/web-app/next/app/page.tsx +113 -113
  33. package/template/web-app/next/package.json +47 -47
  34. package/template/web-app/react-rsbuild/.prettierignore +6 -0
  35. package/template/web-app/react-rsbuild/.prettierrc +18 -0
  36. package/template/web-app/react-rsbuild/.vscode/extensions.json +8 -8
  37. package/template/web-app/react-rsbuild/.vscode/settings.json +4 -18
  38. package/template/web-app/react-rsbuild/domain/app/app.model.ts +7 -7
  39. package/template/web-app/react-rsbuild/domain/app/app.styled.ts +3 -3
  40. package/template/web-app/react-rsbuild/domain/app/components/app-context.tsx +17 -17
  41. package/template/web-app/react-rsbuild/domain/app/components/app.tsx +24 -24
  42. package/template/web-app/react-rsbuild/domain/app/components/index.ts +1 -1
  43. package/template/web-app/react-rsbuild/domain/app/index.ts +2 -2
  44. package/template/web-app/react-rsbuild/domain/router/home/ids.ts +3 -3
  45. package/template/web-app/react-rsbuild/domain/router/home/index.ts +2 -2
  46. package/template/web-app/react-rsbuild/domain/router/home/routes.tsx +13 -13
  47. package/template/web-app/react-rsbuild/domain/router/ids.ts +6 -6
  48. package/template/web-app/react-rsbuild/domain/router/index.ts +3 -3
  49. package/template/web-app/react-rsbuild/domain/router/router.tsx +28 -28
  50. package/template/web-app/react-rsbuild/domain/router/router.types.ts +3 -3
  51. package/template/web-app/react-rsbuild/env.d.ts +28 -28
  52. package/template/web-app/react-rsbuild/main.tsx +4 -4
  53. package/template/web-app/react-rsbuild/package.json +10 -11
  54. package/template/web-app/react-rsbuild/pages/home/home.styled.ts +7 -7
  55. package/template/web-app/react-rsbuild/pages/home/home.tsx +10 -10
  56. package/template/web-app/react-rsbuild/pages/home/index.ts +1 -1
  57. package/template/web-app/react-rsbuild/pages/index.tsx +18 -18
  58. package/template/web-app/react-rsbuild/pages/not-found.tsx +3 -3
  59. package/template/web-app/react-rsbuild/rsbuild.config.ts +78 -85
  60. package/template/web-app/react-rsbuild/scripts/createChunks.ts +26 -26
  61. package/template/web-app/react-rsbuild/scripts/index.ts +1 -1
  62. package/template/web-app/react-rsbuild/shared/hooks/defineRouter/defineRouter.types.ts +33 -33
  63. package/template/web-app/react-rsbuild/shared/hooks/defineRouter/index.ts +2 -2
  64. package/template/web-app/react-rsbuild/shared/hooks/index.ts +6 -6
  65. package/template/web-app/react-rsbuild/shared/hooks/useInterval.ts +26 -26
  66. package/template/web-app/react-rsbuild/shared/hooks/useLoadingAction.ts +27 -27
  67. package/template/web-app/react-rsbuild/shared/hooks/useLowPriorityState.ts +26 -26
  68. package/template/web-app/react-rsbuild/shared/hooks/useSyncState.ts +15 -15
  69. package/template/web-app/react-rsbuild/shared/hooks/useVisible.ts +27 -27
  70. package/template/web-app/react-rsbuild/shared/service/api.ts +1 -1
  71. package/template/web-app/react-rsbuild/shared/service/home.ts +8 -8
  72. package/template/web-app/react-rsbuild/shared/service/index.ts +3 -3
  73. package/template/web-app/react-rsbuild/shared/service/request.ts +5 -5
  74. package/template/web-app/react-rsbuild/shared/theme/index.ts +1 -1
  75. package/template/web-app/react-rsbuild/shared/theme/theme.styled.ts +56 -56
  76. package/template/web-app/react-rsbuild/shared/tools/componentInstance.tsx +80 -80
  77. package/template/web-app/react-rsbuild/shared/tools/index.ts +1 -1
  78. package/template/web-app/react-rsbuild/shared/types/index.ts +1 -1
  79. package/template/web-app/react-rsbuild/shared/types/utils.ts +2 -2
  80. package/template/web-app/react-rsbuild/tsconfig.json +32 -44
  81. package/template/web-app/react-rsbuild/tsconfig.node.json +10 -14
  82. package/template/web-app/react-vite/.prettierignore +6 -0
  83. package/template/web-app/react-vite/.prettierrc +18 -0
  84. package/template/web-app/react-vite/.vscode/extensions.json +1 -1
  85. package/template/web-app/react-vite/package.json +4 -4
  86. package/template/web-app/react-webpack/.prettierignore +6 -0
  87. package/template/web-app/react-webpack/.prettierrc +18 -0
  88. package/template/web-app/react-webpack/.vscode/extensions.json +8 -8
  89. package/template/web-app/react-webpack/.vscode/settings.json +4 -18
  90. package/template/web-app/react-webpack/commitlint.config.js +1 -1
  91. package/template/web-app/react-webpack/domain/app/app.model.ts +7 -7
  92. package/template/web-app/react-webpack/domain/app/app.styled.ts +3 -3
  93. package/template/web-app/react-webpack/domain/app/components/app-context.tsx +17 -17
  94. package/template/web-app/react-webpack/domain/app/components/app.tsx +24 -24
  95. package/template/web-app/react-webpack/domain/app/components/index.ts +1 -1
  96. package/template/web-app/react-webpack/domain/app/index.ts +2 -2
  97. package/template/web-app/react-webpack/domain/router/home/ids.ts +3 -3
  98. package/template/web-app/react-webpack/domain/router/home/index.ts +2 -2
  99. package/template/web-app/react-webpack/domain/router/home/routes.tsx +13 -13
  100. package/template/web-app/react-webpack/domain/router/ids.ts +6 -6
  101. package/template/web-app/react-webpack/domain/router/index.ts +3 -3
  102. package/template/web-app/react-webpack/domain/router/router.tsx +28 -28
  103. package/template/web-app/react-webpack/domain/router/router.types.ts +3 -3
  104. package/template/web-app/react-webpack/global.d.ts +26 -26
  105. package/template/web-app/react-webpack/index.css +3 -3
  106. package/template/web-app/react-webpack/main.tsx +4 -4
  107. package/template/web-app/react-webpack/package.json +87 -87
  108. package/template/web-app/react-webpack/pages/home/home.styled.ts +7 -7
  109. package/template/web-app/react-webpack/pages/home/home.tsx +10 -10
  110. package/template/web-app/react-webpack/pages/home/index.ts +1 -1
  111. package/template/web-app/react-webpack/pages/index.tsx +18 -18
  112. package/template/web-app/react-webpack/pages/not-found.tsx +3 -3
  113. package/template/web-app/react-webpack/postcss.config.js +7 -7
  114. package/template/web-app/react-webpack/shared/hooks/defineRouter/defineRouter.types.ts +33 -33
  115. package/template/web-app/react-webpack/shared/hooks/defineRouter/index.ts +2 -2
  116. package/template/web-app/react-webpack/shared/hooks/index.ts +6 -6
  117. package/template/web-app/react-webpack/shared/hooks/useInterval.ts +26 -26
  118. package/template/web-app/react-webpack/shared/hooks/useLoadingAction.ts +27 -27
  119. package/template/web-app/react-webpack/shared/hooks/useLowPriorityState.ts +26 -26
  120. package/template/web-app/react-webpack/shared/hooks/useSyncState.ts +15 -15
  121. package/template/web-app/react-webpack/shared/hooks/useVisible.ts +27 -27
  122. package/template/web-app/react-webpack/shared/service/home.ts +8 -8
  123. package/template/web-app/react-webpack/shared/service/index.ts +2 -2
  124. package/template/web-app/react-webpack/shared/service/request.ts +5 -5
  125. package/template/web-app/react-webpack/shared/theme/index.ts +1 -1
  126. package/template/web-app/react-webpack/shared/theme/theme.styled.ts +56 -56
  127. package/template/web-app/react-webpack/shared/tools/componentInstance.tsx +78 -78
  128. package/template/web-app/react-webpack/shared/tools/index.ts +1 -1
  129. package/template/web-app/react-webpack/shared/types/index.ts +1 -1
  130. package/template/web-app/react-webpack/shared/types/utils.ts +2 -2
  131. package/template/web-app/react-webpack/tsconfig.json +27 -38
  132. package/template/web-app/react-webpack/tsconfig.node.json +9 -9
  133. package/template/web-app/solid/package.json +51 -51
  134. package/template/web-app/solid/src/app.container.tsx +12 -12
  135. package/template/web-app/solid/src/index.css +15 -15
  136. package/template/web-app/solid/src/index.tsx +15 -15
  137. package/template/web-app/solid/src/layout/index.ts +1 -1
  138. package/template/web-app/solid/src/layout/layout.container.tsx +5 -5
  139. package/template/web-app/solid/src/pages/home/home.container.tsx +5 -5
  140. package/template/web-app/solid/src/pages/home/index.ts +1 -1
  141. package/template/web-app/solid/src/pages/notFound/index.ts +1 -1
  142. package/template/web-app/solid/src/pages/notFound/notFound.container.tsx +3 -3
  143. package/template/web-app/solid/src/router/home/index.ts +2 -2
  144. package/template/web-app/solid/src/router/home/paths.ts +3 -3
  145. package/template/web-app/solid/src/router/home/routes.tsx +12 -12
  146. package/template/web-app/solid/src/router/index.ts +2 -2
  147. package/template/web-app/solid/src/router/paths.ts +5 -5
  148. package/template/web-app/solid/src/router/routes.ts +16 -16
  149. package/template/web-app/svelte/.prettierignore +2 -0
  150. package/template/web-app/svelte/.prettierrc +14 -14
  151. package/template/web-app/svelte/.svelte-kit/ambient.d.ts +177 -153
  152. package/template/web-app/svelte/.svelte-kit/generated/client/app.js +23 -19
  153. package/template/web-app/svelte/.svelte-kit/generated/client/matchers.js +1 -1
  154. package/template/web-app/svelte/.svelte-kit/generated/client/nodes/0.js +1 -1
  155. package/template/web-app/svelte/.svelte-kit/generated/client/nodes/1.js +1 -1
  156. package/template/web-app/svelte/.svelte-kit/generated/client/nodes/2.js +1 -1
  157. package/template/web-app/svelte/.svelte-kit/generated/root.svelte +62 -56
  158. package/template/web-app/svelte/.svelte-kit/generated/server/internal.js +61 -30
  159. package/template/web-app/svelte/.svelte-kit/non-ambient.d.ts +23 -0
  160. package/template/web-app/svelte/.svelte-kit/tsconfig.json +32 -39
  161. package/template/web-app/svelte/.svelte-kit/types/route_meta_data.json +3 -3
  162. package/template/web-app/svelte/.svelte-kit/types/src/routes/$types.d.ts +35 -20
  163. package/template/web-app/svelte/.vscode/extensions.json +8 -8
  164. package/template/web-app/svelte/commitlint.config.cjs +1 -1
  165. package/template/web-app/svelte/package.json +55 -55
  166. package/template/web-app/svelte/scripts/createChunks.ts +26 -26
  167. package/template/web-app/svelte/scripts/index.ts +1 -1
  168. package/template/web-app/svelte/src/app.d.ts +12 -12
  169. package/template/web-app/svelte/src/routes/+page.svelte +2 -2
  170. package/template/web-app/svelte/svelte.config.js +17 -17
  171. package/template/web-app/svelte/tsconfig.json +21 -21
  172. package/template/web-app/svelte/vite-env.d.ts +11 -11
  173. package/template/web-app/svelte/vite.config.ts +55 -55
  174. package/template/web-app/vue/.prettierignore +6 -0
  175. package/template/web-app/vue/.prettierrc +18 -0
  176. package/template/web-app/vue/.vscode/extensions.json +1 -1
  177. package/template/web-app/vue/domain/app/components/app.vue +18 -18
  178. package/template/web-app/vue/package.json +4 -4
  179. package/template/web-app/vue/pages/home/home.vue +16 -16
  180. package/template/web-app/vue/pages/index.vue +3 -3
  181. package/template/web-app/vue/pages/not-found.vue +3 -3
  182. package/template/web-extension/.prettierignore +6 -0
  183. package/template/web-extension/.prettierrc +18 -0
  184. package/template/web-extension/.vscode/extensions.json +8 -8
  185. package/template/web-extension/.vscode/settings.json +4 -18
  186. package/template/web-extension/.wxt/eslintrc-auto-import.json +19 -19
  187. package/template/web-extension/.wxt/tsconfig.json +24 -27
  188. package/template/web-extension/.wxt/types/globals.d.ts +10 -10
  189. package/template/web-extension/.wxt/types/i18n.d.ts +80 -74
  190. package/template/web-extension/.wxt/types/imports.d.ts +17 -17
  191. package/template/web-extension/.wxt/types/paths.d.ts +12 -12
  192. package/template/web-extension/entrypoints/background/index.ts +1 -1
  193. package/template/web-extension/entrypoints/content/constants/base.ts +1 -1
  194. package/template/web-extension/entrypoints/content/constants/index.ts +1 -1
  195. package/template/web-extension/entrypoints/content/domain/app/index.ts +1 -1
  196. package/template/web-extension/entrypoints/content/domain/app/tools/index.ts +1 -1
  197. package/template/web-extension/entrypoints/content/domain/app/tools/insertApp.tsx +59 -55
  198. package/template/web-extension/entrypoints/content/index.tsx +12 -12
  199. package/template/web-extension/entrypoints/content/modules/common/common.tsx +10 -10
  200. package/template/web-extension/entrypoints/content/modules/common/index.ts +2 -2
  201. package/template/web-extension/entrypoints/content/modules/common/insert.tsx +9 -9
  202. package/template/web-extension/entrypoints/content/modules/index.ts +1 -1
  203. package/template/web-extension/entrypoints/popup/index.html +0 -1
  204. package/template/web-extension/entrypoints/popup/main.tsx +14 -14
  205. package/template/web-extension/entrypoints/popup/popup.container.tsx +3 -3
  206. package/template/web-extension/package.json +86 -86
  207. package/template/web-extension/shared/background/index.ts +1 -1
  208. package/template/web-extension/shared/background/message.ts +11 -11
  209. package/template/web-extension/shared/components/app-context.tsx +14 -14
  210. package/template/web-extension/shared/components/index.ts +1 -1
  211. package/template/web-extension/shared/content/index.ts +1 -1
  212. package/template/web-extension/shared/content/message.ts +15 -15
  213. package/template/web-extension/shared/hooks/index.ts +2 -2
  214. package/template/web-extension/shared/hooks/useSyncState.ts +15 -15
  215. package/template/web-extension/shared/hooks/useVisible.ts +27 -27
  216. package/template/web-extension/shared/popup/index.ts +1 -1
  217. package/template/web-extension/shared/popup/message.ts +12 -12
  218. package/template/web-extension/shared/service/index.ts +1 -1
  219. package/template/web-extension/shared/service/request.ts +5 -5
  220. package/template/web-extension/shared/styles/global.styled.ts +8 -8
  221. package/template/web-extension/shared/styles/index.ts +2 -2
  222. package/template/web-extension/shared/styles/theme.styled.ts +56 -56
  223. package/template/web-extension/shared/tools/index.ts +1 -1
  224. package/template/web-extension/shared/tools/message.ts +80 -80
  225. package/template/web-extension/shared/types/index.ts +1 -1
  226. package/template/web-extension/shared/types/utils.ts +3 -3
  227. package/template/web-extension/tsconfig.json +32 -32
  228. package/template/web-extension/tsconfig.node.json +10 -10
  229. package/template/web-extension/vite-env.d.ts +19 -19
  230. package/template/web-extension/wxt.config.ts +50 -46
  231. package/template/cli/biome.json +0 -40
  232. package/template/lib/workspace/biome.json +0 -40
  233. package/template/web-app/react-rsbuild/biome.json +0 -40
  234. package/template/web-app/react-vite/biome.json +0 -40
  235. package/template/web-app/react-webpack/biome.json +0 -40
  236. package/template/web-app/vue/biome.json +0 -40
  237. package/template/web-extension/biome.json +0 -40
@@ -1,33 +1,33 @@
1
- import { FunctionComponent, ReactNode } from 'react'
2
- import { RouteObject } from 'react-router-dom'
3
-
4
- export type routeType = Omit<RouteObject, 'children' | 'id'> & {
5
- id: string
6
- meta?: {
7
- title?: string
8
- /** 只在当前路由才显示的小提示 */
9
- tip?: string
10
- }
11
- /** 静态配置,便于回退 */
12
- unauthorizedOrigin?: boolean
13
- /** 动态使用,用于程序校验 */
14
- unauthorized?: boolean
15
- query?: () => Record<string, any>
16
- menu?: {
17
- hidden?: boolean
18
- icon?: FunctionComponent
19
- label?: ReactNode
20
- }
21
- children?: routeType[]
22
- }
23
-
24
- export type editableRouteType = Omit<routeType, 'element' | 'errorElement' | 'children'>
25
-
26
- export interface routerFactoryArgType {
27
- basename: string
28
- routes: routeType[]
29
- }
30
-
31
- export type routeByIdType = Omit<routeType, 'children'> & {
32
- pos: string
33
- }
1
+ import { FunctionComponent, ReactNode } from 'react'
2
+ import { RouteObject } from 'react-router-dom'
3
+
4
+ export type routeType = Omit<RouteObject, 'children' | 'id'> & {
5
+ id: string
6
+ meta?: {
7
+ title?: string
8
+ /** 只在当前路由才显示的小提示 */
9
+ tip?: string
10
+ }
11
+ /** 静态配置,便于回退 */
12
+ unauthorizedOrigin?: boolean
13
+ /** 动态使用,用于程序校验 */
14
+ unauthorized?: boolean
15
+ query?: () => Record<string, any>
16
+ menu?: {
17
+ hidden?: boolean
18
+ icon?: FunctionComponent
19
+ label?: ReactNode
20
+ }
21
+ children?: routeType[]
22
+ }
23
+
24
+ export type editableRouteType = Omit<routeType, 'element' | 'errorElement' | 'children'>
25
+
26
+ export interface routerFactoryArgType {
27
+ basename: string
28
+ routes: routeType[]
29
+ }
30
+
31
+ export type routeByIdType = Omit<routeType, 'children'> & {
32
+ pos: string
33
+ }
@@ -1,2 +1,2 @@
1
- export { default as defineRouter } from './deineRouter'
2
- export * from './defineRouter.types'
1
+ export { default as defineRouter } from './deineRouter'
2
+ export * from './defineRouter.types'
@@ -1,6 +1,6 @@
1
- export { default as useLoadingAction } from './useLoadingAction'
2
- export { default as useInterval } from './useInterval'
3
- export { default as useVisible } from './useVisible'
4
- export { default as useLowPriorityState } from './useLowPriorityState'
5
- export * from './useSyncState'
6
- export * from './defineRouter'
1
+ export { default as useLoadingAction } from './useLoadingAction'
2
+ export { default as useInterval } from './useInterval'
3
+ export { default as useVisible } from './useVisible'
4
+ export { default as useLowPriorityState } from './useLowPriorityState'
5
+ export * from './useSyncState'
6
+ export * from './defineRouter'
@@ -1,26 +1,26 @@
1
- import { useState } from 'react'
2
- import { useInterval as useRUInterval } from 'react-use'
3
-
4
- interface actionsType {
5
- start: () => void
6
- stop: () => void
7
- }
8
- export default function useInterval(
9
- cb: (actions: actionsType) => Promise<void> | void,
10
- delay: number
11
- ): actionsType {
12
- const [startInterval, setStartInterval] = useState(false)
13
- const start: actionsType['start'] = () => {
14
- setStartInterval(true)
15
- }
16
- const stop: actionsType['stop'] = () => {
17
- setStartInterval(false)
18
- }
19
- useRUInterval(
20
- async () => {
21
- cb({ start, stop })
22
- },
23
- startInterval ? delay : null
24
- )
25
- return { start, stop }
26
- }
1
+ import { useState } from 'react'
2
+ import { useInterval as useRUInterval } from 'react-use'
3
+
4
+ interface actionsType {
5
+ start: () => void
6
+ stop: () => void
7
+ }
8
+ export default function useInterval(
9
+ cb: (actions: actionsType) => Promise<void> | void,
10
+ delay: number
11
+ ): actionsType {
12
+ const [startInterval, setStartInterval] = useState(false)
13
+ const start: actionsType['start'] = () => {
14
+ setStartInterval(true)
15
+ }
16
+ const stop: actionsType['stop'] = () => {
17
+ setStartInterval(false)
18
+ }
19
+ useRUInterval(
20
+ async () => {
21
+ cb({ start, stop })
22
+ },
23
+ startInterval ? delay : null
24
+ )
25
+ return { start, stop }
26
+ }
@@ -1,27 +1,27 @@
1
- import { useCallback, useState, DependencyList, useRef } from 'react'
2
-
3
- export default function useLoadingAction<C extends (...arg: any) => Promise<any> | any>(
4
- callback: C,
5
- deps: DependencyList,
6
- debounce = true
7
- ) {
8
- const [loading, setLoading] = useState(false)
9
- const loadingSync = useRef(loading)
10
- function $setLoading(loading: boolean) {
11
- setLoading(loading)
12
- loadingSync.current = loading
13
- }
14
- const action = useCallback(async (...arg: any) => {
15
- if (debounce && loadingSync.current) {
16
- return
17
- }
18
- try {
19
- $setLoading(true)
20
- return await callback(...arg)
21
- } finally {
22
- $setLoading(false)
23
- }
24
- }, deps) as C
25
-
26
- return [loading, action] as const
27
- }
1
+ import { useCallback, useState, DependencyList, useRef } from 'react'
2
+
3
+ export default function useLoadingAction<C extends (...arg: any) => Promise<any> | any>(
4
+ callback: C,
5
+ deps: DependencyList,
6
+ debounce = true
7
+ ) {
8
+ const [loading, setLoading] = useState(false)
9
+ const loadingSync = useRef(loading)
10
+ function $setLoading(loading: boolean) {
11
+ setLoading(loading)
12
+ loadingSync.current = loading
13
+ }
14
+ const action = useCallback(async (...arg: any) => {
15
+ if (debounce && loadingSync.current) {
16
+ return
17
+ }
18
+ try {
19
+ $setLoading(true)
20
+ return await callback(...arg)
21
+ } finally {
22
+ $setLoading(false)
23
+ }
24
+ }, deps) as C
25
+
26
+ return [loading, action] as const
27
+ }
@@ -1,26 +1,26 @@
1
- import { useEffect, useState, useTransition, DependencyList } from 'react'
2
-
3
- /**
4
- *
5
- * @param callback
6
- * @param watches If set, it is autorun callback
7
- * @returns
8
- */
9
- export default function useLowPriorityState<V>(callback: () => V, watches?: DependencyList) {
10
- const [value, setValue] = useState<V>(callback)
11
- const [loading, startTransition] = useTransition()
12
-
13
- function startLoad() {
14
- startTransition(() => {
15
- setValue(callback())
16
- })
17
- }
18
-
19
- useEffect(() => {
20
- if (watches) {
21
- startLoad()
22
- }
23
- }, watches)
24
-
25
- return [value, { loading, startLoad }] as const
26
- }
1
+ import { useEffect, useState, useTransition, DependencyList } from 'react'
2
+
3
+ /**
4
+ *
5
+ * @param callback
6
+ * @param watches If set, it is autorun callback
7
+ * @returns
8
+ */
9
+ export default function useLowPriorityState<V>(callback: () => V, watches?: DependencyList) {
10
+ const [value, setValue] = useState<V>(callback)
11
+ const [loading, startTransition] = useTransition()
12
+
13
+ function startLoad() {
14
+ startTransition(() => {
15
+ setValue(callback())
16
+ })
17
+ }
18
+
19
+ useEffect(() => {
20
+ if (watches) {
21
+ startLoad()
22
+ }
23
+ }, watches)
24
+
25
+ return [value, { loading, startLoad }] as const
26
+ }
@@ -1,15 +1,15 @@
1
- import { useRef, useState, Dispatch, SetStateAction } from 'react'
2
- import { isFunction } from 'lodash-es'
3
-
4
- export function useSyncState<S>(initialState: S | (() => S)) {
5
- const [state, setState] = useState(initialState)
6
- const syncState = useRef<S>(state)
7
-
8
- const $setState: Dispatch<SetStateAction<S>> = newState => {
9
- const $newState = isFunction(newState) ? newState(state) : newState
10
- setState($newState)
11
- syncState.current = $newState
12
- }
13
-
14
- return [syncState, state, $setState] as const
15
- }
1
+ import { useRef, useState, Dispatch, SetStateAction } from 'react'
2
+ import { isFunction } from 'lodash-es'
3
+
4
+ export function useSyncState<S>(initialState: S | (() => S)) {
5
+ const [state, setState] = useState(initialState)
6
+ const syncState = useRef<S>(state)
7
+
8
+ const $setState: Dispatch<SetStateAction<S>> = newState => {
9
+ const $newState = isFunction(newState) ? newState(state) : newState
10
+ setState($newState)
11
+ syncState.current = $newState
12
+ }
13
+
14
+ return [syncState, state, $setState] as const
15
+ }
@@ -1,27 +1,27 @@
1
- import { useState } from 'react'
2
- import { isFunction } from 'lodash-es'
3
-
4
- export interface useVisibleConfigType {
5
- defaultVisible?: boolean
6
- onBeforeShow?: () => Promise<boolean | void>
7
- onBeforeHide?: () => Promise<boolean | void>
8
- }
9
- export default function useVisible(config?: useVisibleConfigType) {
10
- const [visible, setVisible] = useState(config?.defaultVisible ?? false)
11
- const onShow = async () => {
12
- let isShow: boolean | void = true
13
- if (isFunction(config?.onBeforeShow)) {
14
- isShow = await config?.onBeforeShow?.()
15
- }
16
- setVisible(isShow !== false)
17
- }
18
- const onClose = async () => {
19
- let isHide: boolean | void = true
20
- if (isFunction(config?.onBeforeHide)) {
21
- isHide = await config?.onBeforeHide?.()
22
- }
23
- setVisible(isHide === false)
24
- }
25
-
26
- return { visible, onShow, onClose }
27
- }
1
+ import { useState } from 'react'
2
+ import { isFunction } from 'lodash-es'
3
+
4
+ export interface useVisibleConfigType {
5
+ defaultVisible?: boolean
6
+ onBeforeShow?: () => Promise<boolean | void>
7
+ onBeforeHide?: () => Promise<boolean | void>
8
+ }
9
+ export default function useVisible(config?: useVisibleConfigType) {
10
+ const [visible, setVisible] = useState(config?.defaultVisible ?? false)
11
+ const onShow = async () => {
12
+ let isShow: boolean | void = true
13
+ if (isFunction(config?.onBeforeShow)) {
14
+ isShow = await config?.onBeforeShow?.()
15
+ }
16
+ setVisible(isShow !== false)
17
+ }
18
+ const onClose = async () => {
19
+ let isHide: boolean | void = true
20
+ if (isFunction(config?.onBeforeHide)) {
21
+ isHide = await config?.onBeforeHide?.()
22
+ }
23
+ setVisible(isHide === false)
24
+ }
25
+
26
+ return { visible, onShow, onClose }
27
+ }
@@ -1 +1 @@
1
- export const HOME_DATA = '/homeData'
1
+ export const HOME_DATA = '/homeData'
@@ -1,8 +1,8 @@
1
- import { useQuery } from '@tanstack/react-query'
2
-
3
- export function useHomeQuery() {
4
- return useQuery({
5
- queryKey: ['home_data'],
6
- queryFn: () => [{ name: '1' }]
7
- })
8
- }
1
+ import { useQuery } from '@tanstack/react-query'
2
+
3
+ export function useHomeQuery() {
4
+ return useQuery({
5
+ queryKey: ['home_data'],
6
+ queryFn: () => [{ name: '1' }]
7
+ })
8
+ }
@@ -1,3 +1,3 @@
1
- export * from './request'
2
- export * as API from './api'
3
- export * from './home'
1
+ export * from './request'
2
+ export * as API from './api'
3
+ export * from './home'
@@ -1,5 +1,5 @@
1
- import axios from 'axios'
2
-
3
- export const request = axios.create({
4
- baseURL: import.meta.env.PUBLIC_BASE_URL + import.meta.env.PUBLIC_API_HOST
5
- })
1
+ import axios from 'axios'
2
+
3
+ export const request = axios.create({
4
+ baseURL: import.meta.env.PUBLIC_BASE_URL + import.meta.env.PUBLIC_API_HOST
5
+ })
@@ -1 +1 @@
1
- export * from './theme.styled'
1
+ export * from './theme.styled'
@@ -1,56 +1,56 @@
1
- import { CSSProperties } from 'react'
2
- import { AnyFunc } from '1k-types'
3
- import { isString } from 'lodash-es'
4
-
5
- export const theme = {
6
- tools: {
7
- ellipsis: () => ({
8
- overflow: 'hidden',
9
- textOverflow: 'ellipsis',
10
- whiteSpace: 'nowrap'
11
- }),
12
- lineClamp: (n: number) => ({
13
- '-webkit-line-clamp': `${n}`,
14
- '-webkit-box-orient': 'vertical',
15
- overflow: 'hidden',
16
- display: '-webkit-box'
17
- }),
18
- size: (s: string) => ({ width: s, height: s }),
19
- py: (s: string) => ({ paddingTop: s, paddingBottom: s }),
20
- px: (s: string) => ({ paddingLeft: s, paddingRight: s }),
21
- my: (s: string) => ({ marginTop: s, marginBottom: s }),
22
- mx: (s: string) => ({ marginLeft: s, marginRight: s }),
23
- flex: (
24
- align: CSSProperties['alignItems'],
25
- justify: CSSProperties['justifyContent'],
26
- vertical?: boolean
27
- ) => {
28
- return {
29
- display: 'flex',
30
- alignItems: align,
31
- justifyContent: justify,
32
- flexDirection: vertical ? 'column' : 'row'
33
- } satisfies CSSProperties
34
- },
35
- /** 数字为元素数量,字符串为对应css的值 */
36
- grid: {
37
- grid: (rows: number | string, cols: number | string, gap?: number) => ({
38
- display: 'grid',
39
- gridTemplateRows: isString(rows) ? rows : `repeat(${rows}, minmax(0, 1fr))`,
40
- gridTemplateColumns: isString(cols) ? cols : `repeat(${cols}, minmax(0, 1fr))`,
41
- gap: gap ? `${gap}px` : void 0
42
- }),
43
- rows: (rows: number | string, gap?: number) => ({
44
- display: 'grid',
45
- gridTemplateRows: isString(rows) ? rows : `repeat(${rows}, minmax(0, 1fr))`,
46
- rowGap: gap ? `${gap}px` : void 0
47
- }),
48
- cols: (cols: number | string, gap?: number) => ({
49
- display: 'grid',
50
- gridTemplateColumns: isString(cols) ? cols : `repeat(${cols}, minmax(0, 1fr))`,
51
- columnGap: gap ? `${gap}px` : void 0
52
- })
53
- } satisfies Record<string, AnyFunc<CSSProperties>>
54
- }
55
- }
56
- export type themeType = typeof theme
1
+ import { CSSProperties } from 'react'
2
+ import { AnyFunc } from '1k-types'
3
+ import { isString } from 'lodash-es'
4
+
5
+ export const theme = {
6
+ tools: {
7
+ ellipsis: () => ({
8
+ overflow: 'hidden',
9
+ textOverflow: 'ellipsis',
10
+ whiteSpace: 'nowrap'
11
+ }),
12
+ lineClamp: (n: number) => ({
13
+ '-webkit-line-clamp': `${n}`,
14
+ '-webkit-box-orient': 'vertical',
15
+ overflow: 'hidden',
16
+ display: '-webkit-box'
17
+ }),
18
+ size: (s: string) => ({ width: s, height: s }),
19
+ py: (s: string) => ({ paddingTop: s, paddingBottom: s }),
20
+ px: (s: string) => ({ paddingLeft: s, paddingRight: s }),
21
+ my: (s: string) => ({ marginTop: s, marginBottom: s }),
22
+ mx: (s: string) => ({ marginLeft: s, marginRight: s }),
23
+ flex: (
24
+ align: CSSProperties['alignItems'],
25
+ justify: CSSProperties['justifyContent'],
26
+ vertical?: boolean
27
+ ) => {
28
+ return {
29
+ display: 'flex',
30
+ alignItems: align,
31
+ justifyContent: justify,
32
+ flexDirection: vertical ? 'column' : 'row'
33
+ } satisfies CSSProperties
34
+ },
35
+ /** 数字为元素数量,字符串为对应css的值 */
36
+ grid: {
37
+ grid: (rows: number | string, cols: number | string, gap?: number) => ({
38
+ display: 'grid',
39
+ gridTemplateRows: isString(rows) ? rows : `repeat(${rows}, minmax(0, 1fr))`,
40
+ gridTemplateColumns: isString(cols) ? cols : `repeat(${cols}, minmax(0, 1fr))`,
41
+ gap: gap ? `${gap}px` : void 0
42
+ }),
43
+ rows: (rows: number | string, gap?: number) => ({
44
+ display: 'grid',
45
+ gridTemplateRows: isString(rows) ? rows : `repeat(${rows}, minmax(0, 1fr))`,
46
+ rowGap: gap ? `${gap}px` : void 0
47
+ }),
48
+ cols: (cols: number | string, gap?: number) => ({
49
+ display: 'grid',
50
+ gridTemplateColumns: isString(cols) ? cols : `repeat(${cols}, minmax(0, 1fr))`,
51
+ columnGap: gap ? `${gap}px` : void 0
52
+ })
53
+ } satisfies Record<string, AnyFunc<CSSProperties>>
54
+ }
55
+ }
56
+ export type themeType = typeof theme
@@ -1,80 +1,80 @@
1
- import {
2
- forwardRef,
3
- ForwardRefExoticComponent,
4
- FunctionComponent,
5
- PropsWithChildren,
6
- PropsWithoutRef,
7
- RefAttributes,
8
- useImperativeHandle,
9
- useRef,
10
- useState
11
- } from 'react'
12
- import { createRoot } from 'react-dom/client'
13
-
14
- const instanceMap: Record<string, { pending: Promise<any>; instance: any }> = {}
15
-
16
- export interface refsType<P> {
17
- $setProps: (newProps: P) => void
18
- $updateProps: (newProps: Partial<P>) => void
19
- }
20
-
21
- export function create(Context?: FunctionComponent<PropsWithChildren<any>>) {
22
- return async function <P extends Record<string, any>, Refs extends Record<string, any>>(
23
- key: string,
24
- Component: ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<Refs>>,
25
- props?: P
26
- ) {
27
- let current = instanceMap[key]
28
- if (!current) {
29
- const div = document.createElement('div')
30
- document.body.appendChild(div)
31
- const ApiComponent = forwardRef<Refs & refsType<P>>((__, refs) => {
32
- const ref = useRef<Refs>(null)
33
- const [state, setState] = useState<Partial<P>>(props || {})
34
-
35
- useImperativeHandle(refs, () => {
36
- return {
37
- $setProps: newProps => {
38
- setState(() => newProps)
39
- },
40
- $updateProps: newProps => {
41
- if (newProps) {
42
- setState(state => ({ ...state, ...newProps }))
43
- }
44
- },
45
- ...ref.current
46
- } as Refs & refsType<P>
47
- })
48
- if (Context) {
49
- return (
50
- <Context>
51
- <Component ref={ref} {...(state as any)} />
52
- </Context>
53
- )
54
- }
55
- return <Component ref={ref} {...(state as any)} />
56
- })
57
- current = instanceMap[key] = {
58
- instance: void 0,
59
- pending: new Promise<void>(resolve => {
60
- createRoot(div).render(
61
- (
62
- <ApiComponent
63
- ref={instance => {
64
- current.instance = instanceMap[key].instance = instance!
65
- resolve()
66
- }}
67
- />
68
- ) as never
69
- )
70
- })
71
- }
72
- }
73
- await current.pending
74
- props && current.instance.$setProps(props)
75
- // Delay return to avoid sync issue
76
- // ------------------------------------------------------------------------
77
- await new Promise(resolve => setTimeout(resolve))
78
- return current.instance as Refs & refsType<P>
79
- }
80
- }
1
+ import {
2
+ forwardRef,
3
+ ForwardRefExoticComponent,
4
+ FunctionComponent,
5
+ PropsWithChildren,
6
+ PropsWithoutRef,
7
+ RefAttributes,
8
+ useImperativeHandle,
9
+ useRef,
10
+ useState
11
+ } from 'react'
12
+ import { createRoot } from 'react-dom/client'
13
+
14
+ const instanceMap: Record<string, { pending: Promise<any>; instance: any }> = {}
15
+
16
+ export interface refsType<P> {
17
+ $setProps: (newProps: P) => void
18
+ $updateProps: (newProps: Partial<P>) => void
19
+ }
20
+
21
+ export function create(Context?: FunctionComponent<PropsWithChildren<any>>) {
22
+ return async function <P extends Record<string, any>, Refs extends Record<string, any>>(
23
+ key: string,
24
+ Component: ForwardRefExoticComponent<PropsWithoutRef<P> & RefAttributes<Refs>>,
25
+ props?: P
26
+ ) {
27
+ let current = instanceMap[key]
28
+ if (!current) {
29
+ const div = document.createElement('div')
30
+ document.body.appendChild(div)
31
+ const ApiComponent = forwardRef<Refs & refsType<P>>((__, refs) => {
32
+ const ref = useRef<Refs>(null)
33
+ const [state, setState] = useState<Partial<P>>(props || {})
34
+
35
+ useImperativeHandle(refs, () => {
36
+ return {
37
+ $setProps: newProps => {
38
+ setState(() => newProps)
39
+ },
40
+ $updateProps: newProps => {
41
+ if (newProps) {
42
+ setState(state => ({ ...state, ...newProps }))
43
+ }
44
+ },
45
+ ...ref.current
46
+ } as Refs & refsType<P>
47
+ })
48
+ if (Context) {
49
+ return (
50
+ <Context>
51
+ <Component ref={ref} {...(state as any)} />
52
+ </Context>
53
+ )
54
+ }
55
+ return <Component ref={ref} {...(state as any)} />
56
+ })
57
+ current = instanceMap[key] = {
58
+ instance: void 0,
59
+ pending: new Promise<void>(resolve => {
60
+ createRoot(div).render(
61
+ (
62
+ <ApiComponent
63
+ ref={instance => {
64
+ current.instance = instanceMap[key].instance = instance!
65
+ resolve()
66
+ }}
67
+ />
68
+ ) as never
69
+ )
70
+ })
71
+ }
72
+ }
73
+ await current.pending
74
+ props && current.instance.$setProps(props)
75
+ // Delay return to avoid sync issue
76
+ // ------------------------------------------------------------------------
77
+ await new Promise(resolve => setTimeout(resolve))
78
+ return current.instance as Refs & refsType<P>
79
+ }
80
+ }