whet 0.0.6 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,5 @@
1
1
  import {BaseCache} from "./BaseCache.js"
2
2
  import {Utils} from "../Utils.js"
3
- import {SourceId_Fields_} from "../SourceId.js"
4
3
  import {SourceHash} from "../SourceHash.js"
5
4
  import {SourceData, Source} from "../Source.js"
6
5
  import {Log} from "../Log.js"
@@ -21,9 +20,13 @@ class FileCache extends Register.inherits(BaseCache) {
21
20
  this.flushQueued = false;
22
21
  super.new(rootDir, new StringMap());
23
22
  var s = ".whet/cache.json";
24
- s = Path.posix.normalize(".whet/cache.json");
25
- s = StringTools.replace(s, "\\", "/");
26
- var this1 = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
23
+ var str = (".whet/cache.json".length > 1 && HxOverrides.cca(".whet/cache.json", 0) == 47) ? ".whet/cache.json".substring(1) : ".whet/cache.json";
24
+ if (str.length > 0) {
25
+ str = Path.posix.normalize(str);
26
+ str = StringTools.replace(str, "\\", "/");
27
+ };
28
+ s = str;
29
+ var this1 = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
27
30
  if (this1.charAt(0) != "/") {
28
31
  throw new Error("Badly formed SourceId.");
29
32
  };
@@ -44,9 +47,13 @@ class FileCache extends Register.inherits(BaseCache) {
44
47
  var tmp = SourceHash.fromHex(val.hash);
45
48
  var val1 = val.ctime;
46
49
  var s = val.baseDir;
47
- s = Path.posix.normalize(s);
48
- s = StringTools.replace(s, "\\", "/");
49
- var tmp1 = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
50
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
51
+ if (str.length > 0) {
52
+ str = Path.posix.normalize(str);
53
+ str = StringTools.replace(str, "\\", "/");
54
+ };
55
+ s = str;
56
+ var tmp1 = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
50
57
  var _g2 = [];
51
58
  var _g3 = 0;
52
59
  var _g4 = val.files;
@@ -55,13 +62,21 @@ class FileCache extends Register.inherits(BaseCache) {
55
62
  ++_g3;
56
63
  var tmp2 = SourceHash.fromHex(file.fileHash);
57
64
  var s1 = file.filePath;
58
- s1 = Path.posix.normalize(s1);
59
- s1 = StringTools.replace(s1, "\\", "/");
60
- var tmp3 = (SourceId_Fields_.startsWithSlash(s1)) ? s1 : "/" + s1;
65
+ var str1 = (s1.length > 1 && HxOverrides.cca(s1, 0) == 47) ? s1.substring(1) : s1;
66
+ if (str1.length > 0) {
67
+ str1 = Path.posix.normalize(str1);
68
+ str1 = StringTools.replace(str1, "\\", "/");
69
+ };
70
+ s1 = str1;
71
+ var tmp3 = (HxOverrides.cca(s1, 0) == 47) ? s1 : "/" + s1;
61
72
  var s2 = file.id;
62
- s2 = Path.posix.normalize(s2);
63
- s2 = StringTools.replace(s2, "\\", "/");
64
- _g2.push({"fileHash": tmp2, "filePath": tmp3, "id": (SourceId_Fields_.startsWithSlash(s2)) ? s2 : "/" + s2});
73
+ var str2 = (s2.length > 1 && HxOverrides.cca(s2, 0) == 47) ? s2.substring(1) : s2;
74
+ if (str2.length > 0) {
75
+ str2 = Path.posix.normalize(str2);
76
+ str2 = StringTools.replace(str2, "\\", "/");
77
+ };
78
+ s2 = str2;
79
+ _g2.push({"fileHash": tmp2, "filePath": tmp3, "id": (HxOverrides.cca(s2, 0) == 47) ? s2 : "/" + s2});
65
80
  };
66
81
  _g.push({"hash": tmp, "ctime": val1, "baseDir": tmp1, "files": _g2});
67
82
  };
@@ -80,9 +95,13 @@ class FileCache extends Register.inherits(BaseCache) {
80
95
  var _g1 = _g.path;
81
96
  if (source.data.length == 1) {
82
97
  var s = _g1.substring(_g1.lastIndexOf("/"));
83
- s = Path.posix.normalize(s);
84
- s = StringTools.replace(s, "\\", "/");
85
- idOverride = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
98
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
99
+ if (str.length > 0) {
100
+ str = Path.posix.normalize(str);
101
+ str = StringTools.replace(str, "\\", "/");
102
+ };
103
+ s = str;
104
+ idOverride = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
86
105
  } else {
87
106
  idOverride = null;
88
107
  };
@@ -111,14 +130,18 @@ class FileCache extends Register.inherits(BaseCache) {
111
130
  if (_g._hx_index == 3) {
112
131
  var _g1 = _g.path;
113
132
  var invalidPath;
114
- if (value.files.length == 1 && !SourceId_Fields_.endsWithSlash(_g1)) {
133
+ if (value.files.length == 1 && HxOverrides.cca(_g1, _g1.length - 1) != 47) {
115
134
  invalidPath = value.files[0].filePath != _g1;
116
135
  } else {
117
136
  var value1 = value.baseDir;
118
137
  var s = _g1.substring(0, _g1.lastIndexOf("/") + 1);
119
- s = Path.posix.normalize(s);
120
- s = StringTools.replace(s, "\\", "/");
121
- invalidPath = value1 != ((SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s);
138
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
139
+ if (str.length > 0) {
140
+ str = Path.posix.normalize(str);
141
+ str = StringTools.replace(str, "\\", "/");
142
+ };
143
+ s = str;
144
+ invalidPath = value1 != ((HxOverrides.cca(s, 0) == 47) ? s : "/" + s);
122
145
  };
123
146
  if (invalidPath) {
124
147
  return Promise.resolve(null);
@@ -292,9 +315,13 @@ class FileCache extends Register.inherits(BaseCache) {
292
315
  var tmp1 = HxOverrides.dateStr(new Date(val.ctime * 1000));
293
316
  var this2 = val.baseDir;
294
317
  var s = "/";
295
- s = Path.posix.normalize("/");
296
- s = StringTools.replace(s, "\\", "/");
297
- var root = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
318
+ var str = ("/".length > 1 && HxOverrides.cca("/", 0) == 47) ? "/".substring(1) : "/";
319
+ if (str.length > 0) {
320
+ str = Path.posix.normalize(str);
321
+ str = StringTools.replace(str, "\\", "/");
322
+ };
323
+ s = str;
324
+ var root = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
298
325
  if (this2.charAt(0) != "/") {
299
326
  throw new Error("Badly formed SourceId.");
300
327
  };
@@ -308,18 +335,26 @@ class FileCache extends Register.inherits(BaseCache) {
308
335
  var tmp3 = SourceHash.toHex(file.fileHash);
309
336
  var this3 = file.filePath;
310
337
  var s1 = "/";
311
- s1 = Path.posix.normalize("/");
312
- s1 = StringTools.replace(s1, "\\", "/");
313
- var root1 = (SourceId_Fields_.startsWithSlash(s1)) ? s1 : "/" + s1;
338
+ var str1 = ("/".length > 1 && HxOverrides.cca("/", 0) == 47) ? "/".substring(1) : "/";
339
+ if (str1.length > 0) {
340
+ str1 = Path.posix.normalize(str1);
341
+ str1 = StringTools.replace(str1, "\\", "/");
342
+ };
343
+ s1 = str1;
344
+ var root1 = (HxOverrides.cca(s1, 0) == 47) ? s1 : "/" + s1;
314
345
  if (this3.charAt(0) != "/") {
315
346
  throw new Error("Badly formed SourceId.");
316
347
  };
317
348
  var tmp4 = Path.posix.join(".", root1, ".", this3);
318
349
  var this4 = file.id;
319
350
  var s2 = "/";
320
- s2 = Path.posix.normalize("/");
321
- s2 = StringTools.replace(s2, "\\", "/");
322
- var root2 = (SourceId_Fields_.startsWithSlash(s2)) ? s2 : "/" + s2;
351
+ var str2 = ("/".length > 1 && HxOverrides.cca("/", 0) == 47) ? "/".substring(1) : "/";
352
+ if (str2.length > 0) {
353
+ str2 = Path.posix.normalize(str2);
354
+ str2 = StringTools.replace(str2, "\\", "/");
355
+ };
356
+ s2 = str2;
357
+ var root2 = (HxOverrides.cca(s2, 0) == 47) ? s2 : "/" + s2;
323
358
  if (this4.charAt(0) != "/") {
324
359
  throw new Error("Badly formed SourceId.");
325
360
  };
@@ -1,10 +1,10 @@
1
1
  import {Router} from "../route/Router.js"
2
2
  import {Route} from "../route/Route.js"
3
3
  import {RouteType_Fields_} from "./RouteType.js"
4
- import {SourceId_Fields_} from "../SourceId.js"
5
4
  import * as Path from "path"
6
5
  import {Register} from "../../genes/Register.js"
7
6
  import {StringTools} from "../../StringTools.js"
7
+ import {HxOverrides} from "../../HxOverrides.js"
8
8
 
9
9
  const $global = Register.$global
10
10
 
@@ -33,9 +33,13 @@ class RoutePathType_Fields_ {
33
33
  throw new Error("RoutePath element should have at most 3 entries `[serveId, route, filter]`.");
34
34
  };
35
35
  var s = item[0];
36
- s = Path.posix.normalize(s);
37
- s = StringTools.replace(s, "\\", "/");
38
- var tmp = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
36
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
37
+ if (str.length > 0) {
38
+ str = Path.posix.normalize(str);
39
+ str = StringTools.replace(str, "\\", "/");
40
+ };
41
+ s = str;
42
+ var tmp = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
39
43
  var _g3 = item.slice(1);
40
44
  _g.push({"routeUnder": tmp, "route": (_g3.length == 1) ? (((item[1]) instanceof Route)) ? item[1] : RouteType_Fields_.makeRoute([_g3]) : RouteType_Fields_.makeRoute([_g3])});
41
45
  };
@@ -1,3 +1,4 @@
1
+ import {RouteResult} from "../route/RouteResult"
1
2
  import {Route, RouteData} from "../route/Route"
2
3
  import {MaybeArray} from "./MaybeArray"
3
4
  import {AnyStone} from "../Stone"
@@ -7,6 +8,6 @@ import {AnyStone} from "../Stone"
7
8
  */
8
9
  export type RouteType = Route | MaybeArray<MaybeArray<BaseRouteType>>
9
10
 
10
- export type BaseRouteType = string | AnyStone
11
+ export type BaseRouteType = RouteResult | string | AnyStone
11
12
 
12
13
  export const makeRoute: (routeType: RouteType) => Route
@@ -1,12 +1,14 @@
1
1
  import {Files} from "../stones/Files.js"
2
+ import {RouteResult} from "../route/RouteResult.js"
2
3
  import {Route} from "../route/Route.js"
3
4
  import {MaybeArray_Fields_} from "./MaybeArray.js"
4
5
  import {Stone} from "../Stone.js"
5
- import {SourceId_Fields_, SourceId} from "../SourceId.js"
6
+ import {SourceId} from "../SourceId.js"
6
7
  import * as Path from "path"
7
8
  import {Register} from "../../genes/Register.js"
8
9
  import {StringTools} from "../../StringTools.js"
9
10
  import {Std} from "../../Std.js"
11
+ import {HxOverrides} from "../../HxOverrides.js"
10
12
 
11
13
  const $global = Register.$global
12
14
 
@@ -33,9 +35,13 @@ class RouteType_Fields_ {
33
35
  };
34
36
  var tinner1 = tinner[0];
35
37
  var s = tinner[1];
36
- s = Path.posix.normalize(s);
37
- s = StringTools.replace(s, "\\", "/");
38
- _g.push(RouteType_Fields_.getRoute(tinner1, (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s));
38
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
39
+ if (str.length > 0) {
40
+ str = Path.posix.normalize(str);
41
+ str = StringTools.replace(str, "\\", "/");
42
+ };
43
+ s = str;
44
+ _g.push(RouteType_Fields_.getRoute(tinner1, (HxOverrides.cca(s, 0) == 47) ? s : "/" + s));
39
45
  };
40
46
  };
41
47
  return _g;
@@ -48,13 +54,21 @@ class RouteType_Fields_ {
48
54
  tmp1 = path;
49
55
  } else {
50
56
  var s = t;
51
- s = Path.posix.normalize(s);
52
- s = StringTools.replace(s, "\\", "/");
53
- var p = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
57
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
58
+ if (str.length > 0) {
59
+ str = Path.posix.normalize(str);
60
+ str = StringTools.replace(str, "\\", "/");
61
+ };
62
+ s = str;
63
+ var p = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
54
64
  var s = p.substring(0, p.lastIndexOf("/") + 1);
55
- s = Path.posix.normalize(s);
56
- s = StringTools.replace(s, "\\", "/");
57
- tmp1 = SourceId.relativeTo(p, (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s);
65
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
66
+ if (str.length > 0) {
67
+ str = Path.posix.normalize(str);
68
+ str = StringTools.replace(str, "\\", "/");
69
+ };
70
+ s = str;
71
+ tmp1 = SourceId.relativeTo(p, (HxOverrides.cca(s, 0) == 47) ? s : "/" + s);
58
72
  };
59
73
  return {"stone": tmp, "path": tmp1};
60
74
  } else if (((t) instanceof Stone)) {
@@ -63,13 +77,19 @@ class RouteType_Fields_ {
63
77
  tmp = path;
64
78
  } else {
65
79
  var s = "/";
66
- s = Path.posix.normalize("/");
67
- s = StringTools.replace(s, "\\", "/");
68
- tmp = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
80
+ var str = ("/".length > 1 && HxOverrides.cca("/", 0) == 47) ? "/".substring(1) : "/";
81
+ if (str.length > 0) {
82
+ str = Path.posix.normalize(str);
83
+ str = StringTools.replace(str, "\\", "/");
84
+ };
85
+ s = str;
86
+ tmp = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
69
87
  };
70
88
  return {"stone": t, "path": tmp};
89
+ } else if (((t) instanceof RouteResult)) {
90
+ return {"stone": t.source, "path": t.sourceId};
71
91
  } else {
72
- throw new Error("Unsupported type for Route. Expected String or Stone, but got " + Std.string(t.constructor?.name) + ".");
92
+ throw new Error("Unsupported type for Route. Expected String, Stone or RouteResult, but got " + Std.string(t.constructor?.name) + ".");
73
93
  };
74
94
  }
75
95
  static get __name__() {
@@ -1,10 +1,11 @@
1
1
  import {RouteResult} from "./RouteResult.js"
2
2
  import {RouteType_Fields_} from "../magic/RouteType.js"
3
- import {SourceId_Fields_, SourceId} from "../SourceId.js"
3
+ import {SourceId} from "../SourceId.js"
4
4
  import {SourceHash} from "../SourceHash.js"
5
5
  import * as Path from "path"
6
6
  import {Register} from "../../genes/Register.js"
7
7
  import {StringTools} from "../../StringTools.js"
8
+ import {HxOverrides} from "../../HxOverrides.js"
8
9
 
9
10
  const $global = Register.$global
10
11
 
@@ -42,13 +43,29 @@ class Route extends Register.inherits() {
42
43
  _g.push(r[0].stone.list().then((function (r) {
43
44
  return function (list) {
44
45
  var arr = [];
45
- if (SourceId_Fields_.endsWithSlash(r[0].path)) {
46
+ var this1 = r[0].path;
47
+ if (HxOverrides.cca(this1, this1.length - 1) == 47) {
46
48
  var _g = 0;
47
49
  while (_g < list.length) {
48
50
  var path = list[_g];
49
51
  ++_g;
50
- var _g1 = r[0].stone;
51
- arr.push(new RouteResult(SourceId.relativeTo(path, r[0].path), path, _g1));
52
+ var directory = r[0].path;
53
+ if (HxOverrides.cca(directory, directory.length - 1) != 47) {
54
+ throw new Error("\"" + directory + "\" is not a directory.");
55
+ };
56
+ var tmp;
57
+ var s = path.substring(0, path.lastIndexOf("/") + 1);
58
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
59
+ if (str.length > 0) {
60
+ str = Path.posix.normalize(str);
61
+ str = StringTools.replace(str, "\\", "/");
62
+ };
63
+ s = str;
64
+ tmp = ((HxOverrides.cca(s, 0) == 47) ? s : "/" + s).indexOf(directory) == 0;
65
+ if (tmp) {
66
+ var _g1 = r[0].stone;
67
+ arr.push(new RouteResult(SourceId.relativeTo(path, r[0].path), path, _g1));
68
+ };
52
69
  };
53
70
  } else {
54
71
  var _g = 0;
@@ -58,9 +75,13 @@ class Route extends Register.inherits() {
58
75
  if (path == r[0].path) {
59
76
  var _g1 = r[0].stone;
60
77
  var s = path.substring(path.lastIndexOf("/"));
61
- s = Path.posix.normalize(s);
62
- s = StringTools.replace(s, "\\", "/");
63
- arr.push(new RouteResult((SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s, path, _g1));
78
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
79
+ if (str.length > 0) {
80
+ str = Path.posix.normalize(str);
81
+ str = StringTools.replace(str, "\\", "/");
82
+ };
83
+ s = str;
84
+ arr.push(new RouteResult((HxOverrides.cca(s, 0) == 47) ? s : "/" + s, path, _g1));
64
85
  };
65
86
  };
66
87
  };
@@ -1,10 +1,11 @@
1
1
  import {RoutePathType_Fields_} from "../magic/RoutePathType.js"
2
2
  import {Utils} from "../Utils.js"
3
- import {SourceId_Fields_, SourceId} from "../SourceId.js"
3
+ import {SourceId} from "../SourceId.js"
4
4
  import {SourceHash} from "../SourceHash.js"
5
5
  import * as Path from "path"
6
6
  import {Register} from "../../genes/Register.js"
7
7
  import {StringTools} from "../../StringTools.js"
8
+ import {HxOverrides} from "../../HxOverrides.js"
8
9
 
9
10
  const $global = Register.$global
10
11
 
@@ -26,12 +27,16 @@ class Router extends Register.inherits() {
26
27
  find(id, firstOnly) {
27
28
  var _gthis = this;
28
29
  var s = id;
29
- s = Path.posix.normalize(id);
30
- s = StringTools.replace(s, "\\", "/");
31
- var sourceId = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
30
+ var str = (id.length > 1 && HxOverrides.cca(id, 0) == 47) ? id.substring(1) : id;
31
+ if (str.length > 0) {
32
+ str = Path.posix.normalize(str);
33
+ str = StringTools.replace(str, "\\", "/");
34
+ };
35
+ s = str;
36
+ var sourceId = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
32
37
  return new Promise(function (res, rej) {
33
38
  if (firstOnly == null) {
34
- firstOnly = !SourceId_Fields_.endsWithSlash(sourceId);
39
+ firstOnly = HxOverrides.cca(sourceId, sourceId.length - 1) != 47;
35
40
  };
36
41
  var result = [];
37
42
  var _g = [];
@@ -42,13 +47,14 @@ class Router extends Register.inherits() {
42
47
  ++_g1;
43
48
  _g.push(path[0].route.list().then((function (path) {
44
49
  return function (list) {
45
- if (SourceId_Fields_.endsWithSlash(path[0].routeUnder)) {
50
+ var this1 = path[0].routeUnder;
51
+ if (HxOverrides.cca(this1, this1.length - 1) == 47) {
46
52
  var _g = 0;
47
53
  while (_g < list.length) {
48
54
  var item = list[_g];
49
55
  ++_g;
50
56
  item.serveId = SourceId.getPutInDir(item.serveId, path[0].routeUnder);
51
- if (SourceId_Fields_.endsWithSlash(sourceId)) {
57
+ if (HxOverrides.cca(sourceId, sourceId.length - 1) == 47) {
52
58
  var rel = SourceId.relativeTo(item.serveId, sourceId);
53
59
  if (rel != null) {
54
60
  item.serveId = rel;
@@ -56,9 +62,13 @@ class Router extends Register.inherits() {
56
62
  };
57
63
  } else if (sourceId == item.serveId) {
58
64
  var s = sourceId.substring(sourceId.lastIndexOf("/"));
59
- s = Path.posix.normalize(s);
60
- s = StringTools.replace(s, "\\", "/");
61
- item.serveId = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
65
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
66
+ if (str.length > 0) {
67
+ str = Path.posix.normalize(str);
68
+ str = StringTools.replace(str, "\\", "/");
69
+ };
70
+ s = str;
71
+ item.serveId = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
62
72
  result.push(item);
63
73
  };
64
74
  };
@@ -68,7 +78,7 @@ class Router extends Register.inherits() {
68
78
  var item = list[_g];
69
79
  ++_g;
70
80
  item.serveId = path[0].routeUnder;
71
- if (SourceId_Fields_.endsWithSlash(sourceId)) {
81
+ if (HxOverrides.cca(sourceId, sourceId.length - 1) == 47) {
72
82
  var rel = SourceId.relativeTo(item.serveId, sourceId);
73
83
  if (rel != null) {
74
84
  item.serveId = rel;
@@ -76,9 +86,13 @@ class Router extends Register.inherits() {
76
86
  };
77
87
  } else if (sourceId == item.serveId) {
78
88
  var s = sourceId.substring(sourceId.lastIndexOf("/"));
79
- s = Path.posix.normalize(s);
80
- s = StringTools.replace(s, "\\", "/");
81
- item.serveId = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
89
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
90
+ if (str.length > 0) {
91
+ str = Path.posix.normalize(str);
92
+ str = StringTools.replace(str, "\\", "/");
93
+ };
94
+ s = str;
95
+ item.serveId = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
82
96
  result.push(item);
83
97
  };
84
98
  };
@@ -164,9 +178,13 @@ class Router extends Register.inherits() {
164
178
  var saveInto1 = saveInto;
165
179
  var this1 = r.serveId;
166
180
  var s = "/";
167
- s = Path.posix.normalize("/");
168
- s = StringTools.replace(s, "\\", "/");
169
- var root = (SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s;
181
+ var str = ("/".length > 1 && HxOverrides.cca("/", 0) == 47) ? "/".substring(1) : "/";
182
+ if (str.length > 0) {
183
+ str = Path.posix.normalize(str);
184
+ str = StringTools.replace(str, "\\", "/");
185
+ };
186
+ s = str;
187
+ var root = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
170
188
  if (this1.charAt(0) != "/") {
171
189
  throw new Error("Badly formed SourceId.");
172
190
  };
@@ -8,6 +8,7 @@ import {Project} from "../Project"
8
8
 
9
9
  export declare class Files extends Stone<FilesConfig> {
10
10
  constructor(config: FilesConfig)
11
+ protected initConfig(): void
11
12
  protected generate(hash: SourceHash): Promise<SourceData[]>
12
13
  }
13
14
 
@@ -18,11 +19,15 @@ export type FilesConfig = {
18
19
  */
19
20
  id?: null | StoneIdType,
20
21
  /**
21
- Can be either a file, or a directory that won't be recursed.
22
+ Can be either a file, or a directory.
22
23
  */
23
24
  paths: MaybeArray<string>,
24
25
  /**
25
26
  Defaults to the last instanced project.
26
27
  */
27
- project?: null | Project
28
+ project?: null | Project,
29
+ /**
30
+ Whether to recurse directories. Defaults to `true`.
31
+ */
32
+ recursive?: null | boolean
28
33
  }
@@ -1,11 +1,12 @@
1
1
  import {MaybeArray_Fields_} from "../magic/MaybeArray.js"
2
+ import {Utils} from "../Utils.js"
2
3
  import {Stone} from "../Stone.js"
3
4
  import {SourceId_Fields_, RootDir, SourceId} from "../SourceId.js"
4
5
  import {SourceData} from "../Source.js"
5
6
  import * as Path from "path"
6
7
  import {Register} from "../../genes/Register.js"
7
- import * as Fs from "fs"
8
8
  import {StringTools} from "../../StringTools.js"
9
+ import {HxOverrides} from "../../HxOverrides.js"
9
10
 
10
11
  const $global = Register.$global
11
12
 
@@ -14,72 +15,67 @@ class Files extends Register.inherits(Stone) {
14
15
  new(config) {
15
16
  super.new(config);
16
17
  }
18
+ initConfig() {
19
+ this.config.recursive = true;
20
+ }
17
21
  generate(hash) {
18
22
  var _gthis = this;
19
- var _g = MaybeArray_Fields_.makeArray(this.config.paths);
20
- while (0 < _g.length) {
21
- var pathString = _g[0];
23
+ var _g = [];
24
+ var _g1 = 0;
25
+ var _g2 = MaybeArray_Fields_.makeArray(this.config.paths);
26
+ while (_g1 < _g2.length) {
27
+ var pathString = _g2[_g1];
28
+ ++_g1;
22
29
  var s = pathString;
23
- s = Path.posix.normalize(pathString);
24
- s = StringTools.replace(s, "\\", "/");
25
- var path = [(SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s];
26
- var tmp;
27
- if (SourceId_Fields_.endsWithSlash(path[0])) {
28
- tmp = new Promise((function (path) {
29
- return function (res, rej) {
30
- var root = RootDir.fromProject(_gthis.project);
31
- if (path[0].charAt(0) != "/") {
32
- throw new Error("Badly formed SourceId.");
33
- };
34
- Fs.readdir(Path.posix.join(".", root, ".", path[0]), (function (path) {
35
- return function (err, files) {
36
- if (err != null) {
37
- rej(err);
38
- } else {
39
- var res1 = res;
40
- var _g = [];
41
- var _g1 = 0;
42
- while (_g1 < files.length) {
43
- var file = files[_g1];
44
- ++_g1;
45
- var s = file;
46
- s = Path.posix.normalize(file);
47
- s = StringTools.replace(s, "\\", "/");
48
- var filepath = SourceId.getPutInDir((SourceId_Fields_.startsWithSlash(s)) ? s : "/" + s, path[0]);
49
- _g.push({"id": SourceId.relativeTo(filepath, path[0]), "pathId": filepath});
50
- };
51
- res1(_g);
52
- };
30
+ var str = (pathString.length > 1 && HxOverrides.cca(pathString, 0) == 47) ? pathString.substring(1) : pathString;
31
+ if (str.length > 0) {
32
+ str = Path.posix.normalize(str);
33
+ str = StringTools.replace(str, "\\", "/");
34
+ };
35
+ s = str;
36
+ var path = [(HxOverrides.cca(s, 0) == 47) ? s : "/" + s];
37
+ if (HxOverrides.cca(path[0], path[0].length - 1) == 47) {
38
+ _g.push(Utils.listDirectoryFiles(this.cwdPath(pathString), this.config.recursive).then((function (path) {
39
+ return function (arr) {
40
+ var _g = [];
41
+ var _g1 = 0;
42
+ while (_g1 < arr.length) {
43
+ var file = arr[_g1];
44
+ ++_g1;
45
+ var s = SourceId_Fields_.fromCwdPath(file, RootDir.fromProject(_gthis.project));
46
+ var str = (s.length > 1 && HxOverrides.cca(s, 0) == 47) ? s.substring(1) : s;
47
+ if (str.length > 0) {
48
+ str = Path.posix.normalize(str);
49
+ str = StringTools.replace(str, "\\", "/");
53
50
  };
54
- })(path));
51
+ s = str;
52
+ var pathId = (HxOverrides.cca(s, 0) == 47) ? s : "/" + s;
53
+ _g.push(SourceData.fromFile(SourceId.relativeTo(pathId, path[0]), file, pathId));
54
+ };
55
+ return _g;
56
+ };
57
+ })(path)).then((function () {
58
+ return function (f) {
59
+ return Promise.all(f);
55
60
  };
56
- })(path));
61
+ })()));
57
62
  } else {
58
- var s1 = path[0].substring(path[0].lastIndexOf("/"));
59
- s1 = Path.posix.normalize(s1);
60
- s1 = StringTools.replace(s1, "\\", "/");
61
- tmp = Promise.resolve([{"id": (SourceId_Fields_.startsWithSlash(s1)) ? s1 : "/" + s1, "pathId": path[0]}]);
62
- };
63
- return tmp.then((function () {
64
- return function (files) {
65
- var _g = [];
66
- var _g1 = 0;
67
- while (_g1 < files.length) {
68
- var f = files[_g1];
69
- ++_g1;
70
- var f1 = f.id;
71
- var this1 = f.pathId;
72
- var root = RootDir.fromProject(_gthis.project);
73
- if (this1.charAt(0) != "/") {
74
- throw new Error("Badly formed SourceId.");
75
- };
76
- _g.push(SourceData.fromFile(f1, Path.posix.join(".", root, ".", this1), f.pathId));
63
+ _g.push(SourceData.fromFile(path[0].substring(path[0].lastIndexOf("/")), this.cwdPath(path[0]), path[0]).then((function () {
64
+ return function (src) {
65
+ return [src];
77
66
  };
78
- return Promise.all(_g);
79
- };
80
- })());
67
+ })()));
68
+ };
81
69
  };
82
- return null;
70
+ return Promise.all(_g).then(function (allSources) {
71
+ var _g = [];
72
+ var _g_current = 0;
73
+ while (_g_current < allSources.length) {
74
+ var x = Register.iter(allSources[_g_current++]);
75
+ while (x.hasNext()) _g.push(x.next());
76
+ };
77
+ return _g;
78
+ });
83
79
  }
84
80
  static get __name__() {
85
81
  return "whet.stones.Files"