66namespace NodeCld {
77
88 NAN_METHOD (Detect) {
9- NanScope ();
10-
11- v8::Local<v8::Object> results = NanNew<v8::Object>();
12- v8::String::Utf8Value text (args[0 ]->ToString ());
9+ v8::Local<v8::Object> results = Nan::New<v8::Object>();
10+ v8::String::Utf8Value text (info[0 ]->ToString ());
1311
1412 char *bytes = *text;
1513 int numBytes = text.length ();
16- bool isPlainText = args [1 ]->ToBoolean ()->Value ();
14+ bool isPlainText = info [1 ]->ToBoolean ()->Value ();
1715
1816 CLD2::CLDHints hints;
1917 hints.tld_hint = 0 ;
2018 hints.content_language_hint = 0 ;
2119 hints.language_hint = CLD2::UNKNOWN_LANGUAGE;
2220 hints.encoding_hint = CLD2::UNKNOWN_ENCODING;
2321
24- v8::String::Utf8Value languageHint (args [2 ]->ToString ());
25- v8::String::Utf8Value encodingHint (args [3 ]->ToString ());
26- v8::String::Utf8Value tldHint (args [4 ]->ToString ());
27- v8::String::Utf8Value httpHint (args [5 ]->ToString ());
22+ v8::String::Utf8Value languageHint (info [2 ]->ToString ());
23+ v8::String::Utf8Value encodingHint (info [3 ]->ToString ());
24+ v8::String::Utf8Value tldHint (info [4 ]->ToString ());
25+ v8::String::Utf8Value httpHint (info [5 ]->ToString ());
2826
2927 if (tldHint.length () > 0 ) {
3028 hints.tld_hint = *tldHint;
@@ -60,25 +58,29 @@ namespace NodeCld {
6058 &isReliable
6159 );
6260
63- v8::Local<v8::Array> languages = v8::Local<v8::Array>(NanNew <v8::Array>());
61+ v8::Local<v8::Array> languages = v8::Local<v8::Array>(Nan::New <v8::Array>());
6462 for (int idx = 0 ; idx < 3 ; idx++) {
6563 CLD2::Language lang = language3[idx];
66-
64+
6765 if (lang == CLD2::UNKNOWN_LANGUAGE) {
6866 continue ;
6967 }
70-
71- v8::Local<v8::Object> item = NanNew<v8::Object>();
72- item->Set (NanNew<v8::String>(" name" ), NanNew<v8::String>(Constants::getInstance ().getLanguageName (lang)));
73- item->Set (NanNew<v8::String>(" code" ), NanNew<v8::String>(Constants::getInstance ().getLanguageCode (lang)));
74- item->Set (NanNew<v8::String>(" percent" ), NanNew<v8::Number>(percent3[idx]));
75- item->Set (NanNew<v8::String>(" score" ), NanNew<v8::Number>(normalized_score3[idx]));
76-
77- languages->Set (NanNew<v8::Integer>(idx), item);
68+
69+ v8::Local<v8::Object> item = Nan::New<v8::Object>();
70+ Nan::Set (item, Nan::New<v8::String>(" name" ).ToLocalChecked (),
71+ Nan::New<v8::String>(Constants::getInstance ().getLanguageName (lang)).ToLocalChecked ());
72+ Nan::Set (item, Nan::New<v8::String>(" code" ).ToLocalChecked (),
73+ Nan::New<v8::String>(Constants::getInstance ().getLanguageCode (lang)).ToLocalChecked ());
74+ Nan::Set (item, Nan::New<v8::String>(" percent" ).ToLocalChecked (),
75+ Nan::New<v8::Number>(percent3[idx]));
76+ Nan::Set (item, Nan::New<v8::String>(" score" ).ToLocalChecked (),
77+ Nan::New<v8::Number>(normalized_score3[idx]));
78+
79+ Nan::Set (languages, static_cast <uint32_t >(idx), item);
7880 }
7981
8082 unsigned int chunkIdx = 0 ;
81- v8::Local<v8::Array> chunks = v8::Local<v8::Array>(NanNew <v8::Array>());
83+ v8::Local<v8::Array> chunks = v8::Local<v8::Array>(Nan::New <v8::Array>());
8284 for (unsigned int resultIdx = 0 ; resultIdx < resultChunkVector.size (); resultIdx++) {
8385 CLD2::ResultChunk chunk = resultChunkVector.at (resultIdx);
8486 CLD2::Language lang = static_cast <CLD2::Language>(chunk.lang1 );
@@ -87,55 +89,64 @@ namespace NodeCld {
8789 continue ;
8890 }
8991
90- v8::Local<v8::Object> item = NanNew<v8::Object>();
91- item->Set (NanNew<v8::String>(" name" ), NanNew<v8::String>(Constants::getInstance ().getLanguageName (lang)));
92- item->Set (NanNew<v8::String>(" code" ), NanNew<v8::String>(Constants::getInstance ().getLanguageCode (lang)));
93- item->Set (NanNew<v8::String>(" offset" ), NanNew<v8::Number>(chunk.offset ));
94- item->Set (NanNew<v8::String>(" bytes" ), NanNew<v8::Number>(chunk.bytes ));
95-
96- chunks->Set (NanNew<v8::Integer>(chunkIdx), item);
92+ v8::Local<v8::Object> item = Nan::New<v8::Object>();
93+ Nan::Set (item, Nan::New<v8::String>(" name" ).ToLocalChecked (),
94+ Nan::New<v8::String>(Constants::getInstance ().getLanguageName (lang)).ToLocalChecked ());
95+ Nan::Set (item, Nan::New<v8::String>(" code" ).ToLocalChecked (),
96+ Nan::New<v8::String>(Constants::getInstance ().getLanguageCode (lang)).ToLocalChecked ());
97+ Nan::Set (item, Nan::New<v8::String>(" offset" ).ToLocalChecked (),
98+ Nan::New<v8::Number>(chunk.offset ));
99+ Nan::Set (item, Nan::New<v8::String>(" bytes" ).ToLocalChecked (),
100+ Nan::New<v8::Number>(chunk.bytes ));
101+
102+ Nan::Set (chunks, Nan::New<v8::Integer>(chunkIdx), item);
97103 chunkIdx++;
98104 }
99105
100- results->Set (NanNew<v8::String>(" reliable" ), NanNew<v8::Boolean>(isReliable));
101- results->Set (NanNew<v8::String>(" textBytes" ), NanNew<v8::Number>(textBytesFound));
102- results->Set (NanNew<v8::String>(" languages" ), languages);
103- results->Set (NanNew<v8::String>(" chunks" ), chunks);
104-
105- NanReturnValue (results);
106+ Nan::Set (results, Nan::New<v8::String>(" reliable" ).ToLocalChecked (),
107+ Nan::New<v8::Boolean>(isReliable));
108+ Nan::Set (results, Nan::New<v8::String>(" textBytes" ).ToLocalChecked (),
109+ Nan::New<v8::Number>(textBytesFound));
110+ Nan::Set (results, Nan::New<v8::String>(" languages" ).ToLocalChecked (),
111+ languages);
112+ Nan::Set (results, Nan::New<v8::String>(" chunks" ).ToLocalChecked (),
113+ chunks);
114+
115+ info.GetReturnValue ().Set (results);
106116 }
107117
108118 extern " C" void init (v8::Handle<v8::Object> target) {
109- NanScope ();
110-
111119 // set detected languages
112- v8::Local<v8::Array> detected = NanNew <v8::Array>();
120+ v8::Local<v8::Array> detected = Nan::New <v8::Array>();
113121 vector<NodeCldDetected>* rawDetected = Constants::getInstance ().getDetected ();
114122 for (vector<NodeCldDetected>::size_type i = 0 ; i < rawDetected->size (); i++) {
115123 NodeCldDetected rawLanguage = rawDetected->at (i);
116- detected->Set (static_cast <uint32_t >(i), NanNew<v8::String>(rawLanguage.name ));
124+ Nan::Set (detected, static_cast <uint32_t >(i),
125+ Nan::New<v8::String>(rawLanguage.name ).ToLocalChecked ());
117126 }
118- target-> Set (NanNew <v8::String>(" DETECTED_LANGUAGES" ), detected);
127+ Nan:: Set (target, Nan::New <v8::String>(" DETECTED_LANGUAGES" ). ToLocalChecked ( ), detected);
119128
120129 // set all languages
121- v8::Local<v8::Object> languages = NanNew <v8::Object>();
130+ v8::Local<v8::Object> languages = Nan::New <v8::Object>();
122131 vector<NodeCldLanguage>* rawLanguages = Constants::getInstance ().getLanguages ();
123132 for (vector<NodeCldLanguage>::size_type i = 0 ; i < rawLanguages->size (); i++) {
124133 NodeCldLanguage rawLanguage = rawLanguages->at (i);
125- languages->Set (NanNew<v8::String>(rawLanguage.name ), NanNew<v8::String>(rawLanguage.code ));
134+ Nan::Set (languages, Nan::New<v8::String>(rawLanguage.name ).ToLocalChecked (),
135+ Nan::New<v8::String>(rawLanguage.code ).ToLocalChecked ());
126136 }
127- target-> Set (NanNew <v8::String>(" LANGUAGES" ), languages);
137+ Nan:: Set (target, Nan::New <v8::String>(" LANGUAGES" ). ToLocalChecked ( ), languages);
128138
129139 // set encodings
130- v8::Local<v8::Array> encodings = NanNew <v8::Array>();
140+ v8::Local<v8::Array> encodings = Nan::New <v8::Array>();
131141 vector<NodeCldEncoding>* rawEncodings = Constants::getInstance ().getEncodings ();
132142 for (vector<NodeCldEncoding>::size_type i = 0 ; i < rawEncodings->size (); i++) {
133143 NodeCldEncoding rawEncoding = rawEncodings->at (i);
134- encodings->Set (static_cast <uint32_t >(i), NanNew<v8::String>(rawEncoding.name ));
144+ Nan::Set (encodings, static_cast <uint32_t >(i),
145+ Nan::New<v8::String>(rawEncoding.name ).ToLocalChecked ());
135146 }
136- target-> Set (NanNew <v8::String>(" ENCODINGS" ), encodings);
147+ Nan:: Set (target, Nan::New <v8::String>(" ENCODINGS" ). ToLocalChecked ( ), encodings);
137148
138- NODE_SET_METHOD (target, " detect" , Detect);
149+ Nan::SetMethod (target, " detect" , Detect);
139150 }
140151
141152 NODE_MODULE (cld, init);
0 commit comments