All Projects → douglascrockford → Jslint

douglascrockford / Jslint

JSLint, The JavaScript Code Quality and Coverage Tool

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
shell
77523 projects
Vim Script
2826 projects

Projects that are alternatives of or similar to Jslint

titef
🌠 A tiny, lightning-fast, zero-dependecies JavaScript test framework 🌠
Stars: ✭ 19 (-99.45%)
Mutual labels:  zero-dependency
goverreport
Command line tool for coverage reporting and validation
Stars: ✭ 44 (-98.74%)
Mutual labels:  coverage-report
LocalCoverage.jl
Trivial functions for working with coverage for packages locally.
Stars: ✭ 55 (-98.42%)
Mutual labels:  coverage-report
hydrate-text
A small, dependency-free and strongly typed template engine.
Stars: ✭ 45 (-98.71%)
Mutual labels:  zero-dependency
zero
📦 A zero config scripts library
Stars: ✭ 17 (-99.51%)
Mutual labels:  zero-config
elegant-react-ssr
Server-side rendering with create-react-app, React Router v4, Helmet, Redux, and Thunk boilerplate, without ejecting CRA
Stars: ✭ 16 (-99.54%)
Mutual labels:  zero-config
http-node-api
O objetivo dessa aplicação era criar uma API sem nenhuma dependência externa, apenas utilizando as bibliotecas nativas do NodeJS. Tudo foi feito utilizando 100% Javascript.
Stars: ✭ 44 (-98.74%)
Mutual labels:  zero-dependency
Wouter
🥢 A minimalist-friendly ~1.5KB routing for React and Preact. Nothing else but HOOKS.
Stars: ✭ 3,654 (+5.03%)
Mutual labels:  zero-dependency
behat-code-coverage
Generate Code Coverage reports for Behat tests
Stars: ✭ 48 (-98.62%)
Mutual labels:  coverage-report
mutant-swarm
Mutation testing framework and code coverage for Hive SQL
Stars: ✭ 20 (-99.43%)
Mutual labels:  coverage-report
enterprise
Code coverage done right.® On-premise enterprise version.
Stars: ✭ 63 (-98.19%)
Mutual labels:  coverage-report
unitest
🌎 Seamless node and browser unit testing with code coverage
Stars: ✭ 28 (-99.2%)
Mutual labels:  coverage-report
hpc-coveralls
coveralls.io support for haskell code coverage with hpc
Stars: ✭ 60 (-98.28%)
Mutual labels:  coverage-report
pretty-hex
A Rust library providing pretty hex dump.
Stars: ✭ 34 (-99.02%)
Mutual labels:  zero-dependency
trail
Routing library for the Scala platform
Stars: ✭ 76 (-97.82%)
Mutual labels:  zero-dependency
javadoc-coverage
A Doclet to generate JavaDoc coverage reports ☕️🧪📗
Stars: ✭ 23 (-99.34%)
Mutual labels:  coverage-report
coverex
Coverage Reports for Elixir
Stars: ✭ 98 (-97.18%)
Mutual labels:  coverage-report
Covr
Test coverage reports for R
Stars: ✭ 285 (-91.81%)
Mutual labels:  coverage-report
frankencover.it
Code coverage for iOS and OSX.
Stars: ✭ 102 (-97.07%)
Mutual labels:  coverage-report
react-apple-signin-auth
 Apple signin for React using the official Apple JS SDK
Stars: ✭ 58 (-98.33%)
Mutual labels:  zero-dependency

JSLint, The JavaScript Code Quality and Coverage Tool

Douglas Crockford [email protected]

Status

Branch master
(v2021.11.20)
beta
(Web Demo)
alpha
(Development)
CI ci ci ci
Coverage coverage coverage coverage
Demo
Artifacts



Table of Contents

  1. Web Demo

  2. Web Demo Archived

  3. API Doc

  4. Quickstart Install

  5. Quickstart JSLint Report

  6. Quickstart V8 Coverage Report

  7. Plugin Vim

  8. Description

  9. Package Listing

  10. Changelog

  11. License



Web Demo

screenshot



Web Demo Archived



API Doc

screenshot



Quickstart Install



To install, just download https://www.jslint.com/jslint.mjs and save to file:

#!/bin/sh

curl -L https://www.jslint.com/jslint.mjs > jslint.mjs
  • shell output

screenshot.svg



To run jslint.mjs in shell:

#!/bin/sh

printf "console.log('hello world');\n" > hello.js

node jslint.mjs hello.js
  • shell output

screenshot.svg



To import jslint.mjs in ES Module environment:

#!/bin/sh

node --input-type=module --eval '

/*jslint devel*/

// Import JSLint in ES Module environment.

import jslint from "./jslint.mjs";

let globals = ["caches", "indexedDb"];
let options = {browser: true};
let result;
let source = "console.log(\u0027hello world\u0027);\n";

// JSLint <source> and print <formatted_message>.

result = jslint.jslint(source, options, globals);
result.warnings.forEach(function ({
    formatted_message
}) {
    console.error(formatted_message);
});

'
  • shell output

screenshot.svg



To import jslint.mjs in CommonJS environment:

#!/bin/sh

node --eval '

/*jslint devel*/
(async function () {
    let globals = ["caches", "indexedDb"];
    let jslint;
    let options = {browser: true};
    let result;
    let source = "console.log(\u0027hello world\u0027);\n";

// Import JSLint in CommonJS environment.

    jslint = await import("./jslint.mjs");
    jslint = jslint.default;

// JSLint <source> and print <formatted_message>.

    result = jslint.jslint(source, options, globals);
    result.warnings.forEach(function ({
        formatted_message
    }) {
        console.error(formatted_message);
    });
}());

'
  • shell output

screenshot.svg



To JSLint entire directory in shell:

#!/bin/sh

# JSLint directory '.'

node jslint.mjs .
  • shell output

screenshot.svg



Quickstart JSLint Report



To create a JSLint report in shell:

#!/bin/sh

printf "function foo() {console.log('hello world');}\n" > hello.js

# Create JSLint report from file 'hello.js' in shell.

node jslint.mjs \
    jslint_report=.artifact/jslint_report_hello.html \
    hello.js
  • shell output

screenshot.svg

screenshot.png



To create a JSLint report in javascript:

#!/bin/sh

node --input-type=module --eval '

/*jslint devel*/
import jslint from "./jslint.mjs";
import fs from "fs";
(async function () {
    let report;
    let result;
    let source = "function foo() {console.log(\u0027hello world\u0027);}\n";

// Create JSLint report from <source> in javascript.

    result = jslint.jslint(source);
    report = jslint.jslint_report(result);

    await fs.promises.mkdir(".artifact/", {recursive: true});
    await fs.promises.writeFile(".artifact/jslint_report_hello.html", report);
    console.error("wrote file .artifact/jslint_report_hello.html");
}());

'
  • shell output

screenshot.svg

screenshot.png



Quickstart V8 Coverage Report



To create V8 coverage report from Node.js / Npm program in shell:

#!/bin/sh

git clone https://github.com/mapbox/node-sqlite3 node-sqlite3-sh \
    --branch=v5.0.2 \
    --depth=1 \
    --single-branch

cd node-sqlite3-sh
npm install

# Create V8 coverage report from program `npm run test` in shell.

node ../jslint.mjs \
    v8_coverage_report=../.artifact/coverage_sqlite3_sh/ \
    --exclude-node-modules=true \
    --exclude=test/foo.js,test/bar.js \
    --exclude=test/baz.js \
    npm run test
  • shell output

screenshot.svg

screenshot.png

screenshot.png



To create V8 coverage report from Node.js / Npm program in javascript:

#!/bin/sh

git clone https://github.com/mapbox/node-sqlite3 node-sqlite3-js \
    --branch=v5.0.2 \
    --depth=1 \
    --single-branch

cd node-sqlite3-js
npm install

node --input-type=module --eval '

/*jslint node*/
import jslint from "../jslint.mjs";
(async function () {

// Create V8 coverage report from program `npm run test` in javascript.

    await jslint.v8CoverageReportCreate({
        coverageDir: "../.artifact/coverage_sqlite3_js/",
        processArgv: [
            "--include=lib/sqlite3-binding.js,lib/sqlite3.js",
            "--include=lib/trace.js",
            "npm", "run", "test"
        ]
    });
}());

'
  • shell output

screenshot.svg

screenshot.png

screenshot.png



Plugin Vim



To run JSLint in Vim:

  1. Download and save jslint.mjs, jslint.vim to directory ~/.vim/
  2. Add vim-command :source ~/.vim/jslint.vim to file ~/.vimrc
  3. Vim can now jslint files (via nodejs):
    • with vim-command :SaveAndJslint
    • with vim-key-combo <Ctrl-S> <Ctrl-J>
  • screenshot

screenshot.png



Description

  • jslint.mjs contains the jslint function. It parses and analyzes a source file, returning an object with information about the file. It can also take an object that sets options.

  • index.html runs the jslint.mjs function in a web page.

  • help.html describes JSLint's usage. Please read it.

JSLint can be run anywhere that JavaScript (or Java) can run.

The place to express yourself in programming is in the quality of your ideas and the efficiency of their execution. The role of style in programming is the same as in literature: It makes for better reading. A great writer doesn't express herself by putting the spaces before her commas instead of after, or by putting extra spaces inside her parentheses. A great writer will slavishly conform to some rules of style, and that in no way constrains her power to express herself creatively. See for example William Strunk's The Elements of Style [https://www.crockford.com/style.html].

This applies to programming as well. Conforming to a consistent style improves readability, and frees you to express yourself in ways that matter. JSLint here plays the part of a stern but benevolent editor, helping you to get the style right so that you can focus your creative energy where it is most needed.



Package Listing

screenshot_package_listing.svg



Changelog

screenshot_changelog.svg



License

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].