typescript-to-lua 1.22.0 → 1.24.0

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.
@@ -592,6 +592,12 @@ local function __TS__ArrayWith(self, index, value)
592
592
  return copy
593
593
  end
594
594
 
595
+ local function __TS__New(target, ...)
596
+ local instance = setmetatable({}, target.prototype)
597
+ instance:____constructor(unpack(arg))
598
+ return instance
599
+ end
600
+
595
601
  local function __TS__InstanceOf(obj, classTbl)
596
602
  if type(classTbl) ~= "table" then
597
603
  error("Right-hand side of 'instanceof' is not an object", 0)
@@ -611,12 +617,6 @@ local function __TS__InstanceOf(obj, classTbl)
611
617
  return false
612
618
  end
613
619
 
614
- local function __TS__New(target, ...)
615
- local instance = setmetatable({}, target.prototype)
616
- instance:____constructor(unpack(arg))
617
- return instance
618
- end
619
-
620
620
  local function __TS__Class(self)
621
621
  local c = {prototype = {}}
622
622
  c.prototype.__index = c.prototype
@@ -624,35 +624,27 @@ local function __TS__Class(self)
624
624
  return c
625
625
  end
626
626
 
627
- local function __TS__FunctionBind(fn, ...)
628
- local boundArgs = arg
629
- return function(____, ...)
630
- local args = arg
631
- __TS__ArrayUnshift(
632
- args,
633
- unpack(boundArgs)
634
- )
635
- return fn(unpack(args))
636
- end
637
- end
638
-
639
627
  local __TS__Promise
640
628
  do
641
- local function promiseDeferred(self)
629
+ local function makeDeferredPromiseFactory()
642
630
  local resolve
643
631
  local reject
644
- local promise = __TS__New(
645
- __TS__Promise,
646
- function(____, res, rej)
647
- resolve = res
648
- reject = rej
649
- end
650
- )
651
- return {promise = promise, resolve = resolve, reject = reject}
632
+ local function executor(____, res, rej)
633
+ resolve = res
634
+ reject = rej
635
+ end
636
+ return function()
637
+ local promise = __TS__New(__TS__Promise, executor)
638
+ return promise, resolve, reject
639
+ end
640
+ end
641
+ local makeDeferredPromise = makeDeferredPromiseFactory()
642
+ local function isPromiseLike(value)
643
+ return __TS__InstanceOf(value, __TS__Promise)
652
644
  end
653
- local function isPromiseLike(self, thing)
654
- return __TS__InstanceOf(thing, __TS__Promise)
645
+ local function doNothing(self)
655
646
  end
647
+ local ____pcall = _G.pcall
656
648
  __TS__Promise = __TS__Class()
657
649
  __TS__Promise.name = "__TS__Promise"
658
650
  function __TS__Promise.prototype.____constructor(self, executor)
@@ -660,206 +652,176 @@ do
660
652
  self.fulfilledCallbacks = {}
661
653
  self.rejectedCallbacks = {}
662
654
  self.finallyCallbacks = {}
663
- do
664
- local function ____catch(e)
665
- self:reject(e)
666
- end
667
- local ____try, ____hasReturned = pcall(function()
668
- executor(
669
- nil,
670
- __TS__FunctionBind(self.resolve, self),
671
- __TS__FunctionBind(self.reject, self)
672
- )
673
- end)
674
- if not ____try then
675
- ____catch(____hasReturned)
676
- end
655
+ local success, ____error = ____pcall(
656
+ executor,
657
+ nil,
658
+ function(____, v) return self:resolve(v) end,
659
+ function(____, err) return self:reject(err) end
660
+ )
661
+ if not success then
662
+ self:reject(____error)
677
663
  end
678
664
  end
679
- function __TS__Promise.resolve(data)
680
- local promise = __TS__New(
681
- __TS__Promise,
682
- function()
683
- end
684
- )
665
+ function __TS__Promise.resolve(value)
666
+ if __TS__InstanceOf(value, __TS__Promise) then
667
+ return value
668
+ end
669
+ local promise = __TS__New(__TS__Promise, doNothing)
685
670
  promise.state = 1
686
- promise.value = data
671
+ promise.value = value
687
672
  return promise
688
673
  end
689
674
  function __TS__Promise.reject(reason)
690
- local promise = __TS__New(
691
- __TS__Promise,
692
- function()
693
- end
694
- )
675
+ local promise = __TS__New(__TS__Promise, doNothing)
695
676
  promise.state = 2
696
677
  promise.rejectionReason = reason
697
678
  return promise
698
679
  end
699
680
  __TS__Promise.prototype["then"] = function(self, onFulfilled, onRejected)
700
- local ____promiseDeferred_result_0 = promiseDeferred(nil)
701
- local promise = ____promiseDeferred_result_0.promise
702
- local resolve = ____promiseDeferred_result_0.resolve
703
- local reject = ____promiseDeferred_result_0.reject
704
- local isFulfilled = self.state == 1
705
- local isRejected = self.state == 2
706
- if onFulfilled then
707
- local internalCallback = self:createPromiseResolvingCallback(onFulfilled, resolve, reject)
708
- local ____self_fulfilledCallbacks_1 = self.fulfilledCallbacks
709
- ____self_fulfilledCallbacks_1[table.getn(____self_fulfilledCallbacks_1) + 1] = internalCallback
710
- if isFulfilled then
711
- internalCallback(nil, self.value)
712
- end
713
- else
714
- local ____self_fulfilledCallbacks_2 = self.fulfilledCallbacks
715
- ____self_fulfilledCallbacks_2[table.getn(____self_fulfilledCallbacks_2) + 1] = function(____, v) return resolve(nil, v) end
716
- end
717
- if onRejected then
718
- local internalCallback = self:createPromiseResolvingCallback(onRejected, resolve, reject)
719
- local ____self_rejectedCallbacks_3 = self.rejectedCallbacks
720
- ____self_rejectedCallbacks_3[table.getn(____self_rejectedCallbacks_3) + 1] = internalCallback
721
- if isRejected then
722
- internalCallback(nil, self.rejectionReason)
723
- end
724
- else
725
- local ____self_rejectedCallbacks_4 = self.rejectedCallbacks
726
- ____self_rejectedCallbacks_4[table.getn(____self_rejectedCallbacks_4) + 1] = function(____, err) return reject(nil, err) end
727
- end
728
- if isFulfilled then
729
- resolve(nil, self.value)
681
+ local promise, resolve, reject = makeDeferredPromise()
682
+ self:addCallbacks(
683
+ onFulfilled and self:createPromiseResolvingCallback(onFulfilled, resolve, reject) or resolve,
684
+ onRejected and self:createPromiseResolvingCallback(onRejected, resolve, reject) or reject
685
+ )
686
+ return promise
687
+ end
688
+ function __TS__Promise.prototype.addCallbacks(self, fulfilledCallback, rejectedCallback)
689
+ if self.state == 1 then
690
+ return fulfilledCallback(nil, self.value)
730
691
  end
731
- if isRejected then
732
- reject(nil, self.rejectionReason)
692
+ if self.state == 2 then
693
+ return rejectedCallback(nil, self.rejectionReason)
733
694
  end
734
- return promise
695
+ local ____self_fulfilledCallbacks_0 = self.fulfilledCallbacks
696
+ ____self_fulfilledCallbacks_0[table.getn(____self_fulfilledCallbacks_0) + 1] = fulfilledCallback
697
+ local ____self_rejectedCallbacks_1 = self.rejectedCallbacks
698
+ ____self_rejectedCallbacks_1[table.getn(____self_rejectedCallbacks_1) + 1] = rejectedCallback
735
699
  end
736
700
  function __TS__Promise.prototype.catch(self, onRejected)
737
701
  return self["then"](self, nil, onRejected)
738
702
  end
739
703
  function __TS__Promise.prototype.finally(self, onFinally)
740
704
  if onFinally then
741
- local ____self_finallyCallbacks_5 = self.finallyCallbacks
742
- ____self_finallyCallbacks_5[table.getn(____self_finallyCallbacks_5) + 1] = onFinally
705
+ local ____self_finallyCallbacks_2 = self.finallyCallbacks
706
+ ____self_finallyCallbacks_2[table.getn(____self_finallyCallbacks_2) + 1] = onFinally
743
707
  if self.state ~= 0 then
744
708
  onFinally(nil)
745
709
  end
746
710
  end
747
711
  return self
748
712
  end
749
- function __TS__Promise.prototype.resolve(self, data)
750
- if __TS__InstanceOf(data, __TS__Promise) then
751
- data["then"](
752
- data,
713
+ function __TS__Promise.prototype.resolve(self, value)
714
+ if isPromiseLike(value) then
715
+ return value:addCallbacks(
753
716
  function(____, v) return self:resolve(v) end,
754
717
  function(____, err) return self:reject(err) end
755
718
  )
756
- return
757
719
  end
758
720
  if self.state == 0 then
759
721
  self.state = 1
760
- self.value = data
761
- for ____, callback in ipairs(self.fulfilledCallbacks) do
762
- callback(nil, data)
763
- end
764
- for ____, callback in ipairs(self.finallyCallbacks) do
765
- callback(nil)
766
- end
722
+ self.value = value
723
+ return self:invokeCallbacks(self.fulfilledCallbacks, value)
767
724
  end
768
725
  end
769
726
  function __TS__Promise.prototype.reject(self, reason)
770
727
  if self.state == 0 then
771
728
  self.state = 2
772
729
  self.rejectionReason = reason
773
- for ____, callback in ipairs(self.rejectedCallbacks) do
774
- callback(nil, reason)
730
+ return self:invokeCallbacks(self.rejectedCallbacks, reason)
731
+ end
732
+ end
733
+ function __TS__Promise.prototype.invokeCallbacks(self, callbacks, value)
734
+ local callbacksLength = table.getn(callbacks)
735
+ local finallyCallbacks = self.finallyCallbacks
736
+ local finallyCallbacksLength = table.getn(finallyCallbacks)
737
+ if callbacksLength ~= 0 then
738
+ for i = 1, callbacksLength - 1 do
739
+ callbacks[i](callbacks, value)
775
740
  end
776
- for ____, callback in ipairs(self.finallyCallbacks) do
777
- callback(nil)
741
+ if finallyCallbacksLength == 0 then
742
+ return callbacks[callbacksLength](callbacks, value)
778
743
  end
744
+ callbacks[callbacksLength](callbacks, value)
745
+ end
746
+ if finallyCallbacksLength ~= 0 then
747
+ for i = 1, finallyCallbacksLength - 1 do
748
+ finallyCallbacks[i](finallyCallbacks)
749
+ end
750
+ return finallyCallbacks[finallyCallbacksLength](finallyCallbacks)
779
751
  end
780
752
  end
781
753
  function __TS__Promise.prototype.createPromiseResolvingCallback(self, f, resolve, reject)
782
754
  return function(____, value)
783
- do
784
- local function ____catch(e)
785
- reject(nil, e)
786
- end
787
- local ____try, ____hasReturned = pcall(function()
788
- self:handleCallbackData(
789
- f(nil, value),
790
- resolve,
791
- reject
792
- )
793
- end)
794
- if not ____try then
795
- ____catch(____hasReturned)
796
- end
755
+ local success, resultOrError = ____pcall(f, nil, value)
756
+ if not success then
757
+ return reject(nil, resultOrError)
797
758
  end
759
+ return self:handleCallbackValue(resultOrError, resolve, reject)
798
760
  end
799
761
  end
800
- function __TS__Promise.prototype.handleCallbackData(self, data, resolve, reject)
801
- if isPromiseLike(nil, data) then
802
- local nextpromise = data
762
+ function __TS__Promise.prototype.handleCallbackValue(self, value, resolve, reject)
763
+ if isPromiseLike(value) then
764
+ local nextpromise = value
803
765
  if nextpromise.state == 1 then
804
- resolve(nil, nextpromise.value)
766
+ return resolve(nil, nextpromise.value)
805
767
  elseif nextpromise.state == 2 then
806
- reject(nil, nextpromise.rejectionReason)
768
+ return reject(nil, nextpromise.rejectionReason)
807
769
  else
808
- data["then"](data, resolve, reject)
770
+ return nextpromise:addCallbacks(resolve, reject)
809
771
  end
810
772
  else
811
- resolve(nil, data)
773
+ return resolve(nil, value)
812
774
  end
813
775
  end
814
776
  end
815
777
 
816
- local function __TS__AsyncAwaiter(generator)
817
- return __TS__New(
818
- __TS__Promise,
819
- function(____, resolve, reject)
820
- local adopt, fulfilled, step, resolved, asyncCoroutine
821
- function adopt(self, value)
822
- return __TS__InstanceOf(value, __TS__Promise) and value or __TS__Promise.resolve(value)
823
- end
824
- function fulfilled(self, value)
825
- local success, resultOrError = coroutine.resume(asyncCoroutine, value)
826
- if success then
827
- step(nil, resultOrError)
828
- else
829
- reject(nil, resultOrError)
778
+ local __TS__AsyncAwaiter, __TS__Await
779
+ do
780
+ local cocreate = coroutine.create
781
+ local coresume = coroutine.resume
782
+ local costatus = coroutine.status
783
+ local coyield = coroutine.yield
784
+ function __TS__AsyncAwaiter(generator)
785
+ return __TS__New(
786
+ __TS__Promise,
787
+ function(____, resolve, reject)
788
+ local fulfilled, step, resolved, asyncCoroutine
789
+ function fulfilled(self, value)
790
+ local success, resultOrError = coresume(asyncCoroutine, value)
791
+ if success then
792
+ return step(resultOrError)
793
+ end
794
+ return reject(nil, resultOrError)
830
795
  end
831
- end
832
- function step(self, result)
833
- if resolved then
834
- return
796
+ function step(result)
797
+ if resolved then
798
+ return
799
+ end
800
+ if costatus(asyncCoroutine) == "dead" then
801
+ return resolve(nil, result)
802
+ end
803
+ return __TS__Promise.resolve(result):addCallbacks(fulfilled, reject)
835
804
  end
836
- if coroutine.status(asyncCoroutine) == "dead" then
837
- resolve(nil, result)
805
+ resolved = false
806
+ asyncCoroutine = cocreate(generator)
807
+ local success, resultOrError = coresume(
808
+ asyncCoroutine,
809
+ function(____, v)
810
+ resolved = true
811
+ return __TS__Promise.resolve(v):addCallbacks(resolve, reject)
812
+ end
813
+ )
814
+ if success then
815
+ return step(resultOrError)
838
816
  else
839
- local ____self_0 = adopt(nil, result)
840
- ____self_0["then"](____self_0, fulfilled, reject)
817
+ return reject(nil, resultOrError)
841
818
  end
842
819
  end
843
- resolved = false
844
- asyncCoroutine = coroutine.create(generator)
845
- local success, resultOrError = coroutine.resume(
846
- asyncCoroutine,
847
- function(____, v)
848
- resolved = true
849
- local ____self_1 = adopt(nil, v)
850
- ____self_1["then"](____self_1, resolve, reject)
851
- end
852
- )
853
- if success then
854
- step(nil, resultOrError)
855
- else
856
- reject(nil, resultOrError)
857
- end
858
- end
859
- )
860
- end
861
- local function __TS__Await(thing)
862
- return coroutine.yield(thing)
820
+ )
821
+ end
822
+ function __TS__Await(thing)
823
+ return coyield(thing)
824
+ end
863
825
  end
864
826
 
865
827
  local function __TS__ClassExtends(target, base)
@@ -957,20 +919,17 @@ local function __TS__ObjectGetOwnPropertyDescriptor(object, key)
957
919
  return rawget(metatable, "_descriptors")[key]
958
920
  end
959
921
 
960
- local __TS__SetDescriptor
922
+ local __TS__DescriptorGet
961
923
  do
962
- local function descriptorIndex(self, key)
963
- local value = rawget(self, key)
964
- if value ~= nil then
965
- return value
966
- end
967
- local metatable = getmetatable(self)
924
+ local getmetatable = _G.getmetatable
925
+ local ____rawget = _G.rawget
926
+ function __TS__DescriptorGet(self, metatable, key)
968
927
  while metatable do
969
- local rawResult = rawget(metatable, key)
928
+ local rawResult = ____rawget(metatable, key)
970
929
  if rawResult ~= nil then
971
930
  return rawResult
972
931
  end
973
- local descriptors = rawget(metatable, "_descriptors")
932
+ local descriptors = ____rawget(metatable, "_descriptors")
974
933
  if descriptors then
975
934
  local descriptor = descriptors[key]
976
935
  if descriptor ~= nil then
@@ -983,10 +942,16 @@ do
983
942
  metatable = getmetatable(metatable)
984
943
  end
985
944
  end
986
- local function descriptorNewIndex(self, key, value)
987
- local metatable = getmetatable(self)
945
+ end
946
+
947
+ local __TS__DescriptorSet
948
+ do
949
+ local getmetatable = _G.getmetatable
950
+ local ____rawget = _G.rawget
951
+ local rawset = _G.rawset
952
+ function __TS__DescriptorSet(self, metatable, key, value)
988
953
  while metatable do
989
- local descriptors = rawget(metatable, "_descriptors")
954
+ local descriptors = ____rawget(metatable, "_descriptors")
990
955
  if descriptors then
991
956
  local descriptor = descriptors[key]
992
957
  if descriptor ~= nil then
@@ -1008,6 +973,26 @@ do
1008
973
  end
1009
974
  rawset(self, key, value)
1010
975
  end
976
+ end
977
+
978
+ local __TS__SetDescriptor
979
+ do
980
+ local getmetatable = _G.getmetatable
981
+ local function descriptorIndex(self, key)
982
+ return __TS__DescriptorGet(
983
+ self,
984
+ getmetatable(self),
985
+ key
986
+ )
987
+ end
988
+ local function descriptorNewIndex(self, key, value)
989
+ return __TS__DescriptorSet(
990
+ self,
991
+ getmetatable(self),
992
+ key,
993
+ value
994
+ )
995
+ end
1011
996
  function __TS__SetDescriptor(target, key, desc, isPrototype)
1012
997
  if isPrototype == nil then
1013
998
  isPrototype = false
@@ -1239,6 +1224,18 @@ local function __TS__DelegatedYield(iterable)
1239
1224
  end
1240
1225
  end
1241
1226
 
1227
+ local function __TS__FunctionBind(fn, ...)
1228
+ local boundArgs = arg
1229
+ return function(____, ...)
1230
+ local args = arg
1231
+ __TS__ArrayUnshift(
1232
+ args,
1233
+ unpack(boundArgs)
1234
+ )
1235
+ return fn(unpack(args))
1236
+ end
1237
+ end
1238
+
1242
1239
  local function __TS__Unpack(list, i, j)
1243
1240
  if i == 1 and j == nil then
1244
1241
  return unpack(list)
@@ -2611,6 +2608,8 @@ return {
2611
2608
  __TS__DecorateParam = __TS__DecorateParam,
2612
2609
  __TS__Delete = __TS__Delete,
2613
2610
  __TS__DelegatedYield = __TS__DelegatedYield,
2611
+ __TS__DescriptorGet = __TS__DescriptorGet,
2612
+ __TS__DescriptorSet = __TS__DescriptorSet,
2614
2613
  Error = Error,
2615
2614
  RangeError = RangeError,
2616
2615
  ReferenceError = ReferenceError,
@@ -204,7 +204,6 @@
204
204
  "__TS__Await"
205
205
  ],
206
206
  "dependencies": [
207
- "InstanceOf",
208
207
  "Promise",
209
208
  "New"
210
209
  ]
@@ -271,6 +270,16 @@
271
270
  "Symbol"
272
271
  ]
273
272
  },
273
+ "DescriptorGet": {
274
+ "exports": [
275
+ "__TS__DescriptorGet"
276
+ ]
277
+ },
278
+ "DescriptorSet": {
279
+ "exports": [
280
+ "__TS__DescriptorSet"
281
+ ]
282
+ },
274
283
  "Error": {
275
284
  "exports": [
276
285
  "Error",
@@ -485,8 +494,7 @@
485
494
  "Promise",
486
495
  "New",
487
496
  "InstanceOf",
488
- "Class",
489
- "FunctionBind"
497
+ "Class"
490
498
  ]
491
499
  },
492
500
  "PromiseAll": {
@@ -548,7 +556,9 @@
548
556
  "__TS__SetDescriptor"
549
557
  ],
550
558
  "dependencies": [
551
- "CloneDescriptor"
559
+ "CloneDescriptor",
560
+ "DescriptorGet",
561
+ "DescriptorSet"
552
562
  ]
553
563
  },
554
564
  "SparseArrayNew": {
@@ -1,48 +1,48 @@
1
- local function __TS__AsyncAwaiter(generator)
2
- return __TS__New(
3
- __TS__Promise,
4
- function(____, resolve, reject)
5
- local adopt, fulfilled, step, resolved, asyncCoroutine
6
- function adopt(self, value)
7
- return __TS__InstanceOf(value, __TS__Promise) and value or __TS__Promise.resolve(value)
8
- end
9
- function fulfilled(self, value)
10
- local success, resultOrError = coroutine.resume(asyncCoroutine, value)
11
- if success then
12
- step(nil, resultOrError)
13
- else
14
- reject(nil, resultOrError)
1
+ local __TS__AsyncAwaiter, __TS__Await
2
+ do
3
+ local cocreate = coroutine.create
4
+ local coresume = coroutine.resume
5
+ local costatus = coroutine.status
6
+ local coyield = coroutine.yield
7
+ function __TS__AsyncAwaiter(generator)
8
+ return __TS__New(
9
+ __TS__Promise,
10
+ function(____, resolve, reject)
11
+ local fulfilled, step, resolved, asyncCoroutine
12
+ function fulfilled(self, value)
13
+ local success, resultOrError = coresume(asyncCoroutine, value)
14
+ if success then
15
+ return step(resultOrError)
16
+ end
17
+ return reject(nil, resultOrError)
15
18
  end
16
- end
17
- function step(self, result)
18
- if resolved then
19
- return
19
+ function step(result)
20
+ if resolved then
21
+ return
22
+ end
23
+ if costatus(asyncCoroutine) == "dead" then
24
+ return resolve(nil, result)
25
+ end
26
+ return __TS__Promise.resolve(result):addCallbacks(fulfilled, reject)
20
27
  end
21
- if coroutine.status(asyncCoroutine) == "dead" then
22
- resolve(nil, result)
28
+ resolved = false
29
+ asyncCoroutine = cocreate(generator)
30
+ local success, resultOrError = coresume(
31
+ asyncCoroutine,
32
+ function(____, v)
33
+ resolved = true
34
+ return __TS__Promise.resolve(v):addCallbacks(resolve, reject)
35
+ end
36
+ )
37
+ if success then
38
+ return step(resultOrError)
23
39
  else
24
- local ____self_0 = adopt(nil, result)
25
- ____self_0["then"](____self_0, fulfilled, reject)
26
- end
27
- end
28
- resolved = false
29
- asyncCoroutine = coroutine.create(generator)
30
- local success, resultOrError = coroutine.resume(
31
- asyncCoroutine,
32
- function(____, v)
33
- resolved = true
34
- local ____self_1 = adopt(nil, v)
35
- ____self_1["then"](____self_1, resolve, reject)
40
+ return reject(nil, resultOrError)
36
41
  end
37
- )
38
- if success then
39
- step(nil, resultOrError)
40
- else
41
- reject(nil, resultOrError)
42
42
  end
43
- end
44
- )
45
- end
46
- local function __TS__Await(thing)
47
- return coroutine.yield(thing)
43
+ )
44
+ end
45
+ function __TS__Await(thing)
46
+ return coyield(thing)
47
+ end
48
48
  end
@@ -0,0 +1,24 @@
1
+ local __TS__DescriptorGet
2
+ do
3
+ local getmetatable = _G.getmetatable
4
+ local ____rawget = _G.rawget
5
+ function __TS__DescriptorGet(self, metatable, key)
6
+ while metatable do
7
+ local rawResult = ____rawget(metatable, key)
8
+ if rawResult ~= nil then
9
+ return rawResult
10
+ end
11
+ local descriptors = ____rawget(metatable, "_descriptors")
12
+ if descriptors then
13
+ local descriptor = descriptors[key]
14
+ if descriptor ~= nil then
15
+ if descriptor.get then
16
+ return descriptor.get(self)
17
+ end
18
+ return descriptor.value
19
+ end
20
+ end
21
+ metatable = getmetatable(metatable)
22
+ end
23
+ end
24
+ end