Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.hxml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
-main Main
-lib utest
--macro jsrequire.JSRequire.npmInstall(false)
-cmd node bin/test.js
-cmd node bin/test.js
14 changes: 9 additions & 5 deletions src/jsrequire/JSRequire.hx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@ import haxe.macro.Type;
import haxe.macro.ExprTools;

class JSRequire {
macro public static function npmInstall(?createPackageJson : Bool) {

static var packageJsonPath = 'package.json';

macro public static function npmInstall(?createPackageJson : Bool,?jsonPath:String) {
if (jsonPath != null) packageJsonPath = jsonPath;
installNpmDependencies(createPackageJson);
return macro null;
}
Expand Down Expand Up @@ -43,11 +47,11 @@ class JSRequire {
}

static function ensurePackageJson(generate : Bool) {
if(sys.FileSystem.exists("package.json")) return true;
if(sys.FileSystem.exists(packageJsonPath)) return true;
if(generate) {
Sys.command('npm', ['init', '.']);
}
return sys.FileSystem.exists("package.json");
return sys.FileSystem.exists(packageJsonPath);
}

static function getDependencies(hasPackageJson : Bool) : Dynamic<String> {
Expand All @@ -59,7 +63,7 @@ class JSRequire {
}

static function getDependenciesFromPackageJson() : Dynamic<String> {
var json = haxe.Json.parse(sys.io.File.getContent("package.json")),
var json = haxe.Json.parse(sys.io.File.getContent(packageJsonPath)),
dependencies : Dynamic<String> = json.dependencies;
return null != dependencies ? dependencies : {};
}
Expand All @@ -81,4 +85,4 @@ class JSRequire {
Sys.command('npm', ['install', '--save', module]);
else
Sys.command('npm', ['install', module]);
}
}
3 changes: 2 additions & 1 deletion test/Lodash.hx
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@:jsRequire("lodash-node")
extern class Lodash {
static function pluck<T>(arr : Array<Dynamic<T>>, field : String) : T;
}
}

2 changes: 1 addition & 1 deletion test/Main.hx
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,4 @@ class Main {
public function testRequire() {
Assert.equals("1", pluck([{ value : "1" }], "value"));
}
}
}