Skip to content

Commit 7a27fd9

Browse files
haydbartlomieju
authored andcommitted
Use deferred from std@v0.22.0 (#75)
* Use deferred from std@v0.22.0 and bump deno to 0.22.0 This also drops the permissions.env() default since this is now async in Deno... * Don't require --allow-env
1 parent 95a4c1b commit 7a27fd9

File tree

4 files changed

+20
-55
lines changed

4 files changed

+20
-55
lines changed

.travis.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
language: generic
22

33
install:
4-
- curl -fsSL https://deno.land/x/install/install.sh | sh -s v0.20.0
4+
- curl -fsSL https://deno.land/x/install/install.sh | sh -s v0.22.0
55
- export PATH="$HOME/.deno/bin:$PATH"
66

77
services:

connection_params.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
11
import { parseDsn } from "./utils.ts";
22

33
function getPgEnv(): IConnectionParams {
4-
// this is dummy env object, if program
5-
// was run with --allow-env permission then
6-
// it's filled with actual values
7-
let pgEnv: IConnectionParams = {};
8-
9-
if (Deno.permissions().env) {
4+
try {
105
const env = Deno.env();
11-
12-
pgEnv = {
6+
return {
137
database: env.PGDATABASE,
148
host: env.PGHOST,
159
port: env.PGPORT,
1610
user: env.PGUSER,
1711
password: env.PGPASSWORD,
1812
application_name: env.PGAPPNAME
1913
};
14+
} catch (e) {
15+
// PermissionDenied (--allow-env not passed)
16+
return {};
2017
}
21-
22-
return pgEnv;
2318
}
2419

2520
function selectFrom(

deferred.ts

Lines changed: 5 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,15 @@
1-
export type Deferred<T = any, R = Error> = {
2-
promise: Promise<T>;
3-
resolve: (t?: T) => void;
4-
reject: (r?: R) => void;
5-
readonly handled: boolean;
6-
};
7-
8-
export type DeferredItemCreator<T> = () => Promise<T>;
9-
10-
/** Create deferred promise that can be resolved and rejected by outside */
11-
export function defer<T, R>(): Deferred<T> {
12-
let handled = false,
13-
resolve: (t?: T) => void | undefined,
14-
reject: (r?: any) => void | undefined;
15-
16-
const promise = new Promise<T>((res, rej) => {
17-
resolve = r => {
18-
handled = true;
19-
res(r);
20-
};
21-
reject = r => {
22-
handled = true;
23-
rej(r);
24-
};
25-
});
26-
27-
return {
28-
promise,
29-
resolve: resolve!,
30-
reject: reject!,
31-
32-
get handled() {
33-
return handled;
34-
}
35-
};
36-
}
1+
import { Deferred, deferred } from "./deps.ts";
372

383
export class DeferredStack<T> {
394
private _array: Array<T>;
40-
private _queue: Array<Deferred>;
5+
private _queue: Array<Deferred<T>>;
416
private _maxSize: number;
427
private _size: number;
438

449
constructor(
4510
max?: number,
4611
ls?: Iterable<T>,
47-
private _creator?: DeferredItemCreator<T>
12+
private _creator?: () => Promise<T>
4813
) {
4914
this._maxSize = max || 10;
5015
this._array = ls ? [...ls] : [];
@@ -59,9 +24,9 @@ export class DeferredStack<T> {
5924
this._size++;
6025
return await this._creator();
6126
}
62-
const d = defer();
27+
const d = deferred<T>();
6328
this._queue.push(d);
64-
await d.promise;
29+
await d;
6530
return this._array.pop()!;
6631
}
6732

deps.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
11
export {
22
BufReader,
33
BufWriter
4-
} from "https://deno.land/std@v0.20.0/io/bufio.ts";
4+
} from "https://deno.land/std@v0.22.0/io/bufio.ts";
55

6-
export { copyBytes } from "https://deno.land/std@v0.20.0/io/util.ts";
6+
export { copyBytes } from "https://deno.land/std@v0.22.0/io/util.ts";
77

88
export {
99
assert,
1010
assertEquals,
1111
assertStrContains,
1212
assertThrowsAsync
13-
} from "https://deno.land/std@v0.20.0/testing/asserts.ts";
13+
} from "https://deno.land/std@v0.22.0/testing/asserts.ts";
1414

1515
export {
1616
runTests,
1717
test,
1818
TestFunction
19-
} from "https://deno.land/std@v0.20.0/testing/mod.ts";
19+
} from "https://deno.land/std@v0.22.0/testing/mod.ts";
20+
21+
export {
22+
Deferred,
23+
deferred
24+
} from "https://deno.land/std@v0.22.0/util/async.ts";
2025

2126
export { Hash } from "https://deno.land/x/checksum@1.0.1/mod.ts";

0 commit comments

Comments
 (0)