Compare commits
3 Commits
fe16799bbb
...
afc0309222
| Author | SHA1 | Date | |
|---|---|---|---|
|
afc0309222
|
|||
|
0d9ce5d6b1
|
|||
|
be58ed1c05
|
2
Makefile
2
Makefile
@@ -62,7 +62,7 @@ deps-hx:
|
|||||||
|
|
||||||
.PHONY: deps-node
|
.PHONY: deps-node
|
||||||
deps-node:
|
deps-node:
|
||||||
yarn install
|
npm install
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean:
|
clean:
|
||||||
|
|||||||
35
package-lock.json
generated
Normal file
35
package-lock.json
generated
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "haxe",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "haxe",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"license": "MIT",
|
||||||
|
"dependencies": {
|
||||||
|
"luamin": "^1.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/luamin": {
|
||||||
|
"version": "1.0.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/luamin/-/luamin-1.0.4.tgz",
|
||||||
|
"integrity": "sha1-lEUptY/G+k0x6s4uA1PUEhDw49M= sha512-z1h0bclRD/QGsS/Dz4Skp9z0qPTmmm+IKcrCapGmdTczPWVdN9f9jk6WqkNrcifQr8+n9Pzsm9WkwpOH1JBUAQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"luaparse": "^0.2.1"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"luamin": "bin/luamin"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/luaparse": {
|
||||||
|
"version": "0.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/luaparse/-/luaparse-0.2.1.tgz",
|
||||||
|
"integrity": "sha1-qo9WEysN6X0388mRqd9C4OF/ZWw= sha512-VKBcryd5nJte4ZNR29NOk8F/UkMipjeb4yoxcSS51z6QAzg9DXUC2WsfLniS0J1eh3pr/ZL3e9ha6V8fhoLbBQ==",
|
||||||
|
"bin": {
|
||||||
|
"luaparse": "bin/luaparse"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,6 +6,14 @@ import lib.HomeContext;
|
|||||||
|
|
||||||
class Startup {
|
class Startup {
|
||||||
public static function main() {
|
public static function main() {
|
||||||
|
#if debug
|
||||||
|
var term = BinStore.instantiate("terminal");
|
||||||
|
var pid = ProcessManager.run(term, {
|
||||||
|
// args: ["debug"]
|
||||||
|
});
|
||||||
|
var ctx = WindowManager.getContextByPID(pid);
|
||||||
|
WindowManager.focusContextToOutput(ctx[0], "main");
|
||||||
|
#else
|
||||||
if (MainTerm.instance.isColor()) {
|
if (MainTerm.instance.isColor()) {
|
||||||
var main = new HomeContext();
|
var main = new HomeContext();
|
||||||
|
|
||||||
@@ -16,5 +24,6 @@ class Startup {
|
|||||||
var ctx = WindowManager.getContextByPID(pid);
|
var ctx = WindowManager.getContextByPID(pid);
|
||||||
WindowManager.focusContextToOutput(ctx[0], "main");
|
WindowManager.focusContextToOutput(ctx[0], "main");
|
||||||
}
|
}
|
||||||
|
#end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,69 +0,0 @@
|
|||||||
package lib;
|
|
||||||
|
|
||||||
import haxe.Exception;
|
|
||||||
|
|
||||||
class LambdaExtender {
|
|
||||||
/**
|
|
||||||
Returns the first element if there are exectly one element present.
|
|
||||||
Throws exception if not.
|
|
||||||
**/
|
|
||||||
static public function single<T>(it:Iterable<T>):T {
|
|
||||||
var elem:T = null;
|
|
||||||
for (t in it) {
|
|
||||||
if (elem != null) {
|
|
||||||
throw new Exception("Multiple elements found");
|
|
||||||
}
|
|
||||||
elem = t;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (elem == null) {
|
|
||||||
throw new Exception("No element found");
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Like `single` but when no element was found return the default value.
|
|
||||||
**/
|
|
||||||
static public function singleOrDefault<T>(it:Iterable<T>, defaultValue:T):T {
|
|
||||||
var elem:T = null;
|
|
||||||
for (t in it) {
|
|
||||||
if (elem != null) {
|
|
||||||
throw new Exception("Multiple elements found");
|
|
||||||
}
|
|
||||||
elem = t;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (elem == null) {
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
return elem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Returns the first element.
|
|
||||||
Throws execption if no first element found.
|
|
||||||
**/
|
|
||||||
static public function first<T>(it:Iterable<T>):T {
|
|
||||||
for (t in it) {
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new Exception("No element found");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Like `first` only if no first element was found it returns the defalt value.
|
|
||||||
**/
|
|
||||||
static public function firstOrDefault<T>(it:Iterable<T>, defaultValue:T):T {
|
|
||||||
var iter = it.iterator();
|
|
||||||
|
|
||||||
if (iter.hasNext()) {
|
|
||||||
return iter.next();
|
|
||||||
}
|
|
||||||
|
|
||||||
return defaultValue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
package lib;
|
|
||||||
|
|
||||||
class ObjMerge {
|
|
||||||
public static function merge<T>(obj1:T, obj2:T):T {
|
|
||||||
if (obj1 == null) {
|
|
||||||
return obj2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (obj2 == null) {
|
|
||||||
return obj1;
|
|
||||||
}
|
|
||||||
|
|
||||||
var rtn:T = Reflect.copy(obj1);
|
|
||||||
var fields = Reflect.fields(obj2);
|
|
||||||
|
|
||||||
for (field in fields) {
|
|
||||||
if (Reflect.getProperty(obj1, field) == null) {
|
|
||||||
Reflect.setProperty(rtn, field, Reflect.getProperty(obj2, field));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return (rtn : T);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
package lib.observable;
|
|
||||||
|
|
||||||
using tink.CoreApi;
|
|
||||||
|
|
||||||
class DummyObservable<T> implements IObservable<T> {
|
|
||||||
private var value:T;
|
|
||||||
|
|
||||||
private function new(value:T) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function set(value:T) {
|
|
||||||
throw new haxe.exceptions.NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function get():T {
|
|
||||||
return this.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subscribe(callback:Callback<T>):CallbackLink {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function dummy<T>(value:T):IObservable<T> {
|
|
||||||
return new DummyObservable<T>(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package lib.observable;
|
|
||||||
|
|
||||||
using tink.CoreApi;
|
|
||||||
|
|
||||||
interface IObservable<T> {
|
|
||||||
public function set(value:T):Void;
|
|
||||||
public function get():T;
|
|
||||||
public function subscribe(callback:Callback<T>):CallbackLink;
|
|
||||||
}
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
package lib.observable;
|
|
||||||
|
|
||||||
class ObservableArray<T> extends ObservableValue<Array<T>> {
|
|
||||||
public function new(value:Array<T>) {
|
|
||||||
super(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function insert(pos:Int, x:T):Void {
|
|
||||||
this.value.insert(pos, x);
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function pop():Null<T> {
|
|
||||||
var poped = this.pop();
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
return poped;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function push(x:T):Int {
|
|
||||||
var i = this.value.push(x);
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function remove(x:T):Bool {
|
|
||||||
var b = this.value.remove(x);
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
return b;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function resize(len:Int) {
|
|
||||||
this.value.resize(len);
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function reverse() {
|
|
||||||
this.value.reverse();
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function shift():Null<T> {
|
|
||||||
var e = this.value.shift();
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
return e;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function sort(f:(T, T) -> Int):Void {
|
|
||||||
this.value.sort(f);
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function unshift(x:T):Void {
|
|
||||||
this.value.unshift(x);
|
|
||||||
this.callbacks.invoke(this.value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
package lib.observable;
|
|
||||||
|
|
||||||
using tink.CoreApi;
|
|
||||||
|
|
||||||
class ObservableValue<T> implements IObservable<T> {
|
|
||||||
private var value:T;
|
|
||||||
private var callbacks:CallbackList<T> = new CallbackList();
|
|
||||||
|
|
||||||
public function new(value:T) {
|
|
||||||
this.value = value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function set(value:T) {
|
|
||||||
if (value != this.value) {
|
|
||||||
this.value = value;
|
|
||||||
callbacks.invoke(value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function get():T {
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function subscribe(callback:Callback<T>):CallbackLink {
|
|
||||||
callback.invoke(value);
|
|
||||||
return callbacks.add(callback);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
15
yarn.lock
15
yarn.lock
@@ -1,15 +0,0 @@
|
|||||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
|
||||||
# yarn lockfile v1
|
|
||||||
|
|
||||||
|
|
||||||
luamin@^1.0.4:
|
|
||||||
version "1.0.4"
|
|
||||||
resolved "https://registry.yarnpkg.com/luamin/-/luamin-1.0.4.tgz#944529b58fc6fa4d31eace2e0353d41210f0e3d3"
|
|
||||||
integrity sha1-lEUptY/G+k0x6s4uA1PUEhDw49M=
|
|
||||||
dependencies:
|
|
||||||
luaparse "^0.2.1"
|
|
||||||
|
|
||||||
luaparse@^0.2.1:
|
|
||||||
version "0.2.1"
|
|
||||||
resolved "https://registry.yarnpkg.com/luaparse/-/luaparse-0.2.1.tgz#aa8f56132b0de97d37f3c991a9df42e0e17f656c"
|
|
||||||
integrity sha1-qo9WEysN6X0388mRqd9C4OF/ZWw=
|
|
||||||
Reference in New Issue
Block a user