Skip to content

Commit

Permalink
feat: 更新 jslib-base
Browse files Browse the repository at this point in the history
  • Loading branch information
yanhaijing committed Sep 24, 2023
1 parent 458993b commit ae15aa2
Show file tree
Hide file tree
Showing 48 changed files with 17,351 additions and 10,270 deletions.
40 changes: 22 additions & 18 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,27 +1,31 @@
{
"presets": [
["@babel/preset-env",
"presets": [
[
"@babel/preset-env",
{
"targets": {
"browsers": "last 2 versions, > 1%, ie >= 6, Chrome >= 29, Firefox >= 55, Safari >= 9, Android >= 4, iOS >= 9, and_uc > 11",
"node": "4"
"browsers": "last 2 versions, > 1%, ie >= 11, Android >= 4.1, iOS >= 10.3",
"node": "14"
},
"modules": "commonjs",
"loose": false
}]
],
"plugins": [
["@babel/plugin-transform-runtime", {
"helpers": false,
"regenerator": false
}]
],
"env": {
"test": {
"plugins": [
"istanbul"
]
}
]
],
"plugins": [
// [
// "@babel/plugin-transform-runtime",
// {
// "corejs": 3,
// "versions": "^7.22.15",
// "helpers": true,
// "regenerator": false
// }
// ]
],
"env": {
"test": {
"plugins": ["istanbul"]
}
}
}
30 changes: 24 additions & 6 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,12 +1,30 @@
# 根目录的配置
root = true

[{*.js,*.css,*.html}]
indent_style = space
indent_size = 4
end_of_line = lf
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true

[{package.json,.*rc,*.yml}]
indent_style = space
indent_size = 4

[*.html]
indent_size = 2

[*.{css,less,scss}]
indent_size = 2

[*.{js,mjs,cjs,ts,cts,mts}]
indent_size = 2

[*.{json,yml,yaml}]
indent_size = 2

[*.{sh}]
indent_size = 2

[*.{md,makrdown}]
indent_size = 2

[*rc]
indent_size = 2
3 changes: 3 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dist
require.js
*.ts
34 changes: 34 additions & 0 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
module.exports = {
parser: '@babel/eslint-parser',
env: {
browser: true,
es2021: true,
node: true,
mocha: true,
},
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
// 即使没有 babelrc 配置文件,也使用 babel-eslint 来解析
requireConfigFile: false,
},
extends: [
'eslint:recommended',
'plugin:prettier/recommended',
'plugin:import/recommended',
],
rules: {
'no-unused-vars': [
2,
{
vars: 'local',
args: 'after-used',
ignoreRestSiblings: true,
varsIgnorePattern: '^_',
argsIgnorePattern: '^_',
},
],
eqeqeq: [2],
'import/no-unresolved': [1],
},
};
32 changes: 0 additions & 32 deletions .eslintrc.js

This file was deleted.

9 changes: 0 additions & 9 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
# These are supported funding model platforms

github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ['https://yanhaijing.com/mywallet/']
51 changes: 51 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs

name: CI

on:
push:
branches: ['master']
pull_request:
branches: ['master']

jobs:
commitlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: wagoid/commitlint-github-action@v4

lint:
needs: commitlint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Use Node.js 18.x
uses: actions/setup-node@v3
with:
node-version: '18.x'
cache: 'npm'
- run: npm ci
- run: npm run lint

test:
needs: lint
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x, 16.x, 18.x]
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- run: npm i
- run: npm test
# - run: npm run coveralls --if-present
- run: npm run build --if-present
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
coverage
node_modules
dist
.nyc_output
coverage
.eslintcache
.nyc_output
4 changes: 4 additions & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx --no -- commitlint --edit "$1"
4 changes: 4 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx lint-staged
3 changes: 3 additions & 0 deletions .lintstagedrc.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
'**/*.{js,mjs,cjs,ts,cts,mts}': ['prettier --write', 'eslint --cache'],
};
9 changes: 2 additions & 7 deletions .nycrc
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,8 @@
"statements": 75,
"functions": 0,
"branches": 75,
"require": [
"@babel/register"
],
"reporter": [
"lcov",
"text"
],
"reporter": ["lcov", "text"],
"require": ["@babel/register"],
"sourceMap": false,
"instrument": false
}
3 changes: 3 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dist
coverage
package-lock.json
3 changes: 3 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"singleQuote": true
}
8 changes: 0 additions & 8 deletions .travis.yml

This file was deleted.

3 changes: 3 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"recommendations": ["dbaeumer.vscode-eslint", "esbenp.prettier-vscode"]
}
4 changes: 4 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# 变更日志

## 0.5.0 / 2023-9-24

- 升级最新版 jslib-base
- 支持 Node.js ESM
- 升级 @jsmini/type

## 0.4.2 / 2019-10-10

- fix: 修复丢失d.ts的问题
Expand Down
29 changes: 19 additions & 10 deletions README-zh_CN.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
# [clone](https://github.com/jsmini/clone)

[![](https://img.shields.io/badge/Powered%20by-jslib%20base-brightgreen.svg)](https://github.com/yanhaijing/jslib-base)
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/jsmini/clone/blob/master/LICENSE)
[![Build Status](https://travis-ci.org/jsmini/clone.svg?branch=master)](https://travis-ci.org/jsmini/clone)
[![Coveralls](https://img.shields.io/coveralls/jsmini/clone.svg)](https://coveralls.io/github/jsmini/clone)
[![CI](https://github.com/jsmini/clone/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/jsmini/clone/actions/workflows/ci.yml)
[![npm](https://img.shields.io/badge/npm-0.4.2-orange.svg)](https://www.npmjs.com/package/@jsmini/clone)
[![NPM downloads](http://img.shields.io/npm/dm/@jsmini/clone.svg?style=flat-square)](http://www.npmtrends.com/@jsmini/clone)
[![Percentage of issues still open](http://isitmaintained.com/badge/open/jsmini/clone.svg)](http://isitmaintained.com/project/jsmini/clone "Percentage of issues still open")
[![Percentage of issues still open](http://isitmaintained.com/badge/open/jsmini/clone.svg)](http://isitmaintained.com/project/jsmini/clone 'Percentage of issues still open')

最专业的深拷贝库

[Engilsh](./README.md) | 简体中文

## 兼容性

单元测试保证支持如下环境:

| IE | CH | FF | SF | OP | IOS | 安卓 | Node |
| ---- | ---- | ---- | ---- | ---- | ---- | ---- | ----- |
| 6+ | 23+ | 4+ | 6+ | 10+ | 5+ | 2.3+ | 0.10+ |
| IE | CH | FF | SF | OP | IOS | 安卓 | Node |
| --- | --- | --- | --- | --- | --- | ---- | ----- |
| 6+ | 23+ | 4+ | 6+ | 10+ | 5+ | 2.3+ | 0.10+ |

## 目录介绍

Expand All @@ -32,6 +33,7 @@
```

## 如何使用

通过npm下载安装代码

```bash
Expand All @@ -53,9 +55,12 @@ import { name } from '@jsmini/clone';
如果你是requirejs环境

```js
requirejs(['node_modules/@jsmini/clone/dist/index.aio.js'], function (jsmini_clone) {
requirejs(
['node_modules/@jsmini/clone/dist/index.aio.js'],
function (jsmini_clone) {
var name = jsmini_clone.name;
})
},
);
```

如果你是浏览器环境
Expand All @@ -64,7 +69,7 @@ requirejs(['node_modules/@jsmini/clone/dist/index.aio.js'], function (jsmini_clo
<script src="node_modules/@jsmini/clone/dist/index.aio.js"></script>

<script>
var name = jsmini_clone.name;
var name = jsmini_clone.name;
</script>
```

Expand All @@ -73,7 +78,8 @@ requirejs(['node_modules/@jsmini/clone/dist/index.aio.js'], function (jsmini_clo
- [API](https://github.com/jsmini/clone/blob/master/doc/api.md)
- [深拷贝的终极探索](https://yanhaijing.com/javascript/2018/10/10/clone-deep/)

## 贡献指南 ![PRs welcome](<https://img.shields.io/badge/PRs-welcome-brightgreen.svg>)
## 贡献指南 ![PRs welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)

首次运行需要先安装依赖

```bash
Expand Down Expand Up @@ -116,12 +122,15 @@ $ npm run rename # 重命名命令
```

## 贡献者列表

[contributors](https://github.com/jsmini/clone/graphs/contributors)

## 更新日志

[CHANGELOG.md](https://github.com/jsmini/clone/blob/master/CHANGELOG.md)

## 计划列表

[TODO.md](https://github.com/jsmini/clone/blob/master/TODO.md)

## 谁在使用
Loading

0 comments on commit ae15aa2

Please sign in to comment.