@moneko/react 0.0.1 → 0.0.3

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/base.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "compilerOptions": {
3
+ "downlevelIteration": true,
4
+ "jsx": "react",
5
+ "isolatedModules": true,
6
+ "strict": true,
7
+ "noUnusedLocals": true,
8
+ "noUnusedParameters": true,
9
+ "noImplicitReturns": true,
10
+ "noFallthroughCasesInSwitch": true,
11
+ "moduleResolution": "node",
12
+ "esModuleInterop": true,
13
+ "resolveJsonModule": true,
14
+ "experimentalDecorators": true,
15
+ "emitDecoratorMetadata": true,
16
+ "forceConsistentCasingInFileNames": true,
17
+ "skipLibCheck": true,
18
+ "target": "ESNext",
19
+ "module": "ESNext",
20
+ "declaration": true,
21
+ "emitDeclarationOnly": true,
22
+ "removeComments": false,
23
+ "preserveConstEnums": true,
24
+ "sourceMap": false,
25
+ "newLine": "lf",
26
+ "listEmittedFiles": false,
27
+ "listFiles": false,
28
+ "noImplicitAny": true,
29
+ "noImplicitThis": true,
30
+ "alwaysStrict": true,
31
+ "traceResolution": false
32
+ }
33
+ }
package/env.d.ts ADDED
@@ -0,0 +1,235 @@
1
+ declare module '*.less';
2
+ declare module '*.css';
3
+ declare module '*.js';
4
+ declare module '*.jsx';
5
+ declare module '*.cjs';
6
+ declare module '*.mjs';
7
+ declare module '*.json';
8
+ declare module '*.ts';
9
+ declare module '*.png';
10
+ declare module '*.svg';
11
+ declare module '*.woff2';
12
+ declare module './index.less' {
13
+ const styles: { readonly [key: string]: string };
14
+
15
+ export default styles;
16
+ }
17
+
18
+ declare module '*.mdx' {
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ let MDXComponent: (props: any) => JSX.Element;
21
+
22
+ export default MDXComponent;
23
+ }
24
+
25
+ declare module '*?raw' {
26
+ export default string;
27
+ }
28
+ declare module '@app/docs' {
29
+ import { ReactNode, ReactNode } from 'react';
30
+
31
+ interface ApiEntry {
32
+ [key: string]: (() => ReactNode)[];
33
+ }
34
+ const entry: ApiEntry;
35
+
36
+ export default entry;
37
+ }
38
+ declare module '@app' {
39
+ interface App {
40
+ /** 应用名称 */
41
+ name: string;
42
+ /** 应用描述 */
43
+ description: string;
44
+ /** 应用版本 */
45
+ version: string;
46
+ /** 应用类型 */
47
+ type: 'mobile' | 'site' | 'backstage' | 'micro' | 'library';
48
+ /** 开发者 */
49
+ author: {
50
+ name: string;
51
+ url?: string;
52
+ email?: string;
53
+ };
54
+ /** 存储库 */
55
+ repository: {
56
+ type?: string;
57
+ url?: string;
58
+ directory?: string;
59
+ };
60
+ /** 路由模式 */
61
+ routerMode: 'hash' | 'browser' | 'memory';
62
+ /** 根路由 */
63
+ base: string;
64
+ /** 设计尺寸 */
65
+ designSize: number;
66
+ /** 本地化 */
67
+ locales: boolean;
68
+ /** 渲染模式 */
69
+ mode: 'ssr' | 'csr';
70
+ prefixCls?: string;
71
+ iconPrefixCls?: string;
72
+ theme?: Theme;
73
+ }
74
+ const app: App;
75
+
76
+ export default app;
77
+ }
78
+ declare const layoutSider:
79
+ | false
80
+ | {
81
+ theme?: 'light' | 'dark';
82
+ breakpoint?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
83
+ };
84
+
85
+ declare module '@app/routes' {
86
+ export interface RouteConfig {
87
+ /** 菜单id */
88
+ key?: string;
89
+ value?: string;
90
+ path: string;
91
+ /** 菜单图标 */
92
+ icon?: string;
93
+ dynamicTitle?: string;
94
+ /** 菜单名 */
95
+ label?: ReactNode | null;
96
+ hideMenu?: boolean;
97
+ hideTab?: boolean;
98
+ onlyLogin?: boolean;
99
+ /** 菜单父id */
100
+ parentId?: string;
101
+ /** 可否关闭标签 */
102
+ closable?: boolean;
103
+ props?: {
104
+ path: string;
105
+ [key: string]: Any;
106
+ };
107
+ meta?: Record<string, string | number | boolean>;
108
+ /** 子菜单 */
109
+ children?: RouteConfig[];
110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
+ [key: string]: any;
112
+ }
113
+ const routes: RouteConfig[];
114
+
115
+ export default routes;
116
+ }
117
+ declare module '@app/example' {
118
+ export interface ExampleModule {
119
+ codes: Record<string, string>;
120
+ title?: string;
121
+ description?: string;
122
+ col?: string;
123
+ order?: number;
124
+ [key: string]: unknown;
125
+ }
126
+ const example: Record<string, ExampleModule[]>;
127
+
128
+ export default example;
129
+ }
130
+ declare module '@app/coverage' {
131
+ export type CoverageType = {
132
+ /** 语句(statement coverage) */
133
+ statements: string;
134
+ /** 语句覆盖: 是不是每个语句都执行了 */
135
+ coveredstatements: string;
136
+ /** 条件(branch coverage) */
137
+ conditionals: string;
138
+ /** 条件覆盖: 是不是每个条件代码块都执行了 */
139
+ coveredconditionals: string;
140
+ /** 函数(function coverage) */
141
+ methods: string;
142
+ /** 函数覆盖: 是不是每个函数都调用了 */
143
+ coveredmethods: string;
144
+ };
145
+ export type ProjectCoverageType = {
146
+ /** 元素 */
147
+ elements: string;
148
+ /** 覆盖元素 */
149
+ coveredelements: string;
150
+ complexity: string;
151
+ loc: string;
152
+ ncloc: string;
153
+ /** 经过测试的组件 */
154
+ packages: string;
155
+ /** 经过测试的文件 */
156
+ files: string;
157
+ /** 经过测试的类 */
158
+ classes: string;
159
+ };
160
+ const coverage: Record<string, CoverageType & Partial<ProjectCoverageType>>;
161
+
162
+ export default coverage;
163
+ }
164
+ declare module '@app/locales' {
165
+ import type { SetStoreFunction } from 'solid-js/store';
166
+ export type LocaleConfig = {
167
+ /** 语言名称 (未设置时使用文件名)*/
168
+ language?: string;
169
+ /** 描述 */
170
+ title: string;
171
+ /** Icon */
172
+ icon?: string;
173
+ /** 翻译字典 */
174
+ translation: Record<string, string>;
175
+ };
176
+ type LocaleConfigMap = Record<string, Locale>;
177
+ export type InterpolationType<T extends string> = {
178
+ [K in T]?: string | number | symbol | boolean;
179
+ };
180
+ export interface Locale extends LocaleConfig {
181
+ language: string;
182
+ }
183
+ /** 获取当前项目的语言列表 */
184
+ export const locales: Pick<Locale, 'language' | 'icon' | 'title'>[] = [];
185
+ export const resources: Partial<LocaleConfigMap> = {};
186
+ /**
187
+ * 插值字符串; 替换字符串中的占位符 `${}` 为对应的值
188
+ * @param {string} str 包含占位符的字符串
189
+ * @param {Argument} values 用于替换占位符的值,按照占位符出现的顺序排列
190
+ * @returns {string} 替换后的字符串
191
+ */
192
+ export function interpolateString<T extends string>(
193
+ str: string,
194
+ values: InterpolationType<T>,
195
+ ): string;
196
+ /** 设置语言
197
+ * @param {string} localeName 语言名称
198
+ * @returns {void}
199
+ * @example
200
+ * ```js
201
+ * setLang('zh_CN');
202
+ * ```
203
+ */
204
+ export function setLang(localeName: string): void;
205
+ /** 使用的语言 */
206
+ export const lang: Omit<Locale, 'translation'>;
207
+ /** 映射 */
208
+ export const t: Record<string, string>;
209
+ /** 设置 */
210
+ export const setLocalizable: SetStoreFunction<{
211
+ lang: Omit<Locale, 'translation'>;
212
+ t: Record<string, string>;
213
+ }>;
214
+ }
215
+ declare module '@app/fallback' {
216
+ const Fallback: null | (() => ReactElement);
217
+
218
+ export default Fallback;
219
+ }
220
+
221
+ declare let __webpack_public_path__: string | undefined;
222
+
223
+ interface Window {
224
+ areaPaddingTop?: number;
225
+ areaPaddingBottom?: number;
226
+ __POWERED_BY_QIANKUN__?: boolean;
227
+ mainApp: {
228
+ container: HTMLElement;
229
+ currentTarget: Record<string, unknown>;
230
+ [key: string]: unknown;
231
+ };
232
+ H5RemoteRuntime: {
233
+ bootstrap: () => void;
234
+ };
235
+ }
package/lib/index.d.ts CHANGED
@@ -1,20 +1,3 @@
1
1
  export * from './prefix/react-router-dom.js';
2
2
  export { default as sso, type SSOConfig, type PrivateSSOConfig } from 'shared-store-object';
3
- type Persistent = {
4
- /** 当前菜单 */
5
- menuActiveKey: 'menu.activeKey';
6
- /** 展开菜单 */
7
- menuExpandKey: 'menu.expandKey';
8
- /** 当前用户可访问的菜单列表 */
9
- menuMenus: 'menu.menus';
10
- /** 菜单列表的kv数据 */
11
- menuKv: 'menu.kv';
12
- /** 选项卡数据 */
13
- menuTabs: 'menu.tabs';
14
- /** 使用的语言 */
15
- language: 'localizable.language';
16
- [key: string]: string;
17
- };
18
- /** 数据持久化key字典 */
19
- declare const persistentKey: Persistent;
20
- export default persistentKey;
3
+ export { default as persistentKey } from './persistentKey.js';
package/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export*from"./prefix/react-router-dom.js";export{default as sso}from"shared-store-object";export default{menuActiveKey:"menu.activeKey",menuExpandKey:"menu.expandKey",menuMenus:"menu.menus",menuKv:"menu.kv",menuTabs:"menu.tabs",language:"localizable.language"};
1
+ export*from"./prefix/react-router-dom.js";export{default as sso}from"shared-store-object";export{default as persistentKey}from"./persistentKey.js";
2
2
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport { default as sso, type SSOConfig, type PrivateSSOConfig } from 'shared-store-object';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\n// export const IconFont = hasAntd ? require('./components/iconfont.js').default : null;\n// // eslint-disable-next-line @typescript-eslint/no-var-requires\n// export const LayoutMenu = hasAntd ? require('./components/layout-menu.js').default : null;\n// // eslint-disable-next-line @typescript-eslint/no-var-requires\n// export const DashboardLayout = hasAntd ? require('./packages/back-stage/layout.js').default : null;\n\n// export { default as menu, addTab, closeTab, openTab, setMenu, expandMenu } from './menu.js';\n// export type { TabItem, MenuItem, CloseTab } from './menu.js';\n// export type { LayoutMenuProps } from './components/layout-menu.js';\n// export { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router.js';\ntype Persistent = {\n /** 当前菜单 */\n menuActiveKey: 'menu.activeKey';\n /** 展开菜单 */\n menuExpandKey: 'menu.expandKey';\n /** 当前用户可访问的菜单列表 */\n menuMenus: 'menu.menus';\n /** 菜单列表的kv数据 */\n menuKv: 'menu.kv';\n /** 选项卡数据 */\n menuTabs: 'menu.tabs';\n /** 使用的语言 */\n language: 'localizable.language';\n [key: string]: string;\n};\n/** 数据持久化key字典 */\nconst persistentKey: Persistent = {\n menuActiveKey: 'menu.activeKey',\n menuExpandKey: 'menu.expandKey',\n menuMenus: 'menu.menus',\n menuKv: 'menu.kv',\n menuTabs: 'menu.tabs',\n language: 'localizable.language',\n};\n\nexport default persistentKey;\n"],"names":["default","sso","menuActiveKey","menuExpandKey","menuMenus","menuKv","menuTabs","language"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,QAASA,WAAWC,GAAG,KAA+C,qBAAsB,AAsC5F,eATkC,CAChCC,cAAe,iBACfC,cAAe,iBACfC,UAAW,aACXC,OAAQ,UACRC,SAAU,YACVC,SAAU,sBACZ,CAE6B"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './prefix/react-router-dom.js';\nexport { default as sso, type SSOConfig, type PrivateSSOConfig } from 'shared-store-object';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\n// export const IconFont = hasAntd ? require('./components/iconfont.js').default : null;\n// // eslint-disable-next-line @typescript-eslint/no-var-requires\n// export const LayoutMenu = hasAntd ? require('./components/layout-menu.js').default : null;\n// // eslint-disable-next-line @typescript-eslint/no-var-requires\n// export const DashboardLayout = hasAntd ? require('./packages/back-stage/layout.js').default : null;\n\n// export { default as menu, addTab, closeTab, openTab, setMenu, expandMenu } from './menu.js';\n// export type { TabItem, MenuItem, CloseTab } from './menu.js';\n// export type { LayoutMenuProps } from './components/layout-menu.js';\n// export { createRouter, prefixRouter, routerData, RouterFragment } from './components/app-router.js';\nexport { default as persistentKey } from './persistentKey.js';\n"],"names":["default","sso","persistentKey"],"mappings":"AAAA,WAAc,8BAA+B,AAC7C,QAASA,WAAWC,GAAG,KAA+C,qBAAsB,AAa5F,QAASD,WAAWE,aAAa,KAAQ,oBAAqB"}
package/lib/merge.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ declare function merge<T extends object & {
2
+ children?: T[];
3
+ meta?: object;
4
+ }>(route: T[], key: keyof T): T[] | undefined;
5
+ export default merge;
package/lib/merge.js ADDED
@@ -0,0 +1,2 @@
1
+ export default function e(n,r){if(!n.length)return;let t=[];return n.forEach(n=>{let i=t.findIndex(e=>e[r]==n[r]);if(i>-1){let l=[...t[i].children||[],...n.children||[]];t[i]=Object.assign(n,t[i],t[i].meta&&{meta:{...t[i].meta,...n.meta}}),l.length&&(t[i].children=e(l,r))}else t.push(Object.assign(n,Array.isArray(n.children)&&{children:e(n.children,r)}))}),t};
2
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/merge.ts"],"sourcesContent":["function merge<T extends object & { children?: T[]; meta?: object }>(route: T[], key: keyof T) {\n if (!route.length) return void 0;\n const arr: T[] = [];\n\n route.forEach((e) => {\n const idx = arr.findIndex((i) => i[key] == e[key]);\n\n if (idx > -1) {\n const ctree = [...(arr[idx].children || []), ...(e.children || [])];\n\n arr[idx] = Object.assign(\n e,\n arr[idx],\n arr[idx].meta && {\n meta: {\n ...arr[idx].meta,\n ...e.meta,\n },\n },\n );\n if (ctree.length) {\n arr[idx].children = merge(ctree, key);\n }\n } else {\n arr.push(\n Object.assign(\n e,\n Array.isArray(e.children) && {\n children: merge(e.children, key),\n },\n ),\n );\n }\n });\n\n return arr;\n}\n\nexport default merge;\n"],"names":["merge","route","key","length","arr","forEach","e","idx","findIndex","i","ctree","children","Object","assign","meta","push","Array","isArray"],"mappings":"AAsCA,eAtCA,SAASA,EAA4DC,CAAU,CAAEC,CAAY,EAC3F,GAAI,CAACD,EAAME,OAAQ,OACnB,IAAMC,EAAW,EAAE,CAiCnB,OA/BAH,EAAMI,QAAQ,AAACC,IACb,IAAMC,EAAMH,EAAII,UAAU,AAACC,GAAMA,CAAC,CAACP,EAAI,EAAII,CAAC,CAACJ,EAAI,EAEjD,GAAIK,EAAM,GAAI,CACZ,IAAMG,EAAQ,IAAKN,CAAG,CAACG,EAAI,CAACI,UAAY,EAAE,IAAOL,EAAEK,UAAY,EAAE,CAAE,AAEnEP,CAAAA,CAAG,CAACG,EAAI,CAAGK,OAAOC,OAChBP,EACAF,CAAG,CAACG,EAAI,CACRH,CAAG,CAACG,EAAI,CAACO,MAAQ,CACfA,KAAM,CACJ,GAAGV,CAAG,CAACG,EAAI,CAACO,IAAI,CAChB,GAAGR,EAAEQ,IAAI,AACX,CACF,GAEEJ,EAAMP,QACRC,CAAAA,CAAG,CAACG,EAAI,CAACI,SAAWX,EAAMU,EAAOR,EAAG,CAExC,MACEE,EAAIW,KACFH,OAAOC,OACLP,EACAU,MAAMC,QAAQX,EAAEK,WAAa,CAC3BA,SAAUX,EAAMM,EAAEK,SAAUT,EAC9B,GAIR,GAEOE,CACT,CAEqB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moneko/react",
3
- "version": "0.0.1",
3
+ "version": "0.0.3",
4
4
  "description": "react",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {
@@ -20,7 +20,9 @@
20
20
  "react-refresh-typescript": "2.0.9",
21
21
  "react-router": "6.15.0",
22
22
  "react-router-dom": "6.15.0",
23
- "shared-store-object": "^1.0.8"
23
+ "shared-store-object": "^1.0.8",
24
+ "eslint-plugin-react-hooks": "^4.6.0",
25
+ "eslint-plugin-react": "7.33.2"
24
26
  },
25
27
  "devDependencies": {
26
28
  "@swc/cli": "0.1.62",
@@ -41,6 +43,9 @@
41
43
  },
42
44
  "files": [
43
45
  "lib",
44
- "jest-preset.js"
46
+ "jest-preset.js",
47
+ "base.json",
48
+ "lib.json",
49
+ "env.d.ts"
45
50
  ]
46
51
  }