diff --git a/.babelrc b/.babelrc
index 42f6ccf..d91c3b8 100644
--- a/.babelrc
+++ b/.babelrc
@@ -1,22 +1,71 @@
{
"presets": [
- ["env",
- {
- "targets": {
- "browsers": "last 2 versions, > 1%, ie >= 11",
- "node": "8.0"
- },
- "modules": false,
- "loose": false
- }],
- "stage-2"
+ [
+ "@babel/env",
+ {
+ "modules": false,
+ "targets": {
+ "browsers": [
+ ">0.25%"
+ ]
+ },
+ "useBuiltIns": "usage"
+ }
+ ],
+ "@babel/typescript"
],
+ "env": {
+ "development": {
+ "plugins": [
+ "@babel/transform-runtime"
+ ]
+ },
+ "production": {
+ "plugins": [
+ "@babel/transform-runtime",
+ "transform-remove-console"
+ ]
+ },
+ "test": {
+ "presets": [
+ [
+ "@babel/env",
+ {
+ "modules": "commonjs",
+ "targets": {
+ "node": "current"
+ }
+ }
+ ],
+ "@babel/typescript"
+ ]
+ }
+ },
"plugins": [
- ["transform-runtime", {
- "helpers": false,
- "polyfill": false,
- "regenerator": false,
- "moduleName": "babel-runtime"
- }]
+ "@babel/plugin-syntax-dynamic-import",
+ "@babel/plugin-syntax-import-meta",
+ "@babel/plugin-proposal-class-properties",
+ "@babel/plugin-proposal-json-strings",
+ [
+ "@babel/plugin-proposal-decorators",
+ {
+ "legacy": true
+ }
+ ],
+ "@babel/plugin-proposal-function-sent",
+ "@babel/plugin-proposal-export-namespace-from",
+ "@babel/plugin-proposal-numeric-separator",
+ "@babel/plugin-proposal-throw-expressions",
+ "@babel/plugin-proposal-export-default-from",
+ "@babel/plugin-proposal-logical-assignment-operators",
+ "@babel/plugin-proposal-optional-chaining",
+ [
+ "@babel/plugin-proposal-pipeline-operator",
+ {
+ "proposal": "minimal"
+ }
+ ],
+ "@babel/plugin-proposal-nullish-coalescing-operator",
+ "@babel/plugin-proposal-do-expressions"
]
-}
+}
\ No newline at end of file
diff --git a/.editorconfig b/.editorconfig
index 25b6d64..724c1e4 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -1,12 +1,7 @@
root = true
-
-[{*.js,*.css,*.html}]
-indent_style = space
-indent_size = 4
-end_of_line = lf
-charset = utf-8
+ [*]
insert_final_newline = true
-
-[{package.json,.*rc,*.yml}]
+ [*.{js,ts}]
indent_style = space
indent_size = 2
+charset = utf-8
\ No newline at end of file
diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 30d74d2..0000000
--- a/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-test
\ No newline at end of file
diff --git a/.eslintrc.js b/.eslintrc.js
deleted file mode 100644
index a7b704a..0000000
--- a/.eslintrc.js
+++ /dev/null
@@ -1,45 +0,0 @@
-module.exports = {
- root: true,
-
- parserOptions: {
- sourceType: 'module',
- },
-
- env: {
- browser: true,
- es6: true,
- node: true,
- },
-
- extends: ['airbnb-base'],
-
- rules: {
- 'no-shadow': [
- 'error',
- {
- allow: ['state'],
- },
- ],
- // 'import/extensions': 'off',
- 'import/extensions': [
- 'error',
- 'always',
- {
- js: 'never',
- },
- ],
- 'import/no-unresolved': 'off',
- 'no-param-reassign': 'off',
- 'consistent-return': 'off',
- 'global-require': 'off',
- 'import/no-dynamic-require': 'off',
- 'import/no-extraneous-dependencies': 'off',
-
- // 4 行空格缩进
- indent: ['error', 4, { SwitchCase: 1 }],
-
- 'max-len': ['error', { code: 150 }],
-
- 'operator-linebreak': 0,
- },
-};
diff --git a/.gitignore b/.gitignore
index 6acc570..a36d9d6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,11 @@
node_modules
+.DS_STORE
+lerna-debug.log
+yarn-error.log
dist
-.DS_Store
\ No newline at end of file
+includes
+tsconfig.tsbuildinfo
+.env
+coverage
+yarn.lock
+.rpt2_cache
diff --git a/.npmignore b/.npmignore
index 6c4479a..14beed0 100644
--- a/.npmignore
+++ b/.npmignore
@@ -1,11 +1,22 @@
node_modules
-config
-demo
-src
+*.map
+tests
test
-.babelrc
+__tests__
+__test__
+.github
+.env*
+jest.config.js
+.eslintrc.js
+.eslintignore
+.prettierignore
+prettier.config.js
+release.config.js
+commitlint.config.js
.editorconfig
-.travis.yml
-CHANGELOG.md
-package-lock.json
-TODO.md
+lerna.json
+tsconfig.tsbuildinfo
+tsconfig.json
+tsconfig.base.json
+.rpt2_cache
+.vscode
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..43c97e7
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+package-lock=false
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000..45d95fd
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,9 @@
+
+
+# Development folders and files #
+#################################
+.tmp/
+node_modules/
+package.json
+.travis.yml
+dist
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..7cf189b
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,14 @@
+{
+ "printWidth": 80,
+ "singleQuote": true,
+ "trailingComma": "all",
+ "arrowParens": "always",
+ "overrides": [
+ {
+ "files": "*.json",
+ "options": {
+ "parser": "json"
+ }
+ }
+ ]
+}
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index efb0983..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-language: node_js
-node_js:
- - "8"
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 420e6f2..0000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1 +0,0 @@
-# Change Log
diff --git a/README.md b/README.md
index 431a2b0..13ece18 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
# [qrcode-decoder](https://github.com/yugasun/qrcode-decoder)
[](https://github.com/yugasun/qrcode-decoder/blob/master/LICENSE)
-[](https://travis-ci.org/yugasun/qrcode-decoder)
[](http://www.npmtrends.com/qrcode-decoder)
[简体中文](./README.zh-CN.md) | English
@@ -38,7 +37,7 @@ import QrcodeDecoder from 'qrcode-decoder';
Using in browser:
```html
-
+
```
## Demo
@@ -57,7 +56,7 @@ Decodes an image from url or an `` element with a `src` attribute set.
```javascript
qr.decodeFromImage(img).then((res) => {
- console.log(res);
+ console.log(res);
});
```
@@ -69,7 +68,7 @@ Decodes directly from a video with a well specified `src` attribute
```javascript
qr.decodeFromVideo(videoElement).then((res) => {
- console.log(res);
+ console.log(res);
});
```
@@ -81,7 +80,7 @@ Decodes from a videoElement.
```javascript
qr.decodeFromCamera(videoElem).then((res) => {
- console.log(res);
+ console.log(res);
});
```
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 786de35..8e98239 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -1,7 +1,6 @@
# [qrcode-decoder](https://github.com/yugasun/qrcode-decoder)
[](https://github.com/yugasun/qrcode-decoder/blob/master/LICENSE)
-[](https://travis-ci.org/yugasun/qrcode-decoder)
[](http://www.npmtrends.com/qrcode-decoder)
简体中文 | [English](./README.md)
@@ -38,7 +37,7 @@ import QrcodeDecoder from 'qrcode-decoder';
如果你是浏览器环境
```html
-
+
```
## 示例
@@ -57,7 +56,7 @@ var qr = new QrcodeDecoder();
```javascript
qr.decodeFromImage(img).then((res) => {
- console.log(res);
+ console.log(res);
});
```
@@ -69,7 +68,7 @@ qr.decodeFromImage(img).then((res) => {
```javascript
qr.decodeFromVideo(videoElement).then((res) => {
- console.log(res);
+ console.log(res);
});
```
@@ -81,7 +80,7 @@ qr.decodeFromVideo(videoElement).then((res) => {
```javascript
qr.decodeFromCamera(videoElem).then((res) => {
- console.log(res);
+ console.log(res);
});
```
diff --git a/config/rollup.config.aio.js b/config/rollup.config.aio.js
deleted file mode 100644
index e8fb6ee..0000000
--- a/config/rollup.config.aio.js
+++ /dev/null
@@ -1,52 +0,0 @@
-// rollup.config.js
-
-import babel from 'rollup-plugin-babel';
-import nodeResolve from 'rollup-plugin-node-resolve';
-import commonjs from 'rollup-plugin-commonjs';
-import { uglify } from 'rollup-plugin-uglify';
-import common from './rollup';
-
-const prod = process.env.NODE_ENV;
-
-export default {
- input: 'src/index.js',
- output: {
- file: prod ? 'dist/index.aio.min.js' : 'dist/index.aio.js',
- format: 'umd',
- // 如果不同时使用 export 与 export default 可打开legacy
- // legacy: true,
- // name: common.name,
- name: 'QrcodeDecoder',
- banner: common.banner,
- },
- plugins: [
- nodeResolve({
- main: true,
- }),
- commonjs({
- include: 'node_modules/**',
- }),
- babel({
- runtimeHelpers: true,
- exclude: 'node_modules/**',
- }),
- prod &&
- uglify({
- compress: {
- drop_debugger: true,
- drop_console: true,
- },
- output: {
- comments: (node, comment) => {
- if (comment.type === 'comment2') {
- // multiline comment
- return /@preserve|@license|@cc_on/i.test(
- comment.value,
- );
- }
- return false;
- },
- },
- }),
- ],
-};
diff --git a/config/rollup.config.esm.js b/config/rollup.config.esm.js
deleted file mode 100644
index c2d211c..0000000
--- a/config/rollup.config.esm.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import config from './rollup.config';
-
-// ES output
-config.output.format = 'es';
-config.output.file = 'dist/index.esm.js';
-
-export default config;
diff --git a/config/rollup.config.js b/config/rollup.config.js
deleted file mode 100644
index 47b818a..0000000
--- a/config/rollup.config.js
+++ /dev/null
@@ -1,21 +0,0 @@
-// rollup.config.js
-
-import babel from 'rollup-plugin-babel';
-import common from './rollup';
-
-export default {
- input: 'src/index.js',
- output: {
- file: 'dist/index.js',
- format: 'cjs',
- // 如果不同时使用 export 与 export default 可打开legacy
- // legacy: true,
- banner: common.banner,
- },
- plugins: [
- babel({
- runtimeHelpers: true,
- exclude: 'node_modules/**',
- }),
- ],
-};
diff --git a/config/rollup.js b/config/rollup.js
deleted file mode 100644
index 116299b..0000000
--- a/config/rollup.js
+++ /dev/null
@@ -1,18 +0,0 @@
-const pkg = require('../package.json');
-
-// 兼容 qrcode-decoder 和 @yugasun/qrcode-decoder
-const name = pkg.name.split('/').pop();
-const { version } = pkg;
-
-const banner = `/* @preserve
- * qrcode-decoder ${version} (https://github.com/yugasun/qrcode-decoder)
- * API https://github.com/yugasun/qrcode-decoder/blob/master/doc/api.md
- * Copyright 2017-${new Date().getFullYear()} yugasun. All Rights Reserved
- * Licensed under MIT (https://github.com/yugasun/qrcode-decoder/blob/master/LICENSE)
- */
-`;
-
-export default {
- name,
- banner,
-};
diff --git a/demo/camera.html b/demo/camera.html
index 62b4ce3..dfe74c9 100644
--- a/demo/camera.html
+++ b/demo/camera.html
@@ -1,45 +1,45 @@
-