typescript-to-lua 1.23.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.
@@ -0,0 +1,30 @@
1
+ local __TS__DescriptorSet
2
+ do
3
+ local getmetatable = _G.getmetatable
4
+ local ____rawget = _G.rawget
5
+ local rawset = _G.rawset
6
+ function __TS__DescriptorSet(self, metatable, key, value)
7
+ while metatable do
8
+ local descriptors = ____rawget(metatable, "_descriptors")
9
+ if descriptors then
10
+ local descriptor = descriptors[key]
11
+ if descriptor ~= nil then
12
+ if descriptor.set then
13
+ descriptor.set(self, value)
14
+ else
15
+ if descriptor.writable == false then
16
+ error(
17
+ ((("Cannot assign to read only property '" .. key) .. "' of object '") .. tostring(self)) .. "'",
18
+ 0
19
+ )
20
+ end
21
+ descriptor.value = value
22
+ end
23
+ return
24
+ end
25
+ end
26
+ metatable = getmetatable(metatable)
27
+ end
28
+ rawset(self, key, value)
29
+ end
30
+ end
@@ -1,20 +1,24 @@
1
1
  local __TS__Promise
2
2
  do
3
- local function promiseDeferred(self)
3
+ local function makeDeferredPromiseFactory()
4
4
  local resolve
5
5
  local reject
6
- local promise = __TS__New(
7
- __TS__Promise,
8
- function(____, res, rej)
9
- resolve = res
10
- reject = rej
11
- end
12
- )
13
- return {promise = promise, resolve = resolve, reject = reject}
6
+ local function executor(____, res, rej)
7
+ resolve = res
8
+ reject = rej
9
+ end
10
+ return function()
11
+ local promise = __TS__New(__TS__Promise, executor)
12
+ return promise, resolve, reject
13
+ end
14
14
  end
15
- local function isPromiseLike(self, thing)
16
- return __TS__InstanceOf(thing, __TS__Promise)
15
+ local makeDeferredPromise = makeDeferredPromiseFactory()
16
+ local function isPromiseLike(value)
17
+ return __TS__InstanceOf(value, __TS__Promise)
17
18
  end
19
+ local function doNothing(self)
20
+ end
21
+ local ____pcall = _G.pcall
18
22
  __TS__Promise = __TS__Class()
19
23
  __TS__Promise.name = "__TS__Promise"
20
24
  function __TS__Promise.prototype.____constructor(self, executor)
@@ -22,155 +26,125 @@ do
22
26
  self.fulfilledCallbacks = {}
23
27
  self.rejectedCallbacks = {}
24
28
  self.finallyCallbacks = {}
25
- do
26
- local function ____catch(e)
27
- self:reject(e)
28
- end
29
- local ____try, ____hasReturned = pcall(function()
30
- executor(
31
- nil,
32
- __TS__FunctionBind(self.resolve, self),
33
- __TS__FunctionBind(self.reject, self)
34
- )
35
- end)
36
- if not ____try then
37
- ____catch(____hasReturned)
38
- end
29
+ local success, ____error = ____pcall(
30
+ executor,
31
+ nil,
32
+ function(____, v) return self:resolve(v) end,
33
+ function(____, err) return self:reject(err) end
34
+ )
35
+ if not success then
36
+ self:reject(____error)
39
37
  end
40
38
  end
41
- function __TS__Promise.resolve(data)
42
- local promise = __TS__New(
43
- __TS__Promise,
44
- function()
45
- end
46
- )
39
+ function __TS__Promise.resolve(value)
40
+ if __TS__InstanceOf(value, __TS__Promise) then
41
+ return value
42
+ end
43
+ local promise = __TS__New(__TS__Promise, doNothing)
47
44
  promise.state = 1
48
- promise.value = data
45
+ promise.value = value
49
46
  return promise
50
47
  end
51
48
  function __TS__Promise.reject(reason)
52
- local promise = __TS__New(
53
- __TS__Promise,
54
- function()
55
- end
56
- )
49
+ local promise = __TS__New(__TS__Promise, doNothing)
57
50
  promise.state = 2
58
51
  promise.rejectionReason = reason
59
52
  return promise
60
53
  end
61
54
  __TS__Promise.prototype["then"] = function(self, onFulfilled, onRejected)
62
- local ____promiseDeferred_result_0 = promiseDeferred(nil)
63
- local promise = ____promiseDeferred_result_0.promise
64
- local resolve = ____promiseDeferred_result_0.resolve
65
- local reject = ____promiseDeferred_result_0.reject
66
- local isFulfilled = self.state == 1
67
- local isRejected = self.state == 2
68
- if onFulfilled then
69
- local internalCallback = self:createPromiseResolvingCallback(onFulfilled, resolve, reject)
70
- local ____self_fulfilledCallbacks_1 = self.fulfilledCallbacks
71
- ____self_fulfilledCallbacks_1[#____self_fulfilledCallbacks_1 + 1] = internalCallback
72
- if isFulfilled then
73
- internalCallback(nil, self.value)
74
- end
75
- else
76
- local ____self_fulfilledCallbacks_2 = self.fulfilledCallbacks
77
- ____self_fulfilledCallbacks_2[#____self_fulfilledCallbacks_2 + 1] = function(____, v) return resolve(nil, v) end
78
- end
79
- if onRejected then
80
- local internalCallback = self:createPromiseResolvingCallback(onRejected, resolve, reject)
81
- local ____self_rejectedCallbacks_3 = self.rejectedCallbacks
82
- ____self_rejectedCallbacks_3[#____self_rejectedCallbacks_3 + 1] = internalCallback
83
- if isRejected then
84
- internalCallback(nil, self.rejectionReason)
85
- end
86
- else
87
- local ____self_rejectedCallbacks_4 = self.rejectedCallbacks
88
- ____self_rejectedCallbacks_4[#____self_rejectedCallbacks_4 + 1] = function(____, err) return reject(nil, err) end
89
- end
90
- if isFulfilled then
91
- resolve(nil, self.value)
55
+ local promise, resolve, reject = makeDeferredPromise()
56
+ self:addCallbacks(
57
+ onFulfilled and self:createPromiseResolvingCallback(onFulfilled, resolve, reject) or resolve,
58
+ onRejected and self:createPromiseResolvingCallback(onRejected, resolve, reject) or reject
59
+ )
60
+ return promise
61
+ end
62
+ function __TS__Promise.prototype.addCallbacks(self, fulfilledCallback, rejectedCallback)
63
+ if self.state == 1 then
64
+ return fulfilledCallback(nil, self.value)
92
65
  end
93
- if isRejected then
94
- reject(nil, self.rejectionReason)
66
+ if self.state == 2 then
67
+ return rejectedCallback(nil, self.rejectionReason)
95
68
  end
96
- return promise
69
+ local ____self_fulfilledCallbacks_0 = self.fulfilledCallbacks
70
+ ____self_fulfilledCallbacks_0[#____self_fulfilledCallbacks_0 + 1] = fulfilledCallback
71
+ local ____self_rejectedCallbacks_1 = self.rejectedCallbacks
72
+ ____self_rejectedCallbacks_1[#____self_rejectedCallbacks_1 + 1] = rejectedCallback
97
73
  end
98
74
  function __TS__Promise.prototype.catch(self, onRejected)
99
75
  return self["then"](self, nil, onRejected)
100
76
  end
101
77
  function __TS__Promise.prototype.finally(self, onFinally)
102
78
  if onFinally then
103
- local ____self_finallyCallbacks_5 = self.finallyCallbacks
104
- ____self_finallyCallbacks_5[#____self_finallyCallbacks_5 + 1] = onFinally
79
+ local ____self_finallyCallbacks_2 = self.finallyCallbacks
80
+ ____self_finallyCallbacks_2[#____self_finallyCallbacks_2 + 1] = onFinally
105
81
  if self.state ~= 0 then
106
82
  onFinally(nil)
107
83
  end
108
84
  end
109
85
  return self
110
86
  end
111
- function __TS__Promise.prototype.resolve(self, data)
112
- if __TS__InstanceOf(data, __TS__Promise) then
113
- data["then"](
114
- data,
87
+ function __TS__Promise.prototype.resolve(self, value)
88
+ if isPromiseLike(value) then
89
+ return value:addCallbacks(
115
90
  function(____, v) return self:resolve(v) end,
116
91
  function(____, err) return self:reject(err) end
117
92
  )
118
- return
119
93
  end
120
94
  if self.state == 0 then
121
95
  self.state = 1
122
- self.value = data
123
- for ____, callback in ipairs(self.fulfilledCallbacks) do
124
- callback(nil, data)
125
- end
126
- for ____, callback in ipairs(self.finallyCallbacks) do
127
- callback(nil)
128
- end
96
+ self.value = value
97
+ return self:invokeCallbacks(self.fulfilledCallbacks, value)
129
98
  end
130
99
  end
131
100
  function __TS__Promise.prototype.reject(self, reason)
132
101
  if self.state == 0 then
133
102
  self.state = 2
134
103
  self.rejectionReason = reason
135
- for ____, callback in ipairs(self.rejectedCallbacks) do
136
- callback(nil, reason)
104
+ return self:invokeCallbacks(self.rejectedCallbacks, reason)
105
+ end
106
+ end
107
+ function __TS__Promise.prototype.invokeCallbacks(self, callbacks, value)
108
+ local callbacksLength = #callbacks
109
+ local finallyCallbacks = self.finallyCallbacks
110
+ local finallyCallbacksLength = #finallyCallbacks
111
+ if callbacksLength ~= 0 then
112
+ for i = 1, callbacksLength - 1 do
113
+ callbacks[i](callbacks, value)
114
+ end
115
+ if finallyCallbacksLength == 0 then
116
+ return callbacks[callbacksLength](callbacks, value)
137
117
  end
138
- for ____, callback in ipairs(self.finallyCallbacks) do
139
- callback(nil)
118
+ callbacks[callbacksLength](callbacks, value)
119
+ end
120
+ if finallyCallbacksLength ~= 0 then
121
+ for i = 1, finallyCallbacksLength - 1 do
122
+ finallyCallbacks[i](finallyCallbacks)
140
123
  end
124
+ return finallyCallbacks[finallyCallbacksLength](finallyCallbacks)
141
125
  end
142
126
  end
143
127
  function __TS__Promise.prototype.createPromiseResolvingCallback(self, f, resolve, reject)
144
128
  return function(____, value)
145
- do
146
- local function ____catch(e)
147
- reject(nil, e)
148
- end
149
- local ____try, ____hasReturned = pcall(function()
150
- self:handleCallbackData(
151
- f(nil, value),
152
- resolve,
153
- reject
154
- )
155
- end)
156
- if not ____try then
157
- ____catch(____hasReturned)
158
- end
129
+ local success, resultOrError = ____pcall(f, nil, value)
130
+ if not success then
131
+ return reject(nil, resultOrError)
159
132
  end
133
+ return self:handleCallbackValue(resultOrError, resolve, reject)
160
134
  end
161
135
  end
162
- function __TS__Promise.prototype.handleCallbackData(self, data, resolve, reject)
163
- if isPromiseLike(nil, data) then
164
- local nextpromise = data
136
+ function __TS__Promise.prototype.handleCallbackValue(self, value, resolve, reject)
137
+ if isPromiseLike(value) then
138
+ local nextpromise = value
165
139
  if nextpromise.state == 1 then
166
- resolve(nil, nextpromise.value)
140
+ return resolve(nil, nextpromise.value)
167
141
  elseif nextpromise.state == 2 then
168
- reject(nil, nextpromise.rejectionReason)
142
+ return reject(nil, nextpromise.rejectionReason)
169
143
  else
170
- data["then"](data, resolve, reject)
144
+ return nextpromise:addCallbacks(resolve, reject)
171
145
  end
172
146
  else
173
- resolve(nil, data)
147
+ return resolve(nil, value)
174
148
  end
175
149
  end
176
150
  end
@@ -1,53 +1,20 @@
1
1
  local __TS__SetDescriptor
2
2
  do
3
+ local getmetatable = _G.getmetatable
3
4
  local function descriptorIndex(self, key)
4
- local value = rawget(self, key)
5
- if value ~= nil then
6
- return value
7
- end
8
- local metatable = getmetatable(self)
9
- while metatable do
10
- local rawResult = rawget(metatable, key)
11
- if rawResult ~= nil then
12
- return rawResult
13
- end
14
- local descriptors = rawget(metatable, "_descriptors")
15
- if descriptors then
16
- local descriptor = descriptors[key]
17
- if descriptor ~= nil then
18
- if descriptor.get then
19
- return descriptor.get(self)
20
- end
21
- return descriptor.value
22
- end
23
- end
24
- metatable = getmetatable(metatable)
25
- end
5
+ return __TS__DescriptorGet(
6
+ self,
7
+ getmetatable(self),
8
+ key
9
+ )
26
10
  end
27
11
  local function descriptorNewIndex(self, key, value)
28
- local metatable = getmetatable(self)
29
- while metatable do
30
- local descriptors = rawget(metatable, "_descriptors")
31
- if descriptors then
32
- local descriptor = descriptors[key]
33
- if descriptor ~= nil then
34
- if descriptor.set then
35
- descriptor.set(self, value)
36
- else
37
- if descriptor.writable == false then
38
- error(
39
- ((("Cannot assign to read only property '" .. key) .. "' of object '") .. tostring(self)) .. "'",
40
- 0
41
- )
42
- end
43
- descriptor.value = value
44
- end
45
- return
46
- end
47
- end
48
- metatable = getmetatable(metatable)
49
- end
50
- rawset(self, key, value)
12
+ return __TS__DescriptorSet(
13
+ self,
14
+ getmetatable(self),
15
+ key,
16
+ value
17
+ )
51
18
  end
52
19
  function __TS__SetDescriptor(target, key, desc, isPrototype)
53
20
  if isPrototype == nil then