@@ -10,182 +10,217 @@ if (!dir) {
10
10
const NodeApiVersion = require ( '../package.json' ) . version ;
11
11
12
12
var ConfigFileOperations = {
13
- // ex. String::Utf8Value str(info[0]) to Napi::String str(env, info[0])
14
13
'package.json' : [
15
- [ / " n a n " : * " [ ^ " ] + " / g, '"node-api": "' + NodeApiVersion + '"' ] ,
14
+ [ / " n a n " : * " [ ^ " ] + " / g, '"node-addon- api": "' + NodeApiVersion + '"' ]
16
15
] ,
17
- // TODO: Add 'cflags!': [ '-fno-exceptions' ],
18
- // 'cflags_cc!': [ '-fno-exceptions' ]
19
16
'binding.gyp' : [
20
- [ / n o d e - e \\ " r e q u i r e \( ' n a n ' \) \\ " / g, 'node -p \\"require(\'node-api\').include\\"' ] ,
17
+ [ / \( n o d e - e \\ ( " | ' ) r e q u i r e \( ( " | ' ) n a n ( " | ' ) \) \\ ( " | ' ) \) / g, '@(node -p \\$1require(\$2node-addon-api\$3).include\\$4)' ] ,
18
+ [ / ( " | ' ) t a r g e t _ n a m e ( " | ' ) : ( " | ' ) ( .+ ?) ( " | ' ) , / g, '$1target_name$2: $3$4$5,\n $1cflags!$1: [ $1-fno-exceptions$1 ],\n $1cflags_cc!$1: [ $1-fno-exceptions$1 ],' ] ,
21
19
]
22
20
} ;
23
21
24
22
var SourceFileOperations = [
25
- [ / L o c a l < F u n c t i o n T e m p l a t e > \s + ( \w + ) \s * = \s * N a n : : N e w < F u n c t i o n T e m p l a t e > \( [ \w : ] + \) ; (?: \w + - > R e s e t \( \1\) ) ? \s + \1- > S e t C l a s s N a m e \( N a n : : N e w \( " ( \w + ) " \) \) ; / g, 'Napi::Function $1 = DefineClass(env, "$2", {' ] ,
26
- [ / v 8 : : L o c a l < v 8 : F u n c t i o n T e m p l a t e > \s + ( \w + ) \s * = \s * N a n : : N e w < v 8 : : F u n c t i o n T e m p l a t e > \( [ \w : ] + \) ; (?: \w + - > R e s e t \( \1\) ) ? \s + \1- > S e t C l a s s N a m e \( N a n : : N e w \( " ( \w + ) " \) \) ; / gm, 'Napi::Function $1 = DefineClass(env, "$2", {' ] ,
27
- [ / N a n : : S e t P r o t o t y p e M e t h o d \( \w + , " ( \w + ) " , ( \w + ) \) ; / g, ' InstanceMethod("$1", &$2),' ] ,
28
- [ / (?: \w + \. R e s e t \( \w + \) ; \s + ) ? \( t a r g e t \) \. S e t \( " ( \w + ) " , \s * N a n : : G e t F u n c t i o n \( ( \w + ) \) \) ; / gm,
23
+ [ / v 8 : : L o c a l < v 8 : : F u n c t i o n T e m p l a t e > \s + ( \w + ) \s * = \s * N a n : : N e w < F u n c t i o n T e m p l a t e > \( [ \w \d : ] + \) ; (?: \w + - > R e s e t \( \1\) ) ? \s + \1- > S e t C l a s s N a m e \( N a n : : S t r i n g : : N e w \( " ( \w + ) " \) \) ; / g, 'Napi::Function $1 = DefineClass(env, "$2", {' ] ,
24
+ [ / L o c a l < F u n c t i o n T e m p l a t e > \s + ( \w + ) \s * = \s * N a n : : N e w < F u n c t i o n T e m p l a t e > \( [ \w \d : ] + \) ; \s + ( \w + ) \. R e s e t \( ( \1) \) ; \s + \1- > S e t C l a s s N a m e \( ( N a n : : S t r i n g : : N e w | N a n : : N e w < ( v 8 : : ) * S t r i n g > ) \( " ( .+ ?) " \) \) ; / g, 'Napi::Function $1 = DefineClass(env, "$6", {' ] ,
25
+ [ / L o c a l < F u n c t i o n T e m p l a t e > \s + ( \w + ) \s * = \s * N a n : : N e w < F u n c t i o n T e m p l a t e > \( [ \w \d : ] + \) ; (?: \w + - > R e s e t \( \1\) ) ? \s + \1- > S e t C l a s s N a m e \( N a n : : S t r i n g : : N e w \( " ( \w + ) " \) \) ; / g, 'Napi::Function $1 = DefineClass(env, "$2", {' ] ,
26
+ [ / N a n : : N e w < v 8 : : F u n c t i o n T e m p l a t e > \( ( [ \w \d : ] + ) \) - > G e t F u n c t i o n \( \) / g, 'Napi::Function::New(env, $1)' ] ,
27
+ [ / N a n : : N e w < F u n c t i o n T e m p l a t e > \( ( [ \w \d : ] + ) \) - > G e t F u n c t i o n ( ) / g, 'Napi::Function::New(env, $1);' ] ,
28
+ [ / N a n : : N e w < v 8 : : F u n c t i o n T e m p l a t e > \( ( [ \w \d : ] + ) \) / g, 'Napi::Function::New(env, $1)' ] ,
29
+ [ / N a n : : N e w < F u n c t i o n T e m p l a t e > \( ( [ \w \d : ] + ) \) / g, 'Napi::Function::New(env, $1)' ] ,
30
+
31
+ // FunctionTemplate to FunctionReference
32
+ [ / N a n : : P e r s i s t e n t < ( v 8 : : ) * F u n c t i o n T e m p l a t e > / g, 'Napi::FunctionReference' ] ,
33
+ [ / N a n : : P e r s i s t e n t < ( v 8 : : ) * F u n c t i o n > / g, 'Napi::FunctionReference' ] ,
34
+ [ / v 8 : : L o c a l < v 8 : : F u n c t i o n T e m p l a t e > / g, 'Napi::FunctionReference' ] ,
35
+ [ / L o c a l < F u n c t i o n T e m p l a t e > / g, 'Napi::FunctionReference' ] ,
36
+ [ / v 8 : : F u n c t i o n T e m p l a t e / g, 'Napi::FunctionReference' ] ,
37
+ [ / F u n c t i o n T e m p l a t e / g, 'Napi::FunctionReference' ] ,
38
+
39
+
40
+ [ / N a n : : S e t P r o t o t y p e M e t h o d \( \w + , " ( \w + ) " , ( \w + ) \) ; / g, ' InstanceMethod("$1", &$2),' ] ,
41
+ [ / (?: \w + \. R e s e t \( \w + \) ; \s + ) ? \( t a r g e t \) \. S e t \( " ( \w + ) " , \s * N a n : : G e t F u n c t i o n \( ( \w + ) \) \) ; / gm,
29
42
'});\n\n' +
30
43
' constructor = Napi::Persistent($2);\n' +
31
44
' constructor.SuppressDestruct();\n' +
32
- ' target.Set("$1", $2);' ] ,
33
- [ / c o n s t r u c t o r _ t e m p l a t e / g, 'constructor' ] ,
45
+ ' target.Set("$1", $2);' ] ,
34
46
35
- [ / ( [ \w : ] + ?) : : C a s t \( ( .+ ?) \) / g, '$2.As<$1>()' ] ,
36
47
37
- [ / \* N a n : : U t f 8 S t r i n g \( ( [ ^ ) ] + ) \) / g, '$1->As<Napi::String>().Utf8Value().c_str()' ] ,
38
- [ / N a n : : U t f 8 S t r i n g + ( \w + ) \( ( [ ^ ) ] + ) \) / g, 'std::string $1 = $2.As<Napi::String>()' ] ,
39
- [ / N a n : : U t f 8 S t r i n g / g, 'std::string' ] ,
40
-
41
- [ / v 8 : : S t r i n g : : U t f 8 V a l u e ( .+ ?) \( ( .+ ?) \) / g, 'Napi::String $1(env, $2)' ] ,
42
- [ / S t r i n g : : U t f 8 V a l u e ( .+ ?) \( ( .+ ?) \) / g, 'Napi::String $1(env, $2)' ] ,
43
- [ / \. l e n g t h \( \) / g, '.Length()' ] ,
48
+ // TODO: Other attribute combinations
49
+ [ / s t a t i c _ c a s t < P r o p e r t y A t t r i b u t e > \( R e a d O n l y \s * \| \s * D o n t D e l e t e \) / gm,
50
+ 'static_cast<napi_property_attributes>(napi_enumerable | napi_configurable)' ] ,
44
51
45
- [ / N a n : : M a k e C a l l b a c k \( ( [ ^ , ] + ) , [ \s \\ ] + ( [ ^ , ] + ) , / gm , '$2.MakeCallback($1,' ] ,
52
+ [ / ( [ \w \d : < > ] + ? ) : : C a s t \( ( . + ? ) \) / g , '$2.As<$1>()' ] ,
46
53
47
- [ / c l a s s \s + ( \w + ) \s * : \s * p u b l i c \s + N a n : : O b j e c t W r a p / g, 'class $1 : public Napi::ObjectWrap<$1>' ] ,
48
- [ / ( \w + ) \( ( [ ^ \) ] * ) \) \s * : \s * N a n : : O b j e c t W r a p \( \) \s * ( , ) ? / gm, '$1($2) : Napi::ObjectWrap<$1>()$3' ] ,
54
+ [ / \* N a n : : U t f 8 S t r i n g \( ( [ ^ ) ] + ) \) / g, '$1->As<Napi::String>().Utf8Value().c_str()' ] ,
55
+ [ / N a n : : U t f 8 S t r i n g + ( \w + ) \( ( [ ^ ) ] + ) \) / g, 'std::string $1 = $2.As<Napi::String>()' ] ,
56
+ [ / N a n : : U t f 8 S t r i n g / g, 'std::string' ] ,
49
57
50
- // HandleOKCallback to OnOK
51
- [ / H a n d l e O K C a l l b a c k / g, 'OnOK' ] ,
52
- // HandleErrorCallback to OnError
53
- [ / H a n d l e E r r o r C a l l b a c k / g, 'OnError' ] ,
58
+ [ / v 8 : : S t r i n g : : U t f 8 V a l u e ( .+ ?) \( ( .+ ?) \) / g, 'Napi::String $1(env, $2)' ] ,
59
+ [ / S t r i n g : : U t f 8 V a l u e ( .+ ?) \( ( .+ ?) \) / g, 'Napi::String $1(env, $2)' ] ,
60
+ [ / \. l e n g t h \( \) / g, '.Length()' ] ,
54
61
62
+ [ / N a n : : M a k e C a l l b a c k \( ( [ ^ , ] + ) , [ \s \\ ] + ( [ ^ , ] + ) , / gm, '$2.MakeCallback($1,' ] ,
55
63
56
- [ / N a n : : C a l l b a c k / g, 'Napi::Function' ] ,
57
- [ / N a n : : P e r s i s t e n t < ( v 8 : : ) * F u n c t i o n T e m p l a t e > / g, 'Napi::FunctionReference' ] ,
58
- [ / N a n : : P e r s i s t e n t < ( v 8 : : ) * F u n c t i o n > / g, 'Napi::FunctionReference' ] ,
59
- [ / N a n : : P e r s i s t e n t < ( v 8 : : ) * O b j e c t > / g, 'Napi::ObjectReference' ] ,
60
- [ / ( v 8 : : ) * P e r s i s t e n t < ( v 8 : : ) * F u n c t i o n T e m p l a t e > / g, 'Napi::FunctionReference' ] ,
61
- [ / ( v 8 : : ) * P e r s i s t e n t < ( v 8 : : ) * F u n c t i o n > / g, 'Napi::FunctionReference' ] ,
62
- [ / ( v 8 : : ) * P e r s i s t e n t < ( v 8 : : ) * O b j e c t > / g, 'Napi::FunctionReference' ] ,
63
- [ / N a n : : A D D O N _ R E G I S T E R _ F U N C T I O N _ A R G S _ T Y P E t a r g e t / g, 'Napi::Env& env, Napi::Object& target' ] ,
64
- [ / v 8 : : F u n c t i o n T e m p l a t e / g, 'Napi::FunctionReference' ] ,
65
- [ / F u n c t i o n T e m p l a t e / g, 'Napi::FunctionReference' ] ,
64
+ [ / c l a s s \s + ( \w + ) \s * : \s * p u b l i c \s + N a n : : O b j e c t W r a p / g, 'class $1 : public Napi::ObjectWrap<$1>' ] ,
65
+ [ / ( \w + ) \( ( [ ^ \) ] * ) \) \s * : \s * N a n : : O b j e c t W r a p \( \) \s * ( , ) ? / gm, '$1($2) : Napi::ObjectWrap<$1>()$3' ] ,
66
66
67
+ // HandleOKCallback to OnOK
68
+ [ / H a n d l e O K C a l l b a c k / g, 'OnOK' ] ,
69
+ // HandleErrorCallback to OnError
70
+ [ / H a n d l e E r r o r C a l l b a c k / g, 'OnError' ] ,
67
71
68
- // ex. Local<Value> to Napi::Value
69
- [ / v 8 : : L o c a l < v 8 : : ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) > / g, 'Napi::$1' ] ,
70
- [ / L o c a l < ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) > / g, 'Napi::$1' ] ,
71
- [ / v 8 : : ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) / g, 'Napi::$1' ] ,
72
72
// ex. .As<Function>() to .As<Napi::Object>()
73
- [ / \. A s < v 8 : : ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) > \( \) / g, '.As<Napi::$1>()' ] ,
74
- [ / \. A s < ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) > \( \) / g, '.As<Napi::$1>()' ] ,
73
+ [ / \. A s < v 8 : : ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) > \( \) / g, '.As<Napi::$1>()' ] ,
74
+ [ / \. A s < ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) > \( \) / g, '.As<Napi::$1>()' ] ,
75
75
76
76
// ex. Nan::New<Number>(info[0]) to Napi::Number::New(info[0])
77
- [ / N a n : : N e w < I n t e g e r > \( ( .+ ?) \) / g, 'Napi::Number::New(env, $1)' ] ,
78
- [ / N a n : : N e w \( ( [ 0 - 9 \. ] + ) \) / g, 'Napi::Number::New(env, $1)' ] ,
79
- [ / N a n : : N e w \( " ( .+ ?) " \) / g, 'Napi::String::New(env, "$1")' ] ,
80
- [ / N a n : : N e w < ( .+ ?) > \( \) / g, 'Napi::$1::New(env)' ] ,
81
- [ / N a n : : N e w < ( .+ ?) > \( / g, 'Napi::$1::New(env, ' ] ,
82
- [ / N a n : : N e w B u f f e r \( / g, 'Napi::Buffer<char>::New(env, ' ] ,
77
+ [ / N a n : : N e w < ( v 8 : : ) * I n t e g e r > \( ( .+ ?) \) / g, 'Napi::Number::New(env, $2)' ] ,
78
+ [ / N a n : : N e w \( ( [ 0 - 9 \. ] + ) \) / g, 'Napi::Number::New(env, $1)' ] ,
79
+ [ / N a n : : N e w < ( v 8 : : ) * S t r i n g > \( " ( .+ ?) " \) / g, 'Napi::String::New(env, "$2")' ] ,
80
+ [ / N a n : : N e w \( " ( .+ ?) " \) / g, 'Napi::String::New(env, "$1")' ] ,
81
+ [ / N a n : : N e w < ( v 8 : : ) * ( .+ ?) > \( \) / g, 'Napi::$2::New(env)' ] ,
82
+ [ / N a n : : N e w < ( .+ ?) > \( \) / g, 'Napi::$1::New(env)' ] ,
83
+ [ / N a n : : N e w < ( v 8 : : ) * ( .+ ?) > \( / g, 'Napi::$2::New(env, ' ] ,
84
+ [ / N a n : : N e w < ( .+ ?) > \( / g, 'Napi::$1::New(env, ' ] ,
85
+ [ / N a n : : N e w B u f f e r \( / g, 'Napi::Buffer<char>::New(env, ' ] ,
83
86
// TODO: Properly handle this
84
- [ / N a n : : N e w \( / g, 'Napi::New(env, ' ] ,
85
-
86
- [ / .I s I n t 3 2 \( \) / g, '.IsNumber()' ] ,
87
-
87
+ [ / N a n : : N e w \( / g, 'Napi::New(env, ' ] ,
88
88
89
- // ex. Nan::To<bool>(info[0]) to info[0].Value()
90
- [ / N a n : : T o < ( B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | F u n c t i o n ) > \( ( .+ ?) \) / g, '$2.To<Napi::$1>()' ] ,
91
- [ / N a n : : T o < v 8 : : ( B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | F u n c t i o n ) > \( ( .+ ?) \) / g, '$2.To<Napi::$1>()' ] ,
92
- // ex. Nan::To<bool>(info[0]) to info[0].Value()
93
- [ / N a n : : T o < b o o l > \( ( .+ ?) \) / g, '$1.As<Napi::Boolean>().Value()' ] ,
94
- // ex. Nan::To<int>(info[0]) to info[0].Int32Value()
95
- [ / N a n : : T o < i n t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().Int32Value()' ] ,
96
- // ex. Nan::To<int32_t>(info[0]) to info[0].Int32Value()
97
- [ / N a n : : T o < i n t 3 2 _ t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().Int32Value()' ] ,
98
- // ex. Nan::To<uint32_t>(info[0]) to info[0].Uint32Value()
99
- [ / N a n : : T o < u i n t 3 2 _ t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().Uint32Value()' ] ,
100
- // ex. Nan::To<int64_t>(info[0]) to info[0].Int64Value()
101
- [ / N a n : : T o < i n t 6 4 _ t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().Int64Value()' ] ,
102
- // ex. Nan::To<float>(info[0]) to info[0].FloatValue()
103
- [ / N a n : : T o < f l o a t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().FloatValue()' ] ,
104
- // ex. Nan::To<double>(info[0]) to info[0].DoubleValue()
105
- [ / N a n : : T o < d o u b l e > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().DoubleValue()' ] ,
89
+ [ / \. I s I n t 3 2 \( \) / g, '.IsNumber()' ] ,
90
+ [ / - > I s I n t 3 2 \( \) / g, '.IsNumber()' ] ,
106
91
107
- [ / N a n : : N e w \( ( \w + ) \) - > H a s I n s t a n c e \( ( \w + ) \) / g, '$2.InstanceOf($1.Value())' ] ,
108
92
109
- [ / N a n : : G e t \( ( [ ^ ) ] + ) , \s * / gm, '($1).Get(' ] ,
110
- [ / \. G e t \( [ \s | \\ ] * N a n : : N e w \( ( [ ^ ) ] + ) \) \) / gm, '.Get($1)' ] ,
93
+ [ / ( .+ ?) - > B o o l e a n V a l u e \( \) / g, '$1.As<Napi::Boolean>().BooleanValue()' ] ,
94
+ [ / ( .+ ?) - > I n t 3 2 V a l u e \( \) / g, '$1.As<Napi::Number>().Int32Value()' ] ,
95
+ [ / ( .+ ?) - > U i n t 3 2 V a l u e \( \) / g, '$1.As<Napi::Number>().Uint32Value()' ] ,
96
+ [ / ( .+ ?) - > I n t e g e r V a l u e \( \) / g, '$1.As<Napi::Number>().Int64Value()' ] ,
97
+ [ / ( .+ ?) - > N u m b e r V a l u e \( \) / g, '$1.As<Napi::Number>().DoubleValue()' ] ,
111
98
112
- [ / N a n : : S e t \( ( [ ^ , ] + ) , \s * / gm, '($1).Set(' ] ,
113
- [ / \. S e t \( [ \s | \\ ] * N a n : : N e w \( ( [ ^ ) ] + ) \) , / gm, '.Set($1,' ] ,
99
+ // ex. Nan::To<bool>(info[0]) to info[0].Value()
100
+ [ / N a n : : T o < v 8 : : ( B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | F u n c t i o n ) > \( ( .+ ?) \) / g, '$2.To<Napi::$1>()' ] ,
101
+ [ / N a n : : T o < ( B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | F u n c t i o n ) > \( ( .+ ?) \) / g, '$2.To<Napi::$1>()' ] ,
102
+ // ex. Nan::To<bool>(info[0]) to info[0].As<Napi::Boolean>().Value()
103
+ [ / N a n : : T o < b o o l > \( ( .+ ?) \) / g, '$1.As<Napi::Boolean>().Value()' ] ,
104
+ // ex. Nan::To<int>(info[0]) to info[0].As<Napi::Number>().Int32Value()
105
+ [ / N a n : : T o < i n t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().Int32Value()' ] ,
106
+ // ex. Nan::To<int32_t>(info[0]) to info[0].As<Napi::Number>().Int32Value()
107
+ [ / N a n : : T o < i n t 3 2 _ t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().Int32Value()' ] ,
108
+ // ex. Nan::To<uint32_t>(info[0]) to info[0].As<Napi::Number>().Uint32Value()
109
+ [ / N a n : : T o < u i n t 3 2 _ t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().Uint32Value()' ] ,
110
+ // ex. Nan::To<int64_t>(info[0]) to info[0].As<Napi::Number>().Int64Value()
111
+ [ / N a n : : T o < i n t 6 4 _ t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().Int64Value()' ] ,
112
+ // ex. Nan::To<float>(info[0]) to info[0].As<Napi::Number>().FloatValue()
113
+ [ / N a n : : T o < f l o a t > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().FloatValue()' ] ,
114
+ // ex. Nan::To<double>(info[0]) to info[0].As<Napi::Number>().DoubleValue()
115
+ [ / N a n : : T o < d o u b l e > \( ( .+ ?) \) / g, '$1.As<Napi::Number>().DoubleValue()' ] ,
116
+
117
+ [ / N a n : : N e w \( ( \w + ) \) - > H a s I n s t a n c e \( ( \w + ) \) / g, '$2.InstanceOf($1.Value())' ] ,
118
+
119
+ [ / N a n : : H a s \( ( [ ^ , ] + ) , \s * / gm, '($1).Has(' ] ,
120
+ [ / \. H a s \( [ \s | \\ ] * N a n : : N e w < ( v 8 : : ) * S t r i n g > \( ( [ ^ ) ] + ) \) \) / gm, '.Has($1)' ] ,
121
+ [ / \. H a s \( [ \s | \\ ] * N a n : : N e w \( ( [ ^ ) ] + ) \) \) / gm, '.Has($1)' ] ,
122
+
123
+ [ / N a n : : G e t \( ( [ ^ , ] + ) , \s * / gm, '($1).Get(' ] ,
124
+ [ / \. G e t \( [ \s | \\ ] * N a n : : N e w < ( v 8 : : ) * S t r i n g > \( ( [ ^ ) ] + ) \) \) / gm, '.Get($1)' ] ,
125
+ [ / \. G e t \( [ \s | \\ ] * N a n : : N e w \( ( [ ^ ) ] + ) \) \) / gm, '.Get($1)' ] ,
126
+
127
+ [ / N a n : : S e t \( ( [ ^ , ] + ) , \s * / gm, '($1).Set(' ] ,
128
+ [ / \. S e t \( [ \s | \\ ] * N a n : : N e w < ( v 8 : : ) * S t r i n g > \( ( [ ^ ) ] + ) \) \s * , / gm, '.Set($1,' ] ,
129
+ [ / \. S e t \( [ \s | \\ ] * N a n : : N e w \( ( [ ^ ) ] + ) \) \s * , / gm, '.Set($1,' ] ,
114
130
115
131
116
132
// ex. node::Buffer::HasInstance(info[0]) to info[0].IsBuffer()
117
- [ / n o d e : : B u f f e r : : H a s I n s t a n c e \( ( .+ ?) \) / g, '$1.IsBuffer()' ] ,
133
+ [ / n o d e : : B u f f e r : : H a s I n s t a n c e \( ( .+ ?) \) / g, '$1.IsBuffer()' ] ,
118
134
// ex. node::Buffer::Length(info[0]) to info[0].Length()
119
- [ / n o d e : : B u f f e r : : L e n g t h \( ( .+ ?) \) / g, '$1.As<Napi::Buffer<char>>().Length()' ] ,
135
+ [ / n o d e : : B u f f e r : : L e n g t h \( ( .+ ?) \) / g, '$1.As<Napi::Buffer<char>>().Length()' ] ,
120
136
// ex. node::Buffer::Data(info[0]) to info[0].Data()
121
- [ / n o d e : : B u f f e r : : D a t a \( ( .+ ?) \) / g, '$1.As<Napi::Buffer<char>>().Data()' ] ,
122
- [ / N a n : : C o p y B u f f e r \( / g, 'Napi::Buffer::Copy(env, ' ] ,
137
+ [ / n o d e : : B u f f e r : : D a t a \( ( .+ ?) \) / g, '$1.As<Napi::Buffer<char>>().Data()' ] ,
138
+ [ / N a n : : C o p y B u f f e r \( / g, 'Napi::Buffer::Copy(env, ' ] ,
123
139
124
140
// Nan::AsyncQueueWorker(worker)
125
- [ / N a n : : A s y n c Q u e u e W o r k e r \( ( .+ ) \) ; / g, '$1.Queue();' ] ,
126
- [ / N a n : : ( U n d e f i n e d | N u l l | T r u e | F a l s e ) \( \) / g, 'env.$1()' ] ,
141
+ [ / N a n : : A s y n c Q u e u e W o r k e r \( ( .+ ) \) ; / g, '$1.Queue();' ] ,
142
+ [ / N a n : : ( U n d e f i n e d | N u l l | T r u e | F a l s e ) \( \) / g, 'env.$1()' ] ,
127
143
128
144
// Nan::ThrowError(error) to Napi::Error::New(env, error).ThrowAsJavaScriptException()
129
- [ / N a n : : T h r o w ( \w * ?) E r r o r \( ( .+ ?) \) ; / g, 'Napi::$1Error::New(env, $2).ThrowAsJavaScriptException();' ] ,
145
+ [ / r e t u r n N a n : : T h r o w ( \w * ?) E r r o r \( ( .+ ?) \) ; / g, 'Napi::$1Error::New(env, $2).ThrowAsJavaScriptException();\n return env.Null();' ] ,
146
+ [ / N a n : : T h r o w ( \w * ?) E r r o r \( ( .+ ?) \) ; / g, 'Napi::$1Error::New(env, $2).ThrowAsJavaScriptException();\n return env.Null();' ] ,
130
147
// Nan::RangeError(error) to Napi::RangeError::New(env, error)
131
- [ / N a n : : ( \w * ?) E r r o r \( ( .+ ) \) / g, 'Napi::$1Error::New(env, $2)' ] ,
148
+ [ / N a n : : ( \w * ?) E r r o r \( ( .+ ) \) / g, 'Napi::$1Error::New(env, $2)' ] ,
132
149
133
- [ / N a n : : S e t \( ( .+ ?) , \n * * ( .+ ?) , \n * * ( .+ ?) , \n * * ( .+ ?) \) / g, '$1.Set($2, $3, $4)' ] ,
150
+ [ / N a n : : S e t \( ( .+ ?) , \n * * ( .+ ?) , \n * * ( .+ ?) , \n * * ( .+ ?) \) / g, '$1.Set($2, $3, $4)' ] ,
134
151
135
- [ / i n f o \[ ( \w + ) \] - > / g, 'info[$1].' ] ,
136
- [ / i n f o \. T h i s \( \) - > / g, 'info.This().' ] ,
137
- [ / - > I s ( O b j e c t | S t r i n g | I n t 3 2 | N u m b e r ) \( \) / g, '.Is$1()' ] ,
138
- [ / i n f o \. G e t R e t u r n V a l u e \( \) \. S e t \( ( ( \n | .) + ?) \) ; / g, 'return $1;' ] ,
152
+ [ / N a n : : ( E s c a p a b l e ) ? H a n d l e S c o p e \s + ( \w + ) \s * ; / g, 'Napi::$1HandleScope $2(env);' ] ,
153
+ [ / N a n : : ( E s c a p a b l e ) ? H a n d l e S c o p e / g, 'Napi::$1HandleScope' ] ,
154
+ [ / N a n : : F o r c e S e t \( ( [ ^ , ] + ) , ? / g, '$1->DefineProperty(' ] ,
155
+ [ / \. F o r c e S e t \( N a p i : : S t r i n g : : N e w \( e n v , " ( \w + ) " \) , \s * ?/ g, '.DefineProperty("$1", ' ] ,
156
+ // [ /Nan::GetPropertyNames\(([^,]+)\)/, '$1->GetPropertyNames()' ],
157
+ [ / N a n : : E q u a l s \( ( [ ^ , ] + ) , / g, '$1.StrictEquals(' ] ,
139
158
140
- [ / N a n : : ( E s c a p a b l e ) ? H a n d l e S c o p e \s + ( \w + ) \s * ; / g, 'Napi::$1HandleScope $2(env);' ] ,
141
- [ / N a n : : ( E s c a p a b l e ) ? H a n d l e S c o p e / g, 'Napi::$1HandleScope' ] ,
142
- [ / N a n : : F o r c e S e t \( ( [ ^ , ] + ) , ? / g, '$1->DefineProperty(' ] ,
143
- [ / \. F o r c e S e t \( N a p i : : S t r i n g : : N e w \( e n v , " ( \w + ) " \) , \s * ?/ g, '.DefineProperty("$1", ' ] ,
144
- // [/Nan::GetPropertyNames\(([^,]+)\)/, '$1->GetPropertyNames()'],
145
- [ / N a n : : E q u a l s \( ( [ ^ , ] + ) , / g, '$1.Equals(' ] ,
146
159
147
160
161
+ [ / N a n : : C a l l b a c k / g, 'Napi::FunctionReference' ] ,
148
162
149
- [ / ( \w + ) \* \s + ( \w + ) \s * = \s * N a n : : O b j e c t W r a p : : U n w r a p < \w + > \( i n f o \. T h i s \( \) \) ; / g, '$1* $2 = this;' ] ,
150
- [ / N a n : : O b j e c t W r a p : : U n w r a p < ( \w + ) > \( ( .* ) \) ; / g, '$2.Unwrap<$1>();' ] ,
151
163
152
- [ / s t a t i c \s * N A N _ M E T H O D \s * \( ( \w + ?) \) \s * { / g, 'Napi::Value $1(const Napi::CallbackInfo& info) {\n Napi::Env env = info.Env();' ] ,
153
- [ / N A N _ M E T H O D \s * \( ( \w + ?) \) \s * { / g, 'Napi::Value $1(const Napi::CallbackInfo& info) {\n Napi::Env env = info.Env();' ] ,
154
- [ / s t a t i c \s * N A N _ G E T T E R \s * \( ( \w + ?) \) \s * { / g, 'Napi::Value $1(const Napi::CallbackInfo& info) {\n Napi::Env env = info.Env();' ] ,
155
- [ / N A N _ G E T T E R \s * \( ( \w + ?) \) \s * { / g, 'Napi::Value $1(const Napi::CallbackInfo& info) {\n Napi::Env env = info.Env();' ] ,
156
- [ / s t a t i c \s * N A N _ S E T T E R \s * \( ( \w + ?) \) \s * { / g, 'Napi::Value $1(const Napi::CallbackInfo& info, const Napi::Value& value) {\n Napi::Env env = info.Env();' ] ,
157
- [ / N A N _ S E T T E R \s * \( ( \w + ?) \) \s * { / g, 'Napi::Value $1(const Napi::CallbackInfo& info, const Napi::Value& value) {\n Napi::Env env = info.Env();' ] ,
158
- [ / N A N _ M O D U L E _ I N I T \s * \( ( [ \w : ] + ?) \) / g, 'void $1(Napi::Env env, Napi::Object exports, Napi::Object module)' ] ,
159
- [ / N a n : : N A N _ M E T H O D _ A R G S _ T Y P E / g, 'const Napi::CallbackInfo&' ] ,
160
- [ / ( N a n : : ) * F u n c t i o n C a l l b a c k I n f o < ( .+ ?) * > & * / g, 'Napi::CallbackInfo&' ] ,
161
- [ / : : ( I n i t (?: i a l i z e ) ? ) \( t a r g e t \) / g, '::$1(env, target, module)' ] ,
164
+ [ / N a n : : P e r s i s t e n t < O b j e c t > / g, 'Napi::ObjectReference' ] ,
165
+ [ / N a n : : A D D O N _ R E G I S T E R _ F U N C T I O N _ A R G S _ T Y P E t a r g e t / g, 'Napi::Env& env, Napi::Object& target' ] ,
162
166
163
- // TODO: Other attribute combinations
164
- [ / s t a t i c _ c a s t < P r o p e r t y A t t r i b u t e > \( R e a d O n l y \s * \| \s * D o n t D e l e t e \) / gm,
165
- 'static_cast<napi_property_attributes>(napi_enumerable | napi_configurable)' ] ,
167
+ [ / ( \w + ) \* \s + ( \w + ) \s * = \s * N a n : : O b j e c t W r a p : : U n w r a p < \w + > \( i n f o \. T h i s \( \) \) ; / g, '$1* $2 = this;' ] ,
168
+ [ / N a n : : O b j e c t W r a p : : U n w r a p < ( \w + ) > \( ( .* ) \) ; / g, '$2.Unwrap<$1>();' ] ,
169
+
170
+ [ / N a n : : N A N _ M E T H O D _ A R G S _ T Y P E / g, 'const Napi::CallbackInfo&' ] ,
171
+ [ / N A N _ M E T H O D \( ( [ \w \d : ] + ?) \) / g, 'Napi::Value $1(const Napi::CallbackInfo& info)' ] ,
172
+ [ / s t a t i c \s * N A N _ G E T T E R \( ( [ \w \d : ] + ?) \) / g, 'Napi::Value $1(const Napi::CallbackInfo& info)' ] ,
173
+ [ / N A N _ G E T T E R \( ( [ \w \d : ] + ?) \) / g, 'Napi::Value $1(const Napi::CallbackInfo& info)' ] ,
174
+ [ / s t a t i c \s * N A N _ S E T T E R \( ( [ \w \d : ] + ?) \) / g, 'void $1(const Napi::CallbackInfo& info, const Napi::Value& value)' ] ,
175
+ [ / N A N _ S E T T E R \( ( [ \w \d : ] + ?) \) / g, 'void $1(const Napi::CallbackInfo& info, const Napi::Value& value)' ] ,
176
+ [ / v o i d I n i t \( ( v 8 : : ) * L o c a l < ( v 8 : : ) * O b j e c t > e x p o r t s \) / g, [
177
+ [ / e x p o r t s - > / g, 'exports.' ] ,
178
+ [ / v o i d I n i t \( ( v 8 : : ) * L o c a l < ( v 8 : : ) * O b j e c t > e x p o r t s \) / g, 'void Init(Napi::Env env, Napi::Object exports, Napi::Object module)' ] ,
179
+ ] ] ,
180
+ [ / N A N _ M O D U L E _ I N I T \( ( [ \w \d : ] + ?) \) ; / g, 'void $1(Napi::Env env, Napi::Object exports, Napi::Object module);' ] ,
181
+ [ / N A N _ M O D U L E _ I N I T \( ( [ \w \d : ] + ?) \) / g, 'void $1(Napi::Env env, Napi::Object exports, Napi::Object module)' ] ,
182
+
183
+ [ / : : ( I n i t (?: i a l i z e ) ? ) \( t a r g e t \) / g, '::$1(env, target, module)' ] ,
184
+ [ / c o n s t r u c t o r _ t e m p l a t e / g, 'constructor' ] ,
185
+
186
+ [ / N a n : : F u n c t i o n C a l l b a c k I n f o < ( v 8 : : ) * V a l u e > \s * & \s * i n f o \) \s * { / g, 'Napi::CallbackInfo& info) {\n Napi::Env env = info.Env();' ] ,
187
+
188
+
189
+ [ / i n f o \[ ( \d + ) \] - > / g, 'info[$1].' ] ,
190
+ [ / i n f o \[ ( [ \w \d ] + ) \] - > / g, 'info[$1].' ] ,
191
+ [ / i n f o \. T h i s \( \) - > / g, 'info.This().' ] ,
192
+ [ / - > I s ( O b j e c t | S t r i n g | I n t 3 2 | N u m b e r ) \( \) / g, '.Is$1()' ] ,
193
+ [ / i n f o .G e t R e t u r n V a l u e \( \) .S e t U n d e f i n e d \( \) / g, 'return env.Undefined()' ] ,
194
+ [ / i n f o \. G e t R e t u r n V a l u e \( \) \. S e t \( ( ( \n | .) + ?) \) ; / g, 'return $1;' ] ,
195
+
196
+
197
+ // ex. Local<Value> to Napi::Value
198
+ [ / v 8 : : L o c a l < v 8 : : ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) > / g, 'Napi::$1' ] ,
199
+ [ / L o c a l < ( V a l u e | B o o l e a n | S t r i n g | N u m b e r | O b j e c t | A r r a y | S y m b o l | E x t e r n a l | F u n c t i o n ) > / g, 'Napi::$1' ] ,
166
200
167
201
// Declare an env in helper functions that take a Napi::Value
168
- [ / ( \w + ) \( N a p i : : V a l u e ( \w + ) ( , \s * [ ^ \( ) ] + ) ? \) \s * { / g, '$1(Napi::Value $2$3) {\n Napi::Env env = $2.Env();' ] ,
202
+ [ / ( \w + ) \( N a p i : : V a l u e ( \w + ) ( , \s * [ ^ \( ) ] + ) ? \) \s * { / g, '$1(Napi::Value $2$3) {\n Napi::Env env = $2.Env();' ] ,
169
203
170
204
// delete #include <node.h> and/or <v8.h>
171
- [ / # i n c l u d e + ( < | " ) (?: n o d e | n a n ) .h ( " | > ) / g, "#include $1napi.h$2\n#include $1uv.h$2" ] ,
205
+ [ / # i n c l u d e + ( < | " ) (?: n o d e | n a n ) .h ( " | > ) / g, "#include $1napi.h$2\n#include $1uv.h$2" ] ,
172
206
// NODE_MODULE to NODE_API_MODULE
173
- [ / N O D E _ M O D U L E / g, 'NODE_API_MODULE' ] ,
174
- [ / N a n : : / g, 'Napi::' ] ,
175
- [ / n a n .h / g, 'napi.h' ] ,
207
+ [ / N O D E _ M O D U L E / g, 'NODE_API_MODULE' ] ,
208
+ [ / N a n : : / g, 'Napi::' ] ,
209
+ [ / n a n .h / g, 'napi.h' ] ,
176
210
177
211
// delete .FromJust()
178
- [ / \. F r o m J u s t \( \) / g, '' ] ,
212
+ [ / \. F r o m J u s t \( \) / g, '' ] ,
179
213
// delete .ToLocalCheck()
180
- [ / \. T o L o c a l C h e c k e d \( \) / g, '' ] ,
181
- [ / ^ .* - > S e t I n t e r n a l F i e l d C o u n t \( .* $ / gm, '' ] ,
214
+ [ / \. T o L o c a l C h e c k e d \( \) / g, '' ] ,
215
+ [ / ^ .* - > S e t I n t e r n a l F i e l d C o u n t \( .* $ / gm, '' ] ,
182
216
183
217
// replace using node; and/or using v8; to using Napi;
184
- [ / u s i n g ( n o d e | v 8 ) ; / g, 'using Napi;' ] ,
185
- // delete using v8::XXX;
186
- [ / u s i n g v 8 : : L o c a l ; \n / g, '' ] ,
187
- // delete using v8::XXX;
188
- [ / u s i n g v 8 : : ( [ A - Z a - z ] + ) ; / g, 'using Napi::$1;' ] ,
218
+ [ / u s i n g ( n o d e | v 8 ) ; / g, 'using Napi;' ] ,
219
+ [ / u s i n g n a m e s p a c e ( n o d e | N a n | v 8 ) ; / g, 'using namespace Napi;' ] ,
220
+ // delete using v8::Local;
221
+ [ / u s i n g v 8 : : L o c a l ; \n / g, '' ] ,
222
+ // replace using v8::XXX; with using Napi::XXX
223
+ [ / u s i n g v 8 : : ( [ A - Z a - z ] + ) ; / g, 'using Napi::$1;' ] ,
189
224
190
225
] ;
191
226
@@ -218,9 +253,10 @@ function listFiles(dir, filelist) {
218
253
}
219
254
220
255
function convert ( content , operations ) {
221
- operations . forEach ( function ( operation ) {
256
+ for ( let i = 0 ; i < operations . length ; i ++ ) {
257
+ let operation = operations [ i ] ;
222
258
content = content . replace ( operation [ 0 ] , operation [ 1 ] ) ;
223
- } ) ;
259
+ }
224
260
return content ;
225
261
}
226
262
0 commit comments