-
Modules that generate ANSI color codes for the console.
-
Command line arguments parser.
-
Command line logging
-
A library for resolving media types (MIME types) and extensions.
-
Make directory branches.
-
A framework for creating HTTP/HTTPS servers inspired by GoLang.
-
File path manipulation.
-
Testing
For clarity and consistency avoid the terms "library" and "package". Instead use "module" to refer to a single JS or TS file and also to refer to a directory of TS/JS code.
index.ts
comes with the wrong connotations - and main.ts
should be reserved
for executable programs. The filename mod.ts
follows Rust’s convention, is
shorter than index.ts
, and doesn’t come with any preconceived notions about
how it might work.
deno_std
is intended to be baseline functionality that all Deno programs can
rely on. We want to guarantee to users that this code does not include
potentially unreviewed third party code.
Although deno_std
is a standalone codebase, we must still be careful to keep
the internal dependencies simple and manageable. In particular, be careful to
not to introduce circular imports.
Example: Instead of file-server.ts
use file_server.ts
.
More specifically, code should be wrapped at 80 columns and use 2-space
indentation and use camel-case. Use //format.ts
to invoke prettier.
We strive for complete documentation. Every exported symbol ideally should have a documentation line.
If possible, use a single line for the JS Doc. Example:
/** foo does bar. */
export function foo() {
// ...
}
See CONTRIBUTING.md for more details.
TODO comments should be include an issue or the author's github username in parentheses. Example:
// TODO(ry) Add tests.
// TODO(#123) Support Windows.
Most files in deno_std
should have the following copyright header:
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
If the code originates elsewhere, ensure that the file has the proper copyright
headers. We only allow MIT, BSD, and Apache licensed code in deno_std
.
Top level functions should use the function
keyword. Arrow syntax should be
limited to closures.
Bad
export const foo(): string => {
return "bar";
}
Good
export function foo(): string {
return "bar";
}
The name "deno" unfortunately is not especially unique on the internet. In order
to centralize the community, please tag github project, tweet, and other content
with #denoland
.
Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.