@@ -8,42 +8,70 @@ const regParts = [
88 { name : 'Icon' , value : `${ appPath } ` }
99] ;
1010
11- function isRegistered ( callback ) {
12- new Registry ( {
13- hive : 'HKCU' ,
14- key : `${ regKey } \\${ regParts [ 0 ] . key } `
15- } ) . get ( regParts [ 0 ] . name , ( err , entry ) => {
16- callback ( ! err && entry && entry . value === regParts [ 0 ] . value ) ;
11+ function addValues ( hyperKey , commandKey , callback ) {
12+ hyperKey . set ( regParts [ 1 ] . name , Registry . REG_SZ , regParts [ 1 ] . value , err => {
13+ if ( err ) {
14+ console . error ( err . message ) ;
15+ }
16+ hyperKey . set ( regParts [ 2 ] . name , Registry . REG_SZ , regParts [ 2 ] . value , err => {
17+ if ( err ) {
18+ console . error ( err . message ) ;
19+ }
20+ commandKey . set ( regParts [ 0 ] . name , Registry . REG_SZ , regParts [ 0 ] . value , err => {
21+ if ( err ) {
22+ console . error ( err . message ) ;
23+ }
24+ callback ( ) ;
25+ } ) ;
26+ } ) ;
1727 } ) ;
1828}
1929
2030exports . add = function ( callback ) {
21- isRegistered ( registered => {
22- if ( ! registered ) {
23- const regPromises = [ ] ;
24- regParts . forEach ( part => {
25- const reg = new Registry ( { hive : 'HKCU' , key : part . key ? `${ regKey } \\${ part . key } ` : regKey } ) ;
26- reg . create ( ( ) => {
27- regPromises . push ( new Promise ( ( resolve , reject ) => {
28- reg . set ( part . name , Registry . REG_SZ , part . value , err => {
29- if ( err === null ) {
30- resolve ( true ) ;
31- } else {
32- return reject ( err ) ;
33- }
34- } ) ;
35- } ) ) ;
31+ const hyperKey = new Registry ( { hive : 'HKCU' , key : regKey } ) ;
32+ const commandKey = new Registry ( { hive : 'HKCU' , key : `${ regKey } \\${ regParts [ 0 ] . key } ` } ) ;
33+
34+ hyperKey . keyExists ( ( err , exists ) => {
35+ if ( err ) {
36+ console . error ( err . message ) ;
37+ }
38+ if ( exists ) {
39+ commandKey . keyExists ( ( err , exists ) => {
40+ if ( err ) {
41+ console . error ( err . message ) ;
42+ }
43+ if ( exists ) {
44+ addValues ( hyperKey , commandKey , callback ) ;
45+ } else {
46+ commandKey . create ( err => {
47+ if ( err ) {
48+ console . error ( err . message ) ;
49+ }
50+ addValues ( hyperKey , commandKey , callback ) ;
51+ } ) ;
52+ }
53+ } ) ;
54+ } else {
55+ hyperKey . create ( err => {
56+ if ( err ) {
57+ console . error ( err . message ) ;
58+ }
59+ commandKey . create ( err => {
60+ if ( err ) {
61+ console . error ( err . message ) ;
62+ }
63+ addValues ( hyperKey , commandKey , callback ) ;
3664 } ) ;
3765 } ) ;
38- Promise . all ( regPromises ) . then ( ( ) => callback ( ) ) ;
3966 }
4067 } ) ;
4168} ;
4269
4370exports . remove = function ( callback ) {
44- isRegistered ( registered => {
45- if ( registered ) {
46- new Registry ( { hive : 'HKCU' , key : regKey } ) . destroy ( ( ) => callback ( ) ) ;
71+ new Registry ( { hive : 'HKCU' , key : regKey } ) . destroy ( err => {
72+ if ( err ) {
73+ console . error ( err . message ) ;
4774 }
75+ callback ( ) ;
4876 } ) ;
4977} ;
0 commit comments