added punycode de- and encoder
This commit is contained in:
		
							parent
							
								
									77d3664cc1
								
							
						
					
					
						commit
						c8e2c421a6
					
				
					 6 changed files with 51 additions and 2 deletions
				
			
		
							
								
								
									
										20
									
								
								app/converter/punycodedecoder.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								app/converter/punycodedecoder.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | |||
| import {Converter} from "./converter"; | ||||
| import {NativeLibraryWrapperService} from "../nativelibrarywrapper.service"; | ||||
| 
 | ||||
| export class PunycodeDecoder implements Converter { | ||||
| 
 | ||||
|     constructor(private nativeLibraryWrapperService: NativeLibraryWrapperService) { | ||||
|     } | ||||
| 
 | ||||
|     getDisplayname(): string { | ||||
|         return "Decode from punycode"; | ||||
|     } | ||||
| 
 | ||||
|     getId(): string { | ||||
|         return "decodepunycode"; | ||||
|     } | ||||
| 
 | ||||
|     convert(input: string): string { | ||||
|         return this.nativeLibraryWrapperService.punycode.decode(input); | ||||
|     } | ||||
| } | ||||
							
								
								
									
										20
									
								
								app/converter/punycodeencoder.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								app/converter/punycodeencoder.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,20 @@ | |||
| import {Converter} from "./converter"; | ||||
| import {NativeLibraryWrapperService} from "../nativelibrarywrapper.service"; | ||||
| 
 | ||||
| export class PunycodeEncoder implements Converter { | ||||
| 
 | ||||
|     constructor(private nativeLibraryWrapperService: NativeLibraryWrapperService) { | ||||
|     } | ||||
| 
 | ||||
|     getDisplayname(): string { | ||||
|         return "Encode as punycode"; | ||||
|     } | ||||
| 
 | ||||
|     getId(): string { | ||||
|         return "encodepunycode"; | ||||
|     } | ||||
| 
 | ||||
|     convert(input: string): string { | ||||
|         return this.nativeLibraryWrapperService.punycode.encode(input); | ||||
|     } | ||||
| } | ||||
|  | @ -15,6 +15,8 @@ import {BinToDecConverter} from "./converter/bintodecconverter"; | |||
| import {QuotedPrintableDecoder} from "./converter/quotedprintabledecoder"; | ||||
| import {QuotedPrintableEncoder} from "./converter/quotedprintableencoder"; | ||||
| import {NativeLibraryWrapperService} from "./nativelibrarywrapper.service"; | ||||
| import {PunycodeEncoder} from "./converter/punycodeencoder"; | ||||
| import {PunycodeDecoder} from "./converter/punycodedecoder"; | ||||
| 
 | ||||
| @Injectable() | ||||
| export class ConverterRegistryService { | ||||
|  | @ -52,6 +54,8 @@ export class ConverterRegistryService { | |||
|         this.registerConverter(new HexToDecConverter()); | ||||
|         this.registerConverter(new DecToBinConverter()); | ||||
|         this.registerConverter(new BinToDecConverter()); | ||||
|         this.registerConverter(new PunycodeEncoder(this.wrapper)); | ||||
|         this.registerConverter(new PunycodeDecoder(this.wrapper)); | ||||
|     } | ||||
| 
 | ||||
|     private registerConverter(converter:Converter):void { | ||||
|  |  | |||
|  | @ -2,14 +2,17 @@ import {Injectable} from "@angular/core"; | |||
| 
 | ||||
| declare var utf8:any; | ||||
| declare var quotedPrintable:any; | ||||
| declare var punycode:any; | ||||
| 
 | ||||
| @Injectable() | ||||
| export class NativeLibraryWrapperService { | ||||
|     public utf8:any; | ||||
|     public quotedPrintable:any; | ||||
|     public punycode:any; | ||||
| 
 | ||||
|     constructor() { | ||||
|         this.utf8 = utf8; | ||||
|         this.quotedPrintable = quotedPrintable; | ||||
|         this.punycode = punycode; | ||||
|     } | ||||
| } | ||||
|  | @ -10,6 +10,7 @@ | |||
|     <script type="text/javascript" src="node_modules/systemjs/dist/system.src.js"></script> | ||||
|     <script type="text/javascript" src="node_modules/utf8/utf8.js"></script> | ||||
|     <script type="text/javascript" src="node_modules/quoted-printable/quoted-printable.js"></script> | ||||
|     <script type="text/javascript" src="node_modules/punycode/punycode.js"></script> | ||||
| 
 | ||||
|     <script type="text/javascript" src="systemjs.config.js"></script> | ||||
|     <script type="text/javascript"> | ||||
|  |  | |||
|  | @ -27,7 +27,8 @@ | |||
|     "systemjs": "^0.19.27", | ||||
|     "zone.js": "^0.6.12", | ||||
|     "quoted-printable": "^1.0.0", | ||||
|     "utf8": "^2.1.1" | ||||
|     "utf8": "^2.1.1", | ||||
|     "punycode": "1.4.1" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "concurrently": "^2.2.0", | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue