Skip to content

Commit ae24ee2

Browse files
author
Mihail Slavchev
committed
Merge pull request #403 from NativeScript/JavaScriptImplementation-Require
Change the JavaScriptImplementation attribute to utilize the require path
2 parents d26c4db + b535b6f commit ae24ee2

9 files changed

Lines changed: 24 additions & 20 deletions

File tree

build/project-template-gradle/src/main/java/com/tns/FragmentClass.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import android.view.View;
77
import android.view.ViewGroup;
88

9-
@JavaScriptImplementation(javaScriptFile = "app/tns_modules/ui/frame/frame.js")
9+
@JavaScriptImplementation(javaScriptFile = "ui/frame")
1010
public class FragmentClass extends android.app.Fragment implements com.tns.NativeScriptHashCodeProvider {
1111

1212
public FragmentClass()

build/project-template-gradle/src/main/java/com/tns/NativeScriptActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package com.tns;
22

3-
@JavaScriptImplementation(javaScriptFile = "app/tns_modules/ui/frame/frame.js")
3+
@JavaScriptImplementation(javaScriptFile = "ui/frame")
44
public class NativeScriptActivity extends android.app.Activity implements com.tns.NativeScriptHashCodeProvider {
55

66
public NativeScriptActivity()

build/project-template-gradle/src/main/java/com/tns/NativeScriptApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import android.app.Application;
44

5-
@JavaScriptImplementation(javaScriptFile = "app/tns_modules/application/application.js")
5+
@JavaScriptImplementation(javaScriptFile = "application")
66
public class NativeScriptApplication extends android.app.Application implements com.tns.NativeScriptHashCodeProvider {
77

88
private static NativeScriptApplication thiz;

src/jni/Module.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ void Module::RequireCallback(const v8::FunctionCallbackInfo<v8::Value>& args)
145145

146146
auto isData = false;
147147

148-
auto moduleObj = Load(modulePath, isData);
148+
auto moduleObj = LoadImpl(modulePath, isData);
149149

150150
if (isData)
151151
{
@@ -185,7 +185,17 @@ void Module::RequireNativeCallback(const v8::FunctionCallbackInfo<v8::Value>& ar
185185
funcPtr(args);
186186
}
187187

188-
Local<Object> Module::Load(const string& path, bool& isData)
188+
void Module::Load(const string& path)
189+
{
190+
auto isolate = Isolate::GetCurrent();
191+
auto context = isolate->GetCurrentContext();
192+
auto globalObject = context->Global();
193+
auto require = globalObject->Get(context, ConvertToV8String("require")).ToLocalChecked().As<Function>();
194+
Local<Value> args[] = { ConvertToV8String(path) };
195+
require->Call(context, globalObject, 1, args);
196+
}
197+
198+
Local<Object> Module::LoadImpl(const string& path, bool& isData)
189199
{
190200
Local<Object> result;
191201

src/jni/Module.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ namespace tns
2121
public:
2222
static void Init(v8::Isolate *isolate);
2323

24-
static v8::Local<v8::Object> Load(const std::string& path, bool& isData);
24+
static void Load(const std::string& path);
2525

2626
static void RequireCallback(const v8::FunctionCallbackInfo<v8::Value>& args);
2727

@@ -30,6 +30,8 @@ namespace tns
3030

3131
static v8::Local<v8::String> WrapModuleContent(const std::string& path);
3232

33+
static v8::Local<v8::Object> LoadImpl(const std::string& path, bool& isData);
34+
3335
static v8::Local<v8::Object> LoadModule(v8::Isolate *isolate, const std::string& path);
3436

3537
static v8::Local<v8::Object> LoadData(v8::Isolate *isolate, const std::string& path);

src/jni/NativePlatform.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -88,12 +88,7 @@ void NativePlatform::RunModule(JNIEnv *_env, jobject obj, jstring scriptFile)
8888
JEnv env(_env);
8989

9090
string filePath = ArgConverter::jstringToString(scriptFile);
91-
92-
bool isData = false;
93-
94-
auto moduleObj = Module::Load(filePath, isData);
95-
96-
assert(!isData);
91+
Module::Load(filePath);
9792
}
9893

9994
jobject NativePlatform::RunScript(JNIEnv *_env, jobject obj, jstring scriptFile)

src/src/com/tns/Platform.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -174,11 +174,8 @@ public static void run() throws NativeScriptException
174174

175175
public static void runModule(File jsFile) throws NativeScriptException
176176
{
177-
if (jsFile.exists() && jsFile.isFile())
178-
{
179-
String filePath = jsFile.getAbsolutePath();
180-
runModule(filePath);
181-
}
177+
String filePath = jsFile.getPath();
178+
runModule(filePath);
182179
}
183180

184181
public static Object runScript(File jsFile) throws NativeScriptException
@@ -357,7 +354,7 @@ private static void createJSInstance(Object instance)
357354
JavaScriptImplementation jsImpl = clazz.getAnnotation(JavaScriptImplementation.class);
358355
if (jsImpl != null)
359356
{
360-
File jsFile = new File(Module.getApplicationFilesPath(), jsImpl.javaScriptFile());
357+
File jsFile = new File(jsImpl.javaScriptFile());
361358
runModule(jsFile);
362359
}
363360
loadedJavaScriptExtends.put(clazz, jsImpl);

test-app/src/com/tns/NativeScriptActivity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
*/
44
package com.tns;
55

6-
@JavaScriptImplementation(javaScriptFile = "app/MyActivity.js")
6+
@JavaScriptImplementation(javaScriptFile = "./MyActivity.js")
77
public class NativeScriptActivity extends android.app.Activity
88
{
99
public NativeScriptActivity()

test-app/src/com/tns/NativeScriptApplication.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import android.app.Application;
44

5-
@JavaScriptImplementation(javaScriptFile = "app/MyApp.js")
5+
@JavaScriptImplementation(javaScriptFile = "./MyApp.js")
66
public class NativeScriptApplication extends android.app.Application implements com.tns.NativeScriptHashCodeProvider {
77

88
private static NativeScriptApplication thiz;

0 commit comments

Comments
 (0)