Skip to content
This repository has been archived by the owner on Feb 19, 2020. It is now read-only.

Commit

Permalink
Changed linter & updated build files
Browse files Browse the repository at this point in the history
  • Loading branch information
Vitaly Puzrin committed Feb 2, 2015
1 parent fd0f3f6 commit acc6cbd
Show file tree
Hide file tree
Showing 15 changed files with 165 additions and 441 deletions.
6 changes: 6 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
coverage/
demo/
dist/
node_modules
support/demo_template/sample.js
benchmark/implementations/markdown-it-2.2.1*
118 changes: 118 additions & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
env:
node: true
browser: false

plugins:
- nodeca

rules:
block-scoped-var: 2
brace-style: [ 2, '1tbs', { allowSingleLine: true } ]
comma-spacing: 2
comma-style: 2
consistent-this: [ 2, self ]
consistent-return: 2
curly: 2
# default-case: 2
dot-notation: 2
eol-last: 2
eqeqeq: 2
guard-for-in: 2
handle-callback-err: 2
max-depth: [ 1, 6 ]
max-nested-callbacks: [ 1, 4 ]
# string can exceed 80 chars, but should not overflow github website :)
max-len: [ 2, 120, 1000 ]
new-cap: 2
new-parens: 2
no-alert: 2
no-array-constructor: 2
no-bitwise: 2
no-caller: 2
no-catch-shadow: 2
no-comma-dangle: 2
no-cond-assign: 2
no-console: 1
no-constant-condition: 2
no-control-regex: 2
no-debugger: 2
no-delete-var: 2
no-dupe-keys: 2
no-div-regex: 2
no-empty: 2
no-empty-class: 2
no-empty-label: 2
no-else-return: 2
no-eq-null: 2
no-ex-assign: 2
no-extend-native: 2
no-extra-bind: 2
no-extra-boolean-cast: 2
no-extra-semi: 2
no-extra-strict: 2
no-eval: 2
no-floating-decimal: 2
no-func-assign: 2
no-implied-eval: 2
no-inner-declarations: 2
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-label-var: 2
no-labels: 2
no-lone-blocks: 2
no-lonely-if: 2
no-loop-func: 2
no-mixed-requires: 2
no-mixed-spaces-and-tabs: 2
no-multi-str: 2
no-native-reassign: 2
no-negated-in-lhs: 2
no-new: 2
no-new-func: 2
no-new-object: 2
no-new-require: 2
no-new-wrappers: 2
no-obj-calls: 2
no-octal: 2
no-octal-escape: 2
no-path-concat: 2
no-redeclare: 2
no-regex-spaces: 2
no-reserved-keys: 2
no-return-assign: 2
no-script-url: 2
no-sequences: 2
no-shadow: 2
no-shadow-restricted-names: 2
no-space-before-semi: 2
no-sparse-arrays: 2
no-trailing-spaces: 2
no-undef: 2
no-undef-init: 2
no-undefined: 2
no-unreachable: 2
no-unused-expressions: 2
no-unused-vars: 2
no-use-before-define: 2
no-with: 2
no-wrap-func: 2
quotes: [ 2, single, avoid-escape ]
radix: 2
semi: 2
space-after-keywords: [ 2, always, , { "checkFunctionKeyword": true } ]
space-before-blocks: 2
space-in-brackets: [ 2, always, { propertyName: false } ]
space-in-parens: [ 2, never ]
space-infix-ops: 2
space-return-throw-case: 2
space-unary-ops: 2
spaced-line-comment: [ 2, always, { exceptions: [ '/' ] } ]
strict: 2
use-isnan: 2
yoda: 2
valid-typeof: 2

#
# Our custom rules
#
nodeca/indent: [ 2, spaces, 2 ]
5 changes: 2 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/node_modules/
/doc/
node_modules/
coverage/
*.log
*.swp
4 changes: 0 additions & 4 deletions .jshintignore

This file was deleted.

78 changes: 0 additions & 78 deletions .jshintrc

This file was deleted.

2 changes: 1 addition & 1 deletion .ndocrc
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@
# Paths with sources
################################################################################

lib
index.js
8 changes: 6 additions & 2 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
/node_modules/
/doc/
benchmark/
coverage/
docs/
test/
Makefile
.*
*.log
2 changes: 0 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
language: node_js
node_js:
- "0.10"
before_script: "make dev-deps"
script: "make test"
53 changes: 13 additions & 40 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
PATH := ./node_modules/.bin:${PATH}

NPM_PACKAGE := $(shell node -e 'process.stdout.write(require("./package.json").name)')
NPM_VERSION := $(shell node -e 'process.stdout.write(require("./package.json").version)')

Expand All @@ -12,62 +10,37 @@ CURR_HEAD := $(firstword $(shell git show-ref --hash HEAD | cut --bytes=-6) ma
GITHUB_PROJ := https://github.com/nodeca/${NPM_PACKAGE}


help:
echo "make help - Print this help"
echo "make lint - Lint sources with JSHint"
echo "make test - Lint sources and run all tests"
echo "make doc - Build API docs"
echo "make dev-deps - Install developer dependencies"
echo "make gh-pages - Build and push API docs into gh-pages branch"
echo "make publish - Set new version tag and publish npm package"
echo "make todo - Find and list all TODOs"


lint:
if test ! `which jshint` ; then \
echo "You need 'jshint' installed in order to run lint." >&2 ; \
echo " $ make dev-deps" >&2 ; \
exit 128 ; \
fi
jshint . --show-non-errors
./node_modules/.bin/eslint --reset .


test: lint
mocha
./node_modules/.bin/mocha


coverage:
rm -rf coverage
./node_modules/.bin/istanbul cover node_modules/.bin/_mocha


browserify:
rm -rf ./dist
mkdir dist
# Browserify
( echo -n "/* ${NPM_PACKAGE} ${NPM_VERSION} ${GITHUB_PROJ} */" ; \
( printf "/*! ${NPM_PACKAGE} ${NPM_VERSION} ${GITHUB_PROJ} @license MIT */" ; \
browserify -r ./ -s Mimoza \
) > mimoza_browser.js
) > dist/mimoza.js
# Minify
uglifyjs mimoza_browser.js -c -m \
uglifyjs dist/mimoza.js -c -m \
--preamble "/* ${NPM_PACKAGE} ${NPM_VERSION} ${GITHUB_PROJ} */" \
-o mimoza_browser.min.js
-o dist/mimoza.min.js


doc:
@if test ! `which ndoc` ; then \
echo "You need 'ndoc' installed in order to generate docs." >&2 ; \
echo " $ make dev-deps" >&2 ; \
exit 128 ; \
fi
rm -rf ./doc
ndoc --link-format "{package.homepage}/blob/${CURR_HEAD}/{file}#L{line}"


dev-deps:
@if test ! `which npm` ; then \
echo "You need 'npm' installed." >&2 ; \
echo " See: http://npmjs.org/" >&2 ; \
exit 128 ; \
fi
which jshint > /dev/null || npm install jshint
which ndoc > /dev/null || npm install ndoc
npm install


gh-pages:
@if test -z ${REMOTE_REPO} ; then \
echo 'Remote repo URL not found' >&2 ; \
Expand Down
3 changes: 1 addition & 2 deletions bower.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mimoza",
"main": "mimoza-browser.js",
"main": "dist/mimoza.js",
"homepage": "https://github.com/nodeca/mimoza",
"authors": [
"Aleksey V Zapparov <ixti@member.fsf.org>",
Expand All @@ -17,7 +17,6 @@
"bower_components",
"test",
"lib",
"types",
"Makefile",
"index.js",
"package.json"
Expand Down
10 changes: 5 additions & 5 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,15 @@ var db = require('mime-db');
// normalize('js') // -> '.js'
function normalize(path) {
// edge case: '/txt' & '\txt' are not resolveable
if (/[\\/][^\\/.]+$/.test(path)) { return; }
if (/[\\/][^\\/.]+$/.test(path)) { return ''; }

return '.' + path.replace(/.*[\.\/\\]/, '').toLowerCase();
}

// Remove charset/types/spaces, convenent for external data check
// " tExt/htMl ; charset=UTF-8 ; type=foo " -> "text/html"
function clearMime(mimeType) {
if (!mimeType || (String(mimeType) !== mimeType)) { return undefined; }
if (!mimeType || (String(mimeType) !== mimeType)) { return null; }
return mimeType.split(';')[0].trim().toLowerCase();
}

Expand Down Expand Up @@ -138,9 +138,9 @@ Mimoza.prototype.define = function define(map) {
* ```
**/
Mimoza.prototype.register = function register(mimeType, extensions, overrideDefault) {
extensions = Array.isArray(extensions) ? extensions : [extensions];
extensions = Array.isArray(extensions) ? extensions : [ extensions ];

if (!mimeType || !extensions || 0 === extensions.length) {
if (!mimeType || !extensions || extensions.length === 0) {
return;
}

Expand All @@ -150,7 +150,7 @@ Mimoza.prototype.register = function register(mimeType, extensions, overrideDefa
}, this);

// use case insensitive mime types for extention resolve
if (overrideDefault || undefined === this.extensions[mimeType.toLowerCase()]) {
if (overrideDefault || typeof this.extensions[mimeType.toLowerCase()] === 'undefined') {
this.extensions[mimeType.toLowerCase()] = normalize(extensions[0]);
}
};
Expand Down
Loading

0 comments on commit acc6cbd

Please sign in to comment.