@luzhaoqi/test 0.0.54 → 0.0.55

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,34 +1,74 @@
1
- # npm-test
1
+ # @luzhaoqi/test
2
2
 
3
- 一个简单的数学库,提供 sum 函数计算数字之和。
3
+ Vue 数学运算插件,提供加法和减法功能。
4
4
 
5
5
  ## 安装
6
6
 
7
7
  ```bash
8
- npm install npm-test
8
+ npm install @luzhaoqi/test
9
9
  ```
10
10
 
11
- ## 使用
11
+ ## 普通使用
12
12
 
13
13
  ```javascript
14
- const sum = require('npm-test');
15
-
16
- // 基本用法
17
- console.log(sum(1, 2, 3)); // 6
18
- console.log(sum(10, -5, 3.5)); // 8.5
19
- console.log(sum()); // 0
20
-
21
- // 错误处理
22
- try {
23
- sum('a', 2);
24
- } catch (e) {
25
- console.error(e.message); // "所有参数必须是有效数字"
26
- }
14
+ const { add, subtract } = require('@luzhaoqi/test');
15
+
16
+ console.log(add(1, 2, 3)); // 6
17
+ console.log(subtract(5, 3)); // 2
27
18
  ```
28
19
 
29
- ## API
20
+ ## Vue 插件使用
21
+
22
+ ### 全局安装
23
+
24
+ ```javascript
25
+ import Vue from 'vue';
26
+ import VueMathOps from '@luzhaoqi/test/src/vue-plugin';
27
+
28
+ Vue.use(VueMathOps);
29
+ ```
30
30
 
31
- ### `sum(...numbers)`
31
+ ### 使用方式
32
+
33
+ 1. 全局方法:
34
+ ```javascript
35
+ Vue.add(1, 2, 3); // 6
36
+ Vue.subtract(5, 3); // 2
37
+ ```
38
+
39
+ 2. 实例方法:
40
+ ```javascript
41
+ this.$add(1, 2, 3); // 6
42
+ this.$subtract(5, 3); // 2
43
+ ```
44
+
45
+ 3. 过滤器:
46
+ ```html
47
+ <div>{{ [1, 2, 3] | add }}</div>
48
+ <!-- 渲染为: 6 -->
49
+
50
+ <div>{{ [5, 3] | subtract }}</div>
51
+ <!-- 渲染为: 2 -->
52
+ ```
53
+
54
+ 4. 指令:
55
+ ```html
56
+ <div v-add="[1, 2, 3]"></div>
57
+ <!-- 渲染为: 6 -->
58
+
59
+ <div v-subtract="[5, 3]"></div>
60
+ <!-- 渲染为: 2 -->
61
+ ```
62
+
63
+ ## API 文档
64
+
65
+ ### `add(...numbers)`
32
66
  - `...numbers`: 要相加的数字(一个或多个)
33
67
  - 返回: 所有数字的和
34
68
  - 抛出: 如果任何参数不是数字,则抛出 TypeError
69
+
70
+ ### `subtract(a, b)`
71
+ - `a`: 被减数
72
+ - `b`: 减数
73
+ - 返回: a - b 的结果
74
+ - 抛出: 如果参数不是数字,则抛出 TypeError
package/package.json CHANGED
@@ -1,14 +1,26 @@
1
1
  {
2
2
  "name": "@luzhaoqi/test",
3
- "version": "0.0.54",
3
+ "version": "0.0.55",
4
4
  "private": false,
5
5
  "description": "A simple math library with sum function",
6
- "main": "index.js",
6
+ "main": "src/index.js",
7
+ "module": "src/vue-plugin.js",
7
8
  "scripts": {
8
- "test": "node test.js",
9
+ "test": "jest",
9
10
  "pub": "npm publish --access public"
10
11
  },
11
- "keywords": ["math", "sum", "addition", "calculator"],
12
+ "keywords": [
13
+ "math",
14
+ "sum",
15
+ "addition",
16
+ "calculator"
17
+ ],
12
18
  "author": "lzq",
13
- "license": "MIT"
19
+ "license": "MIT",
20
+ "peerDependencies": {
21
+ "vue": "^2.6.0 || ^3.0.0"
22
+ },
23
+ "devDependencies": {
24
+ "jest": "^27.0.6"
25
+ }
14
26
  }
package/src/index.js ADDED
@@ -0,0 +1,38 @@
1
+ /**
2
+ * 加法函数
3
+ * @param {...number} numbers - 要相加的数字
4
+ * @returns {number} 和
5
+ * @throws {TypeError} 如果参数不是数字
6
+ */
7
+ function add(...numbers) {
8
+ validateNumbers(numbers);
9
+ return numbers.reduce((total, num) => total + num, 0);
10
+ }
11
+
12
+ /**
13
+ * 减法函数
14
+ * @param {number} a - 被减数
15
+ * @param {number} b - 减数
16
+ * @returns {number} 差
17
+ * @throws {TypeError} 如果参数不是数字
18
+ */
19
+ function subtract(a, b) {
20
+ validateNumbers([a, b]);
21
+ return a - b;
22
+ }
23
+
24
+ /**
25
+ * 验证数字
26
+ * @param {Array} numbers - 要验证的数字数组
27
+ * @throws {TypeError} 如果任何参数不是数字
28
+ */
29
+ function validateNumbers(numbers) {
30
+ if (!numbers.every(num => typeof num === 'number' && !isNaN(num))) {
31
+ throw new TypeError('所有参数必须是有效数字');
32
+ }
33
+ }
34
+
35
+ module.exports = {
36
+ add,
37
+ subtract
38
+ };
@@ -0,0 +1,39 @@
1
+ const { add, subtract } = require('./index');
2
+
3
+ const VueMathOpsPlugin = {
4
+ install(Vue, options) {
5
+ // 添加全局方法
6
+ Vue.add = add;
7
+ Vue.subtract = subtract;
8
+
9
+ // 添加实例方法
10
+ Vue.prototype.$add = add;
11
+ Vue.prototype.$subtract = subtract;
12
+
13
+ // 添加全局过滤器
14
+ Vue.filter('add', function(numbers) {
15
+ return add(...numbers);
16
+ });
17
+
18
+ Vue.filter('subtract', function(numbers) {
19
+ return subtract(...numbers);
20
+ });
21
+
22
+ // 添加指令
23
+ Vue.directive('add', {
24
+ bind(el, binding) {
25
+ el.textContent = add(...binding.value);
26
+ }
27
+ });
28
+
29
+ Vue.directive('subtract', {
30
+ bind(el, binding) {
31
+ if (binding.value.length === 2) {
32
+ el.textContent = subtract(...binding.value);
33
+ }
34
+ }
35
+ });
36
+ }
37
+ };
38
+
39
+ module.exports = VueMathOpsPlugin;
@@ -0,0 +1,17 @@
1
+ const { add, subtract } = require('../src/index');
2
+
3
+ test('add function', () => {
4
+ expect(add(1, 2, 3)).toBe(6);
5
+ expect(add(10, -5, 3.5)).toBe(8.5);
6
+ expect(add()).toBe(0);
7
+ });
8
+
9
+ test('subtract function', () => {
10
+ expect(subtract(5, 3)).toBe(2);
11
+ expect(subtract(10, -5)).toBe(15);
12
+ });
13
+
14
+ test('error handling', () => {
15
+ expect(() => add('a', 2)).toThrow(TypeError);
16
+ expect(() => subtract('a', 2)).toThrow(TypeError);
17
+ });
package/index.js DELETED
@@ -1,23 +0,0 @@
1
- /**
2
- * 计算数字之和
3
- * @param {...number} numbers - 要相加的数字
4
- * @returns {number} 所有数字的和
5
- * @throws {TypeError} 如果参数不是数字
6
- * @example
7
- * sum(1, 2, 3) // 返回 6
8
- * sum(10, -5, 3.5) // 返回 8.5
9
- */
10
- function sum(...numbers) {
11
- if (numbers.length === 0) {
12
- return 0;
13
- }
14
-
15
- // 验证所有参数都是数字
16
- if (!numbers.every(num => typeof num === 'number' && !isNaN(num))) {
17
- throw new TypeError('所有参数必须是有效数字');
18
- }
19
-
20
- return numbers.reduce((total, num) => total + num, 0);
21
- }
22
-
23
- module.exports = sum;
package/test.js DELETED
@@ -1,13 +0,0 @@
1
- const sum = require('./index');
2
-
3
- // 基本测试
4
- console.log('sum(1, 2, 3) =', sum(1, 2, 3)); // 应该输出 6
5
- console.log('sum(10, -5, 3.5) =', sum(10, -5, 3.5)); // 应该输出 8.5
6
- console.log('sum() =', sum()); // 应该输出 0
7
-
8
- // 错误处理测试
9
- try {
10
- console.log('sum("a", 2) =', sum('a', 2));
11
- } catch (e) {
12
- console.error('错误:', e.message); // 应该输出 "所有参数必须是有效数字"
13
- }