Skip to content

Commit ef67700

Browse files
committed
Merge pull request #891 from TypeStrong/bas/defer
Promise.defer no more
2 parents b342cdf + 0d186f9 commit ef67700

File tree

6 files changed

+50
-43
lines changed

6 files changed

+50
-43
lines changed

dist/main/atomts.js

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -181,16 +181,18 @@ function consumeSnippets(snippetsManager) {
181181
exports.consumeSnippets = consumeSnippets;
182182
function waitForGrammarActivation() {
183183
var activated = false;
184-
var deferred = Promise.defer();
185-
var editorWatch = atom.workspace.observeTextEditors(function (editor) {
186-
if (activated)
187-
return;
188-
editor.observeGrammar(function (grammar) {
189-
if (grammar.packageName === 'atom-typescript') {
190-
activated = true;
191-
deferred.resolve({});
192-
}
184+
var promise = new Promise(function (resolve, reject) {
185+
var editorWatch = atom.workspace.observeTextEditors(function (editor) {
186+
if (activated)
187+
return;
188+
editor.observeGrammar(function (grammar) {
189+
if (grammar.packageName === 'atom-typescript') {
190+
activated = true;
191+
resolve({});
192+
editorWatch.dispose();
193+
}
194+
});
193195
});
194196
});
195-
return deferred.promise.then(function () { return editorWatch.dispose(); });
197+
return promise;
196198
}

dist/main/tsconfig/tsconfig.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ var compilerOptionsValidation = {
3232
noErrorTruncation: { type: types.boolean },
3333
noFallthroughCasesInSwitch: { type: types.boolean },
3434
noImplicitAny: { type: types.boolean },
35+
noImplicitUseStrict: { type: types.boolean },
3536
noImplicitReturns: { type: types.boolean },
3637
noLib: { type: types.boolean },
3738
noLibCheck: { type: types.boolean },
@@ -90,6 +91,7 @@ exports.defaults = {
9091
emitDecoratorMetadata: true,
9192
declaration: false,
9293
noImplicitAny: false,
94+
noImplicitUseStrict: false,
9395
removeComments: true,
9496
noLib: false,
9597
preserveConstEnums: true,

dist/worker/lib/workerLib.js

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@ var RequesterResponder = (function () {
3030
if (!_this.currentListeners[message])
3131
_this.currentListeners[message] = {};
3232
var id = createId();
33-
var defer = Promise.defer();
34-
_this.currentListeners[message][id] = defer;
33+
var promise = new Promise(function (resolve, reject) {
34+
_this.currentListeners[message][id] = { resolve: resolve, reject: reject, promise: promise };
35+
});
3536
_this.pendingRequests.push(message);
3637
_this.pendingRequestsChanged(_this.pendingRequests);
3738
_this.getProcess().send({ message: message, id: id, data: data, request: true });
38-
return defer.promise;
39+
return promise;
3940
};
4041
this.responders = {};
4142
this.processRequest = function (m) {
@@ -120,12 +121,13 @@ var RequesterResponder = (function () {
120121
if (_this.currentLastOfType[message]) {
121122
_this.currentLastOfType[message].defer.resolve(defaultResponse);
122123
}
123-
var defer = Promise.defer();
124-
_this.currentLastOfType[message] = {
125-
data: data,
126-
defer: defer
127-
};
128-
return defer.promise;
124+
var promise_1 = new Promise(function (resolve, reject) {
125+
_this.currentLastOfType[message] = {
126+
data: data,
127+
defer: { promise: promise_1, resolve: resolve, reject: reject }
128+
};
129+
});
130+
return promise_1;
129131
}
130132
};
131133
};

lib/main/atomts.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -321,17 +321,19 @@ export function consumeSnippets(snippetsManager) {
321321

322322
function waitForGrammarActivation(): Promise<any> {
323323
let activated = false;
324-
let deferred = Promise.defer();
325-
let editorWatch = atom.workspace.observeTextEditors((editor: AtomCore.IEditor) => {
326-
327-
// Just so we won't attach more events than necessary
328-
if (activated) return;
329-
editor.observeGrammar((grammar: AtomCore.IGrammar) => {
330-
if (grammar.packageName === 'atom-typescript') {
331-
activated = true;
332-
deferred.resolve({});
333-
}
324+
const promise = new Promise((resolve,reject) => {
325+
let editorWatch = atom.workspace.observeTextEditors((editor: AtomCore.IEditor) => {
326+
327+
// Just so we won't attach more events than necessary
328+
if (activated) return;
329+
editor.observeGrammar((grammar: AtomCore.IGrammar) => {
330+
if (grammar.packageName === 'atom-typescript') {
331+
activated = true;
332+
resolve({});
333+
editorWatch.dispose();
334+
}
335+
});
334336
});
335337
});
336-
return deferred.promise.then(() => editorWatch.dispose());
338+
return promise;
337339
}

lib/typings/atompromise.d.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ interface PromiseConstructor {
3333
* and a reject callback used to reject the promise with a provided reason or error.
3434
*/
3535
new <T>(init: (resolve: (value?: T | Promise<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
36-
36+
3737
<T>(init: (resolve: (value?: T | Promise<T>) => void, reject: (reason?: any) => void) => void): Promise<T>;
3838

3939
/**
@@ -86,9 +86,6 @@ interface PromiseConstructor {
8686
* @returns A resolved promise.
8787
*/
8888
resolve(): Promise<void>;
89-
90-
/// BAS ADDITIONS AFTER INSPECTION INTO ATOM
91-
defer<T>(): PromiseDeferred<T>;
9289
}
9390

9491
interface PromiseDeferred<T> {

lib/worker/lib/workerLib.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,15 @@ class RequesterResponder {
102102

103103
// Create an id unique to this call and store the defered against it
104104
var id = createId();
105-
var defer = Promise.defer<any>();
106-
this.currentListeners[message][id] = defer;
105+
const promise = new Promise((resolve,reject)=>{
106+
this.currentListeners[message][id] = { resolve, reject, promise };
107+
});
107108

108109
// Send data to worker
109110
this.pendingRequests.push(message);
110111
this.pendingRequestsChanged(this.pendingRequests);
111112
this.getProcess().send({ message: message, id: id, data: data, request: true });
112-
return defer.promise;
113+
return promise;
113114
}
114115

115116
/**
@@ -153,12 +154,13 @@ class RequesterResponder {
153154
}
154155

155156
// this needs to be the new last
156-
var defer = Promise.defer<Response>();
157-
this.currentLastOfType[message] = {
158-
data: data,
159-
defer: defer
160-
}
161-
return defer.promise;
157+
const promise = new Promise<Response>((resolve,reject)=>{
158+
this.currentLastOfType[message] = {
159+
data: data,
160+
defer: {promise,resolve,reject}
161+
}
162+
});
163+
return promise;
162164
}
163165
};
164166
}

0 commit comments

Comments
 (0)