28 lines
		
	
	
		
			553 B
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			553 B
		
	
	
	
		
			TypeScript
		
	
	
| import qs from 'querystring';
 | |
| 
 | |
| export interface VueQuery {
 | |
|   vue?: boolean;
 | |
|   src?: boolean;
 | |
|   type?: 'script' | 'template' | 'style' | 'custom';
 | |
|   index?: number;
 | |
|   lang?: string;
 | |
| }
 | |
| 
 | |
| export function parseVueRequest(id: string): any {
 | |
|   const [filename, rawQuery] = id.split(`?`, 2);
 | |
|   const query = qs.parse(rawQuery) as VueQuery;
 | |
|   if (query.vue != null) {
 | |
|     query.vue = true;
 | |
|   }
 | |
|   if (query.src != null) {
 | |
|     query.src = true;
 | |
|   }
 | |
|   if (query.index != null) {
 | |
|     query.index = Number(query.index);
 | |
|   }
 | |
|   return {
 | |
|     filename,
 | |
|     query,
 | |
|   };
 | |
| }
 |