30 lines
		
	
	
		
			892 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			892 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import * as plugins from './plugins.js';
 | 
						|
 | 
						|
// Export all base types - these are the public API
 | 
						|
export * from '../core_base/types.js';
 | 
						|
 | 
						|
const smartenvInstance = new plugins.smartenv.Smartenv();
 | 
						|
 | 
						|
// Dynamically load the appropriate implementation
 | 
						|
let CoreRequest: any;
 | 
						|
let CoreResponse: any;
 | 
						|
 | 
						|
if (smartenvInstance.isNode) {
 | 
						|
  // In Node.js, load the node implementation
 | 
						|
  const modulePath = plugins.smartpath.join(
 | 
						|
    plugins.smartpath.dirname(import.meta.url),
 | 
						|
    '../core_node/index.js',
 | 
						|
  );
 | 
						|
  const impl = await smartenvInstance.getSafeNodeModule(modulePath);
 | 
						|
  CoreRequest = impl.CoreRequest;
 | 
						|
  CoreResponse = impl.CoreResponse;
 | 
						|
} else {
 | 
						|
  // In browser, load the fetch implementation
 | 
						|
  const impl = await import('../core_fetch/index.js');
 | 
						|
  CoreRequest = impl.CoreRequest;
 | 
						|
  CoreResponse = impl.CoreResponse;
 | 
						|
}
 | 
						|
 | 
						|
// Export the loaded implementations
 | 
						|
export { CoreRequest, CoreResponse };
 |