33 **/
44
55// Emscripten build.
6- var Module = require("../libgit2.min");
6+ require("../libgit2.min");
77
8+ <% if (typeof ctor .dependencies != ' undefined' && ctor .dependencies .length ) { % >
89// NodeGit internal constructors.
9- <% if (typeof ctor .dependencies != ' undefined' ) { -% >
10- < % for (d in ctor .dependencies ) { -% >
11- var < %- typeMap[' git_' + ctor .dependencies [d].slice (11 , - 2 )].js % > = require (' ./<%- ctor.dependencies[d].slice(11, -2) %>' );
12- < % } -% >
13- < % } - %>
10+ < % ctor .dependencies .shift (); % >< % for (d in ctor .dependencies ) { % > var < %- typeMap[' git_' + ctor .dependencies [d].slice (11 , - 2 )].js % > = require (' ./<%- ctor.dependencies[d].slice(11, -2) %>' );
11+ < % } % >
12+ < % } %>
1413
1514/**
1615 * Represents a <% - ctor .jsClassName %> .
@@ -19,6 +18,94 @@ var <%- ctor.jsClassName %> = {};
1918< % } else { % >
2019function <%- ctor.jsClassName %>() {
2120
21+ }< % } %>
22+
23+ <%
24+ // List of unavailable words.
25+ var reservedWords = [
26+ " in" , " implements" , " interface" , " let" , " package" , " private" , " protected" ,
27+ " public" , " static" , " yield" , " class" , " enum" , " export" , " extends" ,
28+ " import" , " super" , " abstract" , " boolean" , " byte" , " char" , " class" , " const" ,
29+ " debugger" , " double" , " enum" , " export" , " extends" , " final" , " float" ,
30+ " goto" , " implements" , " import" , " int" , " interface" , " long" , " native" ,
31+ " package" , " private" , " protected" , " public" , " short" , " static" , " super" ,
32+ " synchronized" , " throws" , " transient" , " volatile"
33+ ];
34+
35+
36+ function args (descriptor , addCallback ) {
37+ var isAsync = descriptor .isAsync ;
38+
39+ var args = descriptor .args
40+ .filter (function (arg ) {
41+ return ! arg .isReturn && ! arg .isSelf && arg .name ;
42+ })
43+
44+ .map (function (arg ) {
45+ if (reservedWords .indexOf (arg .name ) > - 1 ) {
46+ return arg .name + " _safe" ;
47+ }
48+
49+ return arg .name ;
50+ });
51+
52+ if (isAsync && addCallback) {
53+ args .push (" callback" );
54+ }
55+
56+ return args;
2257}
58+ %>
59+
60+ <% if (ctor .cType != null ) { % >
61+ < % ctor .functions .forEach (function (descriptor ) { % >
62+ < % if (! descriptor .isConstructorMethod ) { % >
63+ < %- ctor .jsClassName % > .prototype .< %- descriptor .jsFunctionName % > = function (< %- args (descriptor, true ) % > ) {
64+ < % } else { % >
65+ < %- ctor .jsClassName % > .< %- descriptor .jsFunctionName % > = function (< %- args (descriptor, true ) % > ) {
66+ < % } % >
67+
68+ < % if (descriptor .args [1 ] && descriptor .args [1 ].name === " path" ) { % >
69+ // Always resolve the path.
70+ path = require (" path" ).resolve (path);
71+
72+ var root = path .split (" /" )[1 ];
73+
74+ try {
75+ global .Module .FS .mkdir (" /" + root);
76+ global .Module .FS .mount (global .Module .NODEFS , { root: " /" + root }, " /" + root);
77+ } catch (ex) {}
78+ < % } % >
79+
80+ < % if (descriptor .args && descriptor .args [0 ].isReturn ) { % >
81+ < % if (descriptor .isConstructorMethod ) { % >
82+ var < %- descriptor .args [0 ].name % > = new < %- ctor .jsClassName % > ();
83+ < % } else { % >
84+ var < %- descriptor .args [0 ].name % > = this ;
85+ < % } % >
86+ < % } % >
87+
88+ var err = global .Module .ccall (" <%- descriptor.cFunctionName %>" , " <%- descriptor.return.cType %>" , [
89+ < % descriptor .args .forEach (function (arg ) { % >
90+ " <%- (arg.jsClassName || " " ).toLowerCase() %>" ,
91+ < % }); % >
92+ ], [
93+ < % if (descriptor .args && descriptor .args [0 ].isReturn ) { % >
94+ < %- descriptor .args [0 ].name % > ,
95+ < % } % >
96+ < %- args (descriptor) % >
97+ ]);
98+
99+ < % if (descriptor .isAsync ) { % >
100+ callback (err < %- descriptor .args [0 ].name ? " , " + descriptor .args [0 ].name : " " % > );
101+ < % } % >
102+
103+ };< % }); % >
104+ < % } else { % >
105+ < % ctor .functions .forEach (function (descriptor ) { % >
106+ < %- ctor .jsClassName % > .< %- descriptor .jsFunctionName % > = function (< %- args (descriptor, true ) % > ) {
107+
108+ };
109+ < % }); % >
23110< % } % >
24111module .exports = < %- ctor .jsClassName % > ;
0 commit comments