forked from denoland/deno
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
BREAKING(std): reorganization (denoland#5087)
* Prepend underscores to private modules * Remove collectUint8Arrays() It would be a misuse of Deno.iter()'s result. * Move std/_util/async.ts to std/async * Move std/util/sha*.ts to std/hash
- Loading branch information
Showing
100 changed files
with
303 additions
and
362 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,28 +10,27 @@ Contributions are welcome! | |
|
||
These modules are tagged in accordance with Deno releases. So, for example, the | ||
v0.3.0 tag is guaranteed to work with deno v0.3.0. You can link to v0.3.0 using | ||
the URL `https://deno.land/[email protected]/` | ||
the URL `https://deno.land/[email protected]/`. Not specifying a tag will link to the | ||
master branch. | ||
|
||
It's strongly recommended that you link to tagged releases rather than the | ||
master branch. The project is still young and we expect disruptive renames in | ||
the future. | ||
It is strongly recommended that you link to tagged releases to avoid unintended | ||
updates. | ||
|
||
Don't link to / import any module whose path: | ||
|
||
- Has a name or parent with an underscore prefix: `_foo.ts`, `_util/bar.ts`. | ||
- Is that of a test module or test data: `test.ts`, `foo_test.ts`, | ||
`testdata/bar.txt`. | ||
|
||
No stability is guaranteed for these files. | ||
|
||
## Documentation | ||
|
||
Here are the dedicated documentations of modules: | ||
|
||
- [colors](fmt/colors.ts) | ||
- [datetime](datetime/README.md) | ||
- [encoding](encoding/README.md) | ||
- [examples](examples/README.md) | ||
- [flags](flags/README.md) | ||
- [fs](fs/README.md) | ||
- [http](http/README.md) | ||
- [log](log/README.md) | ||
- [node](node/README.md) | ||
- [testing](testing/README.md) | ||
- [uuid](uuid/README.md) | ||
- [ws](ws/README.md) | ||
To browse documentation for modules: | ||
|
||
- Go to https://deno.land/std/. | ||
- Navigate to any module of interest. | ||
- Click the "DOCUMENTATION" link. | ||
|
||
## Contributing | ||
|
||
|
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. | ||
// TODO(ry) It'd be better to make Deferred a class that inherits from | ||
// Promise, rather than an interface. This is possible in ES2016, however | ||
// typescript produces broken code when targeting ES5 code. | ||
// See https://github.com/Microsoft/TypeScript/issues/15202 | ||
// At the time of writing, the github issue is closed but the problem remains. | ||
export interface Deferred<T> extends Promise<T> { | ||
resolve: (value?: T | PromiseLike<T>) => void; | ||
// eslint-disable-next-line @typescript-eslint/no-explicit-any | ||
reject: (reason?: any) => void; | ||
} | ||
|
||
/** Creates a Promise with the `reject` and `resolve` functions | ||
* placed as methods on the promise object itself. It allows you to do: | ||
* | ||
* const p = deferred<number>(); | ||
* // ... | ||
* p.resolve(42); | ||
*/ | ||
export function deferred<T>(): Deferred<T> { | ||
let methods; | ||
const promise = new Promise<T>((resolve, reject): void => { | ||
methods = { resolve, reject }; | ||
}); | ||
return Object.assign(promise, methods) as Deferred<T>; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. | ||
import { deferred } from "./deferred.ts"; | ||
|
||
Deno.test("[async] deferred", function (): Promise<void> { | ||
const d = deferred<number>(); | ||
d.resolve(12); | ||
return Promise.resolve(); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. | ||
/* Resolves after the given number of milliseconds. */ | ||
export function delay(ms: number): Promise<void> { | ||
return new Promise((res): number => | ||
setTimeout((): void => { | ||
res(); | ||
}, ms) | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. | ||
export * from "./deferred.ts"; | ||
export * from "./delay.ts"; | ||
export * from "./mux_async_iterator.ts"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. | ||
import { Deferred, deferred } from "./deferred.ts"; | ||
|
||
interface TaggedYieldedValue<T> { | ||
iterator: AsyncIterableIterator<T>; | ||
value: T; | ||
} | ||
|
||
/** The MuxAsyncIterator class multiplexes multiple async iterators into a | ||
* single stream. It currently makes a few assumptions: | ||
* - The iterators do not throw. | ||
* - The final result (the value returned and not yielded from the iterator) | ||
* does not matter; if there is any, it is discarded. | ||
*/ | ||
export class MuxAsyncIterator<T> implements AsyncIterable<T> { | ||
private iteratorCount = 0; | ||
private yields: Array<TaggedYieldedValue<T>> = []; | ||
private signal: Deferred<void> = deferred(); | ||
|
||
add(iterator: AsyncIterableIterator<T>): void { | ||
++this.iteratorCount; | ||
this.callIteratorNext(iterator); | ||
} | ||
|
||
private async callIteratorNext( | ||
iterator: AsyncIterableIterator<T> | ||
): Promise<void> { | ||
const { value, done } = await iterator.next(); | ||
if (done) { | ||
--this.iteratorCount; | ||
} else { | ||
this.yields.push({ iterator, value }); | ||
} | ||
this.signal.resolve(); | ||
} | ||
|
||
async *iterate(): AsyncIterableIterator<T> { | ||
while (this.iteratorCount > 0) { | ||
// Sleep until any of the wrapped iterators yields. | ||
await this.signal; | ||
|
||
// Note that while we're looping over `yields`, new items may be added. | ||
for (let i = 0; i < this.yields.length; i++) { | ||
const { iterator, value } = this.yields[i]; | ||
yield value; | ||
this.callIteratorNext(iterator); | ||
} | ||
|
||
// Clear the `yields` list and reset the `signal` promise. | ||
this.yields.length = 0; | ||
this.signal = deferred(); | ||
} | ||
} | ||
|
||
[Symbol.asyncIterator](): AsyncIterableIterator<T> { | ||
return this.iterate(); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. | ||
import { assertEquals } from "../testing/asserts.ts"; | ||
import { MuxAsyncIterator } from "./mux_async_iterator.ts"; | ||
|
||
// eslint-disable-next-line require-await | ||
async function* gen123(): AsyncIterableIterator<number> { | ||
yield 1; | ||
yield 2; | ||
yield 3; | ||
} | ||
|
||
// eslint-disable-next-line require-await | ||
async function* gen456(): AsyncIterableIterator<number> { | ||
yield 4; | ||
yield 5; | ||
yield 6; | ||
} | ||
|
||
Deno.test("[async] MuxAsyncIterator", async function (): Promise<void> { | ||
const mux = new MuxAsyncIterator<number>(); | ||
mux.add(gen123()); | ||
mux.add(gen456()); | ||
const results = new Set(); | ||
for await (const value of mux) { | ||
results.add(value); | ||
} | ||
assertEquals(results.size, 6); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. | ||
|
||
import "./yaml/parse_test.ts"; | ||
import "./yaml/stringify_test.ts"; | ||
import "./_yaml/parse_test.ts"; | ||
import "./_yaml/stringify_test.ts"; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,7 @@ | ||
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. | ||
const { args } = Deno; | ||
import { parse } from "./mod.ts"; | ||
import { parse } from "../flags/mod.ts"; | ||
|
||
console.dir(parse(args)); | ||
if (import.meta.main) { | ||
console.dir(parse(args)); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Oops, something went wrong.