diff options
Diffstat (limited to 'deps/npm/man/man7/coding-style.7')
-rw-r--r-- | deps/npm/man/man7/coding-style.7 | 222 |
1 files changed, 0 insertions, 222 deletions
diff --git a/deps/npm/man/man7/coding-style.7 b/deps/npm/man/man7/coding-style.7 deleted file mode 100644 index 90faff3f9d..0000000000 --- a/deps/npm/man/man7/coding-style.7 +++ /dev/null @@ -1,222 +0,0 @@ -.TH "CODING\-STYLE" "" "November 2019" "" "" -.SH "NAME" -\fBcoding-style\fR -.SH npm's "funny" coding style -.SS Description -.P -npm's coding style is a bit unconventional\. It is not different for -difference's sake, but rather a carefully crafted style that is -designed to reduce visual clutter and make bugs more apparent\. -.P -If you want to contribute to npm (which is very encouraged), you should -make your code conform to npm's style\. -.P -Note: this concerns npm's code not the specific packages that you can download from the npm registry\. -.SS Line Length -.P -Keep lines shorter than 80 characters\. It's better for lines to be -too short than to be too long\. Break up long lists, objects, and other -statements onto multiple lines\. -.SS Indentation -.P -Two\-spaces\. Tabs are better, but they look like hell in web browsers -(and on GitHub), and node uses 2 spaces, so that's that\. -.P -Configure your editor appropriately\. -.SS Curly braces -.P -Curly braces belong on the same line as the thing that necessitates them\. -.P -Bad: -.P -.RS 2 -.nf -function () -{ -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -function () { -.fi -.RE -.P -If a block needs to wrap to the next line, use a curly brace\. Don't -use it if it doesn't\. -.P -Bad: -.P -.RS 2 -.nf -if (foo) { bar() } -while (foo) - bar() -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -if (foo) bar() -while (foo) { - bar() -} -.fi -.RE -.SS Semicolons -.P -Don't use them except in four situations: -.RS 0 -.IP \(bu 2 -\fBfor (;;)\fP loops\. They're actually required\. -.IP \(bu 2 -null loops like: \fBwhile (something) ;\fP (But you'd better have a good -reason for doing that\.) -.IP \(bu 2 -\fBcase 'foo': doSomething(); break\fP -.IP \(bu 2 -In front of a leading \fB(\fP or \fB[\fP at the start of the line\. -This prevents the expression from being interpreted -as a function call or property access, respectively\. - -.RE -.P -Some examples of good semicolon usage: -.P -.RS 2 -.nf -;(x || y)\.doSomething() -;[a, b, c]\.forEach(doSomething) -for (var i = 0; i < 10; i ++) { - switch (state) { - case 'begin': start(); continue - case 'end': finish(); break - default: throw new Error('unknown state') - } - end() -} -.fi -.RE -.P -Note that starting lines with \fB\-\fP and \fB+\fP also should be prefixed -with a semicolon, but this is much less common\. -.SS Comma First -.P -If there is a list of things separated by commas, and it wraps -across multiple lines, put the comma at the start of the next -line, directly below the token that starts the list\. Put the -final token in the list on a line by itself\. For example: -.P -.RS 2 -.nf -var magicWords = [ 'abracadabra' - , 'gesundheit' - , 'ventrilo' - ] - , spells = { 'fireball' : function () { setOnFire() } - , 'water' : function () { putOut() } - } - , a = 1 - , b = 'abc' - , etc - , somethingElse -.fi -.RE -.SS Quotes -.P -Use single quotes for strings except to avoid escaping\. -.P -Bad: -.P -.RS 2 -.nf -var notOk = "Just double quotes" -.fi -.RE -.P -Good: -.P -.RS 2 -.nf -var ok = 'String contains "double" quotes' -var alsoOk = "String contains 'single' quotes or apostrophe" -.fi -.RE -.SS Whitespace -.P -Put a single space in front of \fB(\fP for anything other than a function call\. -Also use a single space wherever it makes things more readable\. -.P -Don't leave trailing whitespace at the end of lines\. Don't indent empty -lines\. Don't use more spaces than are helpful\. -.SS Functions -.P -Use named functions\. They make stack traces a lot easier to read\. -.SS Callbacks, Sync/async Style -.P -Use the asynchronous/non\-blocking versions of things as much as possible\. -It might make more sense for npm to use the synchronous fs APIs, but this -way, the fs and http and child process stuff all uses the same callback\-passing -methodology\. -.P -The callback should always be the last argument in the list\. Its first -argument is the Error or null\. -.P -Be very careful never to ever ever throw anything\. It's worse than useless\. -Just send the error message back as the first argument to the callback\. -.SS Errors -.P -Always create a new Error object with your message\. Don't just return a -string message to the callback\. Stack traces are handy\. -.SS Logging -.P -Logging is done using the npmlog \fIhttps://github\.com/npm/npmlog\fR -utility\. -.P -Please clean up logs when they are no longer helpful\. In particular, -logging the same object over and over again is not helpful\. Logs should -report what's happening so that it's easier to track down where a fault -occurs\. -.P -Use appropriate log levels\. See \fBnpm\-config\fP \fI/docs/using\-npm/config\fR and search for -"loglevel"\. -.SS Case, naming, etc\. -.P -Use \fBlowerCamelCase\fP for multiword identifiers when they refer to objects, -functions, methods, properties, or anything not specified in this section\. -.P -Use \fBUpperCamelCase\fP for class names (things that you'd pass to "new")\. -.P -Use \fBall\-lower\-hyphen\-css\-case\fP for multiword filenames and config keys\. -.P -Use named functions\. They make stack traces easier to follow\. -.P -Use \fBCAPS_SNAKE_CASE\fP for constants, things that should never change -and are rarely used\. -.P -Use a single uppercase letter for function names where the function -would normally be anonymous, but needs to call itself recursively\. It -makes it clear that it's a "throwaway" function\. -.SS null, undefined, false, 0 -.P -Boolean variables and functions should always be either \fBtrue\fP or -\fBfalse\fP\|\. Don't set it to 0 unless it's supposed to be a number\. -.P -When something is intentionally missing or removed, set it to \fBnull\fP\|\. -.P -Don't set things to \fBundefined\fP\|\. Reserve that value to mean "not yet -set to anything\." -.P -Boolean objects are forbidden\. -.SS See Also -.RS 0 -.IP \(bu 2 -npm help developers -.IP \(bu 2 -npm help npm - -.RE |