Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions .eslintignore

This file was deleted.

158 changes: 18 additions & 140 deletions .eslintrc.yml
Original file line number Diff line number Diff line change
@@ -1,143 +1,21 @@
env:
node: true
browser: false
es6: false
extends: standard

rules:
accessor-pairs: 2
array-bracket-spacing: [ 2, "always", { "singleValue": true, "objectsInArrays": true, "arraysInArrays": true } ]
block-scoped-var: 2
block-spacing: 2
brace-style: [ 2, '1tbs', { allowSingleLine: true } ]
# Postponed
#callback-return: 2
comma-dangle: 2
comma-spacing: 2
comma-style: 2
computed-property-spacing: [ 2, never ]
consistent-this: [ 2, self ]
consistent-return: 2
# ? change to multi
curly: [ 2, 'multi-line' ]
dot-notation: 2
eol-last: 2
eqeqeq: 2
func-style: [ 2, declaration ]
# Postponed
#global-require: 2
guard-for-in: 2
handle-callback-err: 2
overrides:
- files: ["*.mjs"]
rules:
no-restricted-globals: [2, require, __dirname]
- files: ["test/**"]
env:
mocha: true
- files: ["lib/**", "index.mjs"]
parserOptions:
ecmaVersion: 2015

indent: [ 2, 2, { VariableDeclarator: { var: 2, let: 2, const: 3 }, SwitchCase: 1 } ]
ignorePatterns:
- demo/
- dist/
- benchmark/extra/

# key-spacing: [ 2, { "align": "value" } ]
keyword-spacing: 2
linebreak-style: 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
# Postponed
#newline-after-var: 2
no-alert: 2
no-array-constructor: 2
# inconsisent rule with markdown-it, since bitwise operations are intentionally used.
# no-bitwise: 2
no-caller: 2
#no-case-declarations: 2
no-catch-shadow: 2
no-cond-assign: 2
no-console: 1
no-constant-condition: 2
#no-control-regex: 2
no-debugger: 2
no-delete-var: 2
no-div-regex: 2
no-dupe-args: 2
no-dupe-keys: 2
no-duplicate-case: 2
no-else-return: 2
# Tend to drop
# no-empty: 1
no-empty-character-class: 2
no-empty-pattern: 2
no-eq-null: 2
no-eval: 2
no-ex-assign: 2
no-extend-native: 2
no-extra-bind: 2
no-extra-boolean-cast: 2
no-extra-semi: 2
no-fallthrough: 2
no-floating-decimal: 2
no-func-assign: 2
# Postponed
#no-implicit-coercion: [2, { "boolean": true, "number": true, "string": true } ]
no-implied-eval: 2
no-inner-declarations: 2
no-invalid-regexp: 2
no-irregular-whitespace: 2
no-iterator: 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
# Postponed
#no-native-reassign: 2
no-negated-in-lhs: 2
# Postponed
#no-nested-ternary: 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-proto: 2
no-redeclare: 2
# Postponed
#no-regex-spaces: 2
no-return-assign: 2
no-self-compare: 2
no-sequences: 2
no-shadow: 2
no-shadow-restricted-names: 2
no-sparse-arrays: 2
no-trailing-spaces: 2
no-undef: 2
no-undef-init: 2
no-undefined: 2
no-unexpected-multiline: 2
no-unreachable: 2
no-unused-expressions: 2
no-unused-vars: 2
no-use-before-define: 2
no-void: 2
no-with: 2
object-curly-spacing: [ 2, always, { "objectsInObjects": true, "arraysInObjects": true } ]
operator-assignment: 1
# Postponed
#operator-linebreak: [ 2, after ]
semi: 2
semi-spacing: 2
space-before-function-paren: [ 2, { "anonymous": "always", "named": "never" } ]
space-in-parens: [ 2, never ]
space-infix-ops: 2
space-unary-ops: 2
# Postponed
#spaced-comment: [ 1, always, { exceptions: [ '/', '=' ] } ]
strict: [ 2, global ]
quotes: [ 2, single, avoid-escape ]
quote-props: [ 1, 'as-needed', { "keywords": true } ]
radix: 2
use-isnan: 2
valid-typeof: 2
yoda: [ 2, never, { "exceptRange": true } ]
rules:
camelcase: 0
no-multi-spaces: 0
52 changes: 38 additions & 14 deletions .github/workflows/node.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,46 @@ name: Node.js

on:
push:
branches: [ master, '**', '!wip-**' ]
pull_request:
branches: [ master ]
release:
types: [published]

jobs:
test-ci-job:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ '12', '14' ]
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- run: make report-coveralls
- uses: coverallsapp/github-action@master
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js 18
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install dependencies
run: npm install --save-dev
- name: Run audit task
run: make audit
- name: Run lint task
run: make lint
- name: Run test task
run: make test
- name: Run minify task
run: make minify
- name: Upload minified code as artifact
uses: actions/upload-artifact@v4
with:
name: dist
path: dist # Or your Rollup output directory
release:
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'release'
steps:
- name: Download Build Artifacts
uses: actions/download-artifact@v4
with:
name: dist
path: dist
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
files: dist/* # Upload files from your build output
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
.nyc_output/
node_modules/
bower_components/
coverage/
node_modules/

docs/
biome.json
42 changes: 25 additions & 17 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,26 +1,34 @@
.PHONY: lint test coverage report-coveralls browserify

MODULE_PATH := ./node_modules/.bin
export PATH := ${MODULE_PATH}:$(PATH)
ENV ?= PATH=$(MODULE_PATH):$(PATH)

.PHONY: all
all: test lint

${MODULE_PATH}: package.json
npm install --save-dev
touch $@ # update timestamp
.PHONY: audit
audit: $(MODULE_PATH)
npm audit

.PHONY: lint
lint: $(MODULE_PATH)
$(ENV) eslint . --ignore-pattern docs

lint: ${MODULE_PATH}
eslint . --ignore-pattern support
.PHONY: test
test: $(MODULE_PATH)
$(ENV) c8 --exclude=dist --exclude=test --reporter=text --reporter=html --reporter=lcov mocha --bail

test: ${MODULE_PATH} lint
nyc mocha
.PHONY: fmt
fmt: $(MODULE_PATH)
$(ENV) eslint . --ignore-pattern docs --fix

coverage: ${MODULE_PATH} lint
nyc report --reporter html
.PHONY: doc
doc: $(MODULE_PATH)
$(ENV) jsdoc --configure jsdoc.json

report-coveralls: ${MODULE_PATH} lint
# For coverage test. You can use `make coverage` on local.
nyc --reporter=lcov mocha
.PHONY: minify
minify: $(MODULE_PATH)
$(ENV) rollup --config

browserify: ${MODULE_PATH} lint test
rollup -c support/rollup.config.js

$(MODULE_PATH): package.json
npm install --save-dev
touch $@ # update timestamp
36 changes: 0 additions & 36 deletions bower.json

This file was deleted.

Loading