@less-is-more/less-js 1.4.7 → 1.4.8

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@less-is-more/less-js",
3
- "version": "1.4.7",
3
+ "version": "1.4.8",
4
4
  "description": "Fast develop kit for nodejs",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/db.js CHANGED
@@ -95,15 +95,15 @@ module.exports = class Db {
95
95
  compareColumn = []
96
96
  ) {
97
97
  for (let nNewData of newData) {
98
- let nOldIndex = oldData.findIndex(
98
+ const nOldIndex = oldData.findIndex(
99
99
  (nOld) => nOld[keyColumn] == nNewData[keyColumn]
100
100
  );
101
- if (nOldIndex === -1) {
101
+ if (nOldIndex == -1) {
102
102
  await this.add(model, nNewData);
103
103
  } else {
104
+ const nOldData = oldData[nOldIndex];
104
105
  let needUpdate = false;
105
106
  if (compareColumn.length > 0) {
106
- const nOldData = oldData[nOldIndex];
107
107
  for (let nColumn of compareColumn) {
108
108
  if (nOldData[nColumn] !== nNewData[nColumn]) {
109
109
  console.log("Diff", nOldData[nColumn], nNewData[nColumn]);
@@ -116,15 +116,21 @@ module.exports = class Db {
116
116
  }
117
117
  if (needUpdate) {
118
118
  let where = {};
119
- where[keyColumn] = nNewData[keyColumn];
119
+ // 有主键的话,使用主键
120
+ if (nOldData.id) {
121
+ where.id = nOldData.id;
122
+ } else {
123
+ where[keyColumn] = nNewData[keyColumn];
124
+ }
120
125
  // 只更新指定的字段
121
126
  let setValues = {};
122
127
  for (let nColumn of compareColumn) {
123
128
  setValues[nColumn] = nNewData[nColumn];
124
129
  }
125
130
  await this.update(model, setValues, where);
126
- oldData.splice(nOldIndex, 1);
127
131
  }
132
+ // 剔除已经处理的
133
+ oldData.splice(nOldIndex, 1);
128
134
  }
129
135
  }
130
136
  // 删除旧剩余的
package/test/data/test.js CHANGED
@@ -22,6 +22,15 @@ module.exports = sequelize => {
22
22
  comment: null,
23
23
  field: "name"
24
24
  },
25
+ value: {
26
+ type: DataTypes.STRING(50),
27
+ allowNull: true,
28
+ defaultValue: null,
29
+ primaryKey: false,
30
+ autoIncrement: false,
31
+ comment: null,
32
+ field: "value"
33
+ },
25
34
  };
26
35
  const options = {
27
36
  tableName: "test",
package/test/test-db.js CHANGED
@@ -7,7 +7,7 @@ const Test = require("./data/test.js");
7
7
  describe("db.js", () => {
8
8
  before(() => {
9
9
  console.log("init");
10
- Db.init("127.0.0.1", "card-test", "dev", "^wXj&CJQfiPP");
10
+ Db.init("127.0.0.1", "sheng-test", "dev", "^wXj&CJQfiPP");
11
11
  });
12
12
  describe("getInstance()", () => {
13
13
  it("connect", async () => {
@@ -167,12 +167,15 @@ describe("db.js", () => {
167
167
  it("success", async () => {
168
168
  let newData = [
169
169
  {
170
- name: 23,
170
+ name: "23",
171
+ value: "3",
171
172
  },
172
173
  ];
173
174
  let oldData = await Db.find(Test);
174
175
  try {
175
- await Db.fullUpdate(Test, newData, oldData.rows, "name", true);
176
+ await Db.fullUpdate(Test, newData, oldData.rows, "name", true, [
177
+ "value",
178
+ ]);
176
179
  } catch (e) {
177
180
  console.error(e);
178
181
  assert(false);