Remove lintingDir

This commit is contained in:
Jeroen Engels 2017-06-17 09:16:28 +02:00
parent 0470d19af8
commit 7f37ee4c68
7 changed files with 0 additions and 338 deletions

View File

@ -1,72 +0,0 @@
const path = require('path');
const fs = require('fs-extra');
const glob = require('glob');
const defaultGlob = '**/*.elm';
const ignore = ['**/elm-stuff/**', '**/node_modules/**', 'lintingDir/**'];
function flatMap(array, fn) {
return array.reduce((res, item) => res.concat(fn(item)), []);
}
function getFiles(filename) {
if (!fs.existsSync(filename)) {
return [];
}
if (fs.lstatSync(filename).isDirectory()) {
return flatMap(
glob.sync('/' + defaultGlob, {
root: filename,
nocase: true,
ignore: ['/**/elm-stuff/**', '/**/node_modules/**'],
nodir: true
}),
resolveFilePath
);
}
return [filename];
}
// Recursively search directories for *.elm files, excluding elm-stuff/
function resolveFilePath(filename) {
// Exclude everything having anything to do with elm-stuff
return getFiles(filename).filter(candidate => !candidate.split(path.sep).includes('elm-stuff'));
}
function globify(filename) {
return glob.sync(filename, {
nocase: true,
ignore: ignore,
nodir: false
});
}
function globifyWithRoot(root, filename) {
return glob.sync(filename, {
root: root,
nocase: true,
ignore: ignore,
nodir: false
});
}
function getElmFilePaths(filePathArgs) {
if (filePathArgs.length > 0) {
return flatMap(filePathArgs, globify);
}
const root = path.join(path.resolve(process.cwd()), '..');
return globifyWithRoot(root, '**/*.elm');
}
function getElmFiles(filePathArgs) {
const relativeElmFiles = getElmFilePaths(filePathArgs);
return flatMap(relativeElmFiles, resolveFilePath).map(file => {
return {
filename: file,
source: fs.readFileSync(file, 'utf8')
};
});
}
module.exports = getElmFiles;

View File

@ -1,19 +0,0 @@
{
"dependencies": {
"Bogdanp/elm-ast": "8.0.3 <= v < 9.0.0",
"elm-community/list-extra": "5.0.1 <= v < 6.0.0",
"elm-community/parser-combinators": "1.1.0 <= v < 2.0.0",
"elm-lang/core": "5.0.0 <= v < 6.0.0",
"elm-lang/html": "2.0.0 <= v < 3.0.0"
},
"version": "1.0.0",
"summary": "Linting binary",
"repository": "https://github.com/jfmengels/elm-lint.git",
"license": "BSD3",
"source-directories": [
"src",
"../src"
],
"exposed-modules": [],
"elm-version": "0.18.0 <= v < 0.19.0"
}

View File

@ -1,69 +0,0 @@
{
"name": "lintingDir",
"version": "1.0.0",
"lockfileVersion": 1,
"dependencies": {
"balanced-match": {
"version": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
"brace-expansion": {
"version": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
"integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI="
},
"concat-map": {
"version": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
},
"fs-extra": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
"integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE="
},
"fs.realpath": {
"version": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"glob": {
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ=="
},
"graceful-fs": {
"version": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg="
},
"inflight": {
"version": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk="
},
"inherits": {
"version": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"jsonfile": {
"version": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.0.tgz",
"integrity": "sha1-kufHRE5f/V+jLmqa6LhQNN+DR9A="
},
"minimatch": {
"version": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM="
},
"once": {
"version": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E="
},
"path-is-absolute": {
"version": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
},
"universalify": {
"version": "https://registry.npmjs.org/universalify/-/universalify-0.1.0.tgz",
"integrity": "sha1-nrHEZR3rzGcMyU8adXYjMruWd3g="
},
"wrappy": {
"version": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
}
}
}

View File

@ -1,16 +0,0 @@
{
"name": "lintingDir",
"version": "1.0.0",
"description": "",
"main": "ok.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"fs-extra": "^3.0.1",
"glob": "^7.1.2"
}
}

View File

@ -1,18 +0,0 @@
#!/usr/bin/env node
const getElmFiles = require('./elm-files')
const Elm = require('./compiledLintApp');
const elmFiles = getElmFiles([]);
if (elmFiles.length === 0) {
console.error('Could not find any files to lint.');
process.exit(1);
}
const app = Elm.LintApp.worker();
app.ports.linting.send(elmFiles);
app.ports.resultPort.subscribe(function(report) {
console.log(report);
});

View File

@ -1,108 +0,0 @@
port module LintApp exposing (..)
import Json.Decode
import Lint exposing (lintSource)
import Lint.Types exposing (LintRule, LintError, Severity(..))
import LintConfig exposing (config)
type alias File =
{ filename : String
, source : String
}
port linting : (List File -> msg) -> Sub msg
port resultPort : String -> Cmd msg
type alias Model =
{}
type Msg
= Lint (List File)
enabledRules : List ( Severity, LintRule )
enabledRules =
config
|> List.filter (Tuple.first >> (/=) Disabled)
lint : String -> List ( Severity, LintError )
lint source =
lintSource enabledRules source
|> (\result ->
case result of
Err errors ->
[ ( Critical, { rule = "ParseError", message = String.join "\n" errors } )
]
Ok result ->
result
)
update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
case msg of
Lint files ->
let
lintResult =
files
|> List.map (\file -> ( file, lint file.source ))
|> List.filter
(Tuple.second >> List.isEmpty >> not)
|> List.map formatReport
|> String.join "\n\n"
in
( model
, resultPort lintResult
)
subscriptions : Model -> Sub Msg
subscriptions model =
linting Lint
main : Program Never Model Msg
main =
Platform.program
{ init = ( Model, Cmd.none )
, update = update
, subscriptions = subscriptions
}
formatSeverity : Severity -> String
formatSeverity severity =
case severity of
Disabled ->
"Disabled"
Warning ->
"Warning"
Critical ->
"Critical"
formatReport : ( File, List ( Severity, LintError ) ) -> String
formatReport ( { filename }, errors ) =
let
formattedErrors =
List.map
(\( severity, { rule, message } ) ->
"(" ++ (formatSeverity severity) ++ ") " ++ rule ++ ": " ++ message
)
errors
in
(toString (List.length errors))
++ " errors found in '"
++ filename
++ "':\n\n\t"
++ (String.join "\n\t" formattedErrors)

View File

@ -1,36 +0,0 @@
module LintConfig exposing (config)
import Lint.Types exposing (LintRule, Severity(..))
import Lint.Rules.DefaultPatternPosition
import Lint.Rules.NoConstantCondition
import Lint.Rules.NoDebug
import Lint.Rules.NoDuplicateImports
import Lint.Rules.NoExposingEverything
import Lint.Rules.NoImportingEverything
import Lint.Rules.NoNestedLet
import Lint.Rules.NoUnannotatedFunction
import Lint.Rules.NoUnusedVariables
import Lint.Rules.NoUselessIf
import Lint.Rules.NoUselessPatternMatching
import Lint.Rules.NoWarningComments
import Lint.Rules.SimplifyPiping
import Lint.Rules.SimplifyPropertyAccess
config : List ( Severity, LintRule )
config =
[ ( Critical, Lint.Rules.DefaultPatternPosition.rule { position = Lint.Rules.DefaultPatternPosition.Last } )
, ( Critical, Lint.Rules.NoConstantCondition.rule )
, ( Critical, Lint.Rules.NoDebug.rule )
, ( Critical, Lint.Rules.NoDuplicateImports.rule )
, ( Critical, Lint.Rules.NoExposingEverything.rule )
, ( Critical, Lint.Rules.NoImportingEverything.rule )
, ( Critical, Lint.Rules.NoNestedLet.rule )
, ( Critical, Lint.Rules.NoUnannotatedFunction.rule )
, ( Critical, Lint.Rules.NoUnusedVariables.rule )
, ( Critical, Lint.Rules.NoUselessIf.rule )
, ( Critical, Lint.Rules.NoUselessPatternMatching.rule )
, ( Warning, Lint.Rules.NoWarningComments.rule )
, ( Critical, Lint.Rules.SimplifyPiping.rule )
, ( Critical, Lint.Rules.SimplifyPropertyAccess.rule )
]