fix: add context
This commit is contained in:
		@@ -1,13 +1,12 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "@kevisual/use-config",
 | 
					  "name": "@kevisual/use-config",
 | 
				
			||||||
  "version": "1.0.2",
 | 
					  "version": "1.0.3",
 | 
				
			||||||
  "types": "dist/config.d.ts",
 | 
					  "types": "dist/config.d.ts",
 | 
				
			||||||
  "scripts": {
 | 
					  "scripts": {
 | 
				
			||||||
    "build": "npm run clean && rollup -c",
 | 
					    "build": "npm run clean && rollup -c",
 | 
				
			||||||
    "watch": " rollup -c -w",
 | 
					    "watch": " rollup -c -w",
 | 
				
			||||||
    "clean": "rimraf dist"
 | 
					    "clean": "rimraf dist"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  
 | 
					 | 
				
			||||||
  "publishConfig": {
 | 
					  "publishConfig": {
 | 
				
			||||||
    "access": "public"
 | 
					    "access": "public"
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
@@ -49,6 +48,10 @@
 | 
				
			|||||||
    "./pkgs": {
 | 
					    "./pkgs": {
 | 
				
			||||||
      "import": "./dist/pkgs.mjs",
 | 
					      "import": "./dist/pkgs.mjs",
 | 
				
			||||||
      "types": "./dist/pkgs.d.ts"
 | 
					      "types": "./dist/pkgs.d.ts"
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    "./context": {
 | 
				
			||||||
 | 
					      "import": "./dist/context.mjs",
 | 
				
			||||||
 | 
					      "types": "./dist/context.d.ts"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -49,4 +49,25 @@ export default [
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    plugins: [dts()],
 | 
					    plugins: [dts()],
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    input: 'src/context.ts', // TypeScript 入口文件
 | 
				
			||||||
 | 
					    output: {
 | 
				
			||||||
 | 
					      file: 'dist/context.mjs', // 输出文件
 | 
				
			||||||
 | 
					      format: 'es', // 输出格式设置为 ES 模块
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    plugins: [
 | 
				
			||||||
 | 
					      resolve(), // 使用 @rollup/plugin-node-resolve 解析 node_modules 中的模块
 | 
				
			||||||
 | 
					      commonjs(),
 | 
				
			||||||
 | 
					      typescript(), // 使用 @rollup/plugin-typescript 处理 TypeScript 文件
 | 
				
			||||||
 | 
					    ],
 | 
				
			||||||
 | 
					    external: [],
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    input: 'src/context.ts',
 | 
				
			||||||
 | 
					    output: {
 | 
				
			||||||
 | 
					      file: 'dist/context.d.ts',
 | 
				
			||||||
 | 
					      format: 'es',
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    plugins: [dts()],
 | 
				
			||||||
 | 
					  },
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -106,7 +106,7 @@ export const useConfig = <T>(initConfig?: any): Config & T => {
 | 
				
			|||||||
  return _config;
 | 
					  return _config;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const useContext = (key: string, value: any): any => {
 | 
					export const useConfigContext = (key: string, value: any): any => {
 | 
				
			||||||
  const _context = global as any;
 | 
					  const _context = global as any;
 | 
				
			||||||
  if (key && value) {
 | 
					  if (key && value) {
 | 
				
			||||||
    _context[key] = value;
 | 
					    _context[key] = value;
 | 
				
			||||||
@@ -117,7 +117,7 @@ export const useContext = (key: string, value: any): any => {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  return _context;
 | 
					  return _context;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
export const deleteContext = (key: string): any => {
 | 
					export const deleteConfigContext = (key: string): any => {
 | 
				
			||||||
  const _context = global as any;
 | 
					  const _context = global as any;
 | 
				
			||||||
  if (key && _context[key]) {
 | 
					  if (key && _context[key]) {
 | 
				
			||||||
    delete _context[key];
 | 
					    delete _context[key];
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										33
									
								
								src/context.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/context.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					type GlobalContext = {
 | 
				
			||||||
 | 
					  redis?: any;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					export const useContext = (initContext?: GlobalContext) => {
 | 
				
			||||||
 | 
					  const context: GlobalContext = (global as any).context;
 | 
				
			||||||
 | 
					  const _context = context || initContext;
 | 
				
			||||||
 | 
					  !context && ((global as any)['context'] = _context);
 | 
				
			||||||
 | 
					  return _context;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const useContextKey = <T>(key: string, init: () => T): T => {
 | 
				
			||||||
 | 
					  const _context = useContext();
 | 
				
			||||||
 | 
					  if (key && init) {
 | 
				
			||||||
 | 
					    _context[key] = init();
 | 
				
			||||||
 | 
					    return _context[key] as any;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (key) {
 | 
				
			||||||
 | 
					    return _context[key];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return _context as any;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const useContextKeySync = async <T = any>(key: string, init: () => Promise<T>): Promise<T> => {
 | 
				
			||||||
 | 
					  const _context = useContext({});
 | 
				
			||||||
 | 
					  if (key && init) {
 | 
				
			||||||
 | 
					    _context[key] = await init();
 | 
				
			||||||
 | 
					    return _context[key] as any;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  if (key) {
 | 
				
			||||||
 | 
					    return _context[key];
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  return _context as any;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
		Reference in New Issue
	
	Block a user