@jd-data-limited/easy-fm 3.0.2 → 3.0.4
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 +1 -1
- package/src/index.js +30 -19
- package/src/index.ts +29 -19
package/package.json
CHANGED
package/src/index.js
CHANGED
|
@@ -1289,6 +1289,7 @@ export class Layout {
|
|
|
1289
1289
|
return this.records.find();
|
|
1290
1290
|
}
|
|
1291
1291
|
runScript(script) {
|
|
1292
|
+
let trace = new Error();
|
|
1292
1293
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
1293
1294
|
let url = `${this.endpoint}/script/${encodeURIComponent(script.name)}`;
|
|
1294
1295
|
if (script.parameter)
|
|
@@ -1303,7 +1304,7 @@ export class Layout {
|
|
|
1303
1304
|
}
|
|
1304
1305
|
else {
|
|
1305
1306
|
// console.log(res)
|
|
1306
|
-
reject(new FMError(res.messages[0].code, res.status, res));
|
|
1307
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace));
|
|
1307
1308
|
}
|
|
1308
1309
|
})
|
|
1309
1310
|
.catch(e => {
|
|
@@ -1429,6 +1430,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1429
1430
|
});
|
|
1430
1431
|
}
|
|
1431
1432
|
get() {
|
|
1433
|
+
let trace = new Error();
|
|
1432
1434
|
if (this.recordId === -1) {
|
|
1433
1435
|
throw "Cannot get this RecordBase until a commit() is done.";
|
|
1434
1436
|
}
|
|
@@ -1450,7 +1452,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1450
1452
|
resolve(this);
|
|
1451
1453
|
}
|
|
1452
1454
|
else {
|
|
1453
|
-
reject(new FMError(res.messages[0].code, res.status, res));
|
|
1455
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace));
|
|
1454
1456
|
}
|
|
1455
1457
|
})
|
|
1456
1458
|
.catch(e => {
|
|
@@ -1458,22 +1460,24 @@ export class RecordBase extends EventEmitter {
|
|
|
1458
1460
|
});
|
|
1459
1461
|
}));
|
|
1460
1462
|
}
|
|
1461
|
-
commit(extraBody) {
|
|
1463
|
+
commit(extraBody = {}) {
|
|
1464
|
+
let trace = new Error();
|
|
1462
1465
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
1466
|
+
var _a, _b, _c;
|
|
1463
1467
|
let data = this.toObject();
|
|
1464
1468
|
delete data.recordId;
|
|
1465
1469
|
delete data.modId;
|
|
1466
|
-
if (extraBody.scripts.after) {
|
|
1470
|
+
if ((_a = extraBody.scripts) === null || _a === void 0 ? void 0 : _a.after) {
|
|
1467
1471
|
data["script"] = extraBody.scripts.after.name;
|
|
1468
1472
|
if (extraBody.scripts.after.parameter)
|
|
1469
1473
|
data["param"] = extraBody.scripts.after.parameter;
|
|
1470
1474
|
}
|
|
1471
|
-
if (extraBody.scripts.prerequest) {
|
|
1475
|
+
if ((_b = extraBody.scripts) === null || _b === void 0 ? void 0 : _b.prerequest) {
|
|
1472
1476
|
data["script"] = extraBody.scripts.after.name;
|
|
1473
1477
|
if (extraBody.scripts.prerequest.parameter)
|
|
1474
1478
|
data["param"] = extraBody.scripts.prerequest.parameter;
|
|
1475
1479
|
}
|
|
1476
|
-
if (extraBody.scripts.presort) {
|
|
1480
|
+
if ((_c = extraBody.scripts) === null || _c === void 0 ? void 0 : _c.presort) {
|
|
1477
1481
|
data["script"] = extraBody.scripts.presort.name;
|
|
1478
1482
|
if (extraBody.scripts.presort.parameter)
|
|
1479
1483
|
data["param"] = extraBody.scripts.presort.parameter;
|
|
@@ -1487,7 +1491,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1487
1491
|
})
|
|
1488
1492
|
.then(res => {
|
|
1489
1493
|
if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
|
|
1490
|
-
reject(new FMError(res.response.scriptError, res.status, res));
|
|
1494
|
+
reject(new FMError(res.response.scriptError, res.status, res, trace));
|
|
1491
1495
|
}
|
|
1492
1496
|
else if (res.messages[0].code === "0") {
|
|
1493
1497
|
this.recordId = parseInt(res.response.recordId);
|
|
@@ -1495,7 +1499,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1495
1499
|
resolve(this);
|
|
1496
1500
|
}
|
|
1497
1501
|
else {
|
|
1498
|
-
reject(new FMError(res.messages[0].code, res.status, res));
|
|
1502
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace));
|
|
1499
1503
|
}
|
|
1500
1504
|
})
|
|
1501
1505
|
.catch(e => {
|
|
@@ -1511,7 +1515,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1511
1515
|
})
|
|
1512
1516
|
.then(res => {
|
|
1513
1517
|
if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
|
|
1514
|
-
reject(new FMError(res.response.scriptError, res.status, res));
|
|
1518
|
+
reject(new FMError(res.response.scriptError, res.status, res, trace));
|
|
1515
1519
|
}
|
|
1516
1520
|
else if (res.messages[0].code === "0") {
|
|
1517
1521
|
this.modId = res.response.modId;
|
|
@@ -1519,7 +1523,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1519
1523
|
resolve(this);
|
|
1520
1524
|
}
|
|
1521
1525
|
else {
|
|
1522
|
-
reject(new FMError(res.messages[0].code, res.status, res));
|
|
1526
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace));
|
|
1523
1527
|
}
|
|
1524
1528
|
})
|
|
1525
1529
|
.catch(e => {
|
|
@@ -1539,6 +1543,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1539
1543
|
return this.portals.find(p => p.name === portal);
|
|
1540
1544
|
}
|
|
1541
1545
|
delete() {
|
|
1546
|
+
let trace = new Error();
|
|
1542
1547
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
1543
1548
|
this.layout.database.apiRequest(this.endpoint, {
|
|
1544
1549
|
port: 443,
|
|
@@ -1546,14 +1551,14 @@ export class RecordBase extends EventEmitter {
|
|
|
1546
1551
|
})
|
|
1547
1552
|
.then(res => {
|
|
1548
1553
|
if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
|
|
1549
|
-
reject(new FMError(res.response.scriptError, res.status, res));
|
|
1554
|
+
reject(new FMError(res.response.scriptError, res.status, res, trace));
|
|
1550
1555
|
}
|
|
1551
1556
|
else if (res.messages[0].code === "0") {
|
|
1552
1557
|
this.emit("deleted");
|
|
1553
1558
|
resolve();
|
|
1554
1559
|
}
|
|
1555
1560
|
else {
|
|
1556
|
-
reject(new FMError(res.messages[0].code, res.status, res));
|
|
1561
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace));
|
|
1557
1562
|
}
|
|
1558
1563
|
})
|
|
1559
1564
|
.catch(e => {
|
|
@@ -1562,6 +1567,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1562
1567
|
}));
|
|
1563
1568
|
}
|
|
1564
1569
|
duplicate() {
|
|
1570
|
+
let trace = new Error();
|
|
1565
1571
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
1566
1572
|
this.layout.database.apiRequest(this.endpoint, {
|
|
1567
1573
|
port: 443,
|
|
@@ -1569,7 +1575,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1569
1575
|
})
|
|
1570
1576
|
.then(res => {
|
|
1571
1577
|
if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
|
|
1572
|
-
reject(new FMError(res.response.scriptError, res.status, res));
|
|
1578
|
+
reject(new FMError(res.response.scriptError, res.status, res, trace));
|
|
1573
1579
|
}
|
|
1574
1580
|
else if (res.messages[0].code === "0") {
|
|
1575
1581
|
let data = this.toObject((a) => true, (a) => true, (a) => false, (a) => false);
|
|
@@ -1578,7 +1584,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1578
1584
|
resolve(_res);
|
|
1579
1585
|
}
|
|
1580
1586
|
else {
|
|
1581
|
-
reject(new FMError(res.messages[0].code, res.status, res));
|
|
1587
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace));
|
|
1582
1588
|
}
|
|
1583
1589
|
})
|
|
1584
1590
|
.catch(e => {
|
|
@@ -1717,6 +1723,7 @@ export class Field {
|
|
|
1717
1723
|
return this._value;
|
|
1718
1724
|
}
|
|
1719
1725
|
upload(buffer, filename, mime) {
|
|
1726
|
+
let trace = new Error();
|
|
1720
1727
|
if (this.metadata.result !== "container")
|
|
1721
1728
|
throw "Cannot upload a file to the field; " + this.id + " (not a container field)";
|
|
1722
1729
|
return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1733,7 +1740,7 @@ export class Field {
|
|
|
1733
1740
|
resolve();
|
|
1734
1741
|
}
|
|
1735
1742
|
else {
|
|
1736
|
-
reject(new FMError(_res.messages[0].code, _res.status, data));
|
|
1743
|
+
reject(new FMError(_res.messages[0].code, _res.status, data, trace));
|
|
1737
1744
|
}
|
|
1738
1745
|
})
|
|
1739
1746
|
.catch(e => {
|
|
@@ -1795,7 +1802,7 @@ export class PortalRecord extends RecordBase {
|
|
|
1795
1802
|
super._onSave();
|
|
1796
1803
|
this.portal.record._onSave();
|
|
1797
1804
|
}
|
|
1798
|
-
commit(extraBody) {
|
|
1805
|
+
commit(extraBody = {}) {
|
|
1799
1806
|
return this.portal.record.commit(extraBody);
|
|
1800
1807
|
}
|
|
1801
1808
|
toObject(fieldFilter) {
|
|
@@ -1903,6 +1910,7 @@ export class RecordGetRange extends RecordGetOperation {
|
|
|
1903
1910
|
return this.fetch(extraBody);
|
|
1904
1911
|
}
|
|
1905
1912
|
fetch(extraBody = {}) {
|
|
1913
|
+
let trace = new Error();
|
|
1906
1914
|
return new Promise((resolve, reject) => {
|
|
1907
1915
|
// console.log(this.#toObject())
|
|
1908
1916
|
this.layout.getLayoutMeta().then(() => {
|
|
@@ -1922,7 +1930,7 @@ export class RecordGetRange extends RecordGetOperation {
|
|
|
1922
1930
|
resolve(data);
|
|
1923
1931
|
}
|
|
1924
1932
|
else {
|
|
1925
|
-
reject(new FMError(res.messages[0].code, res.status, res));
|
|
1933
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace));
|
|
1926
1934
|
}
|
|
1927
1935
|
}))
|
|
1928
1936
|
.catch(e => {
|
|
@@ -1972,6 +1980,7 @@ export class Find extends RecordGetOperation {
|
|
|
1972
1980
|
return this.fetch();
|
|
1973
1981
|
}
|
|
1974
1982
|
fetch() {
|
|
1983
|
+
let trace = new Error();
|
|
1975
1984
|
return new Promise((resolve, reject) => {
|
|
1976
1985
|
// console.log(this.#toObject())
|
|
1977
1986
|
this.layout.getLayoutMeta()
|
|
@@ -1994,7 +2003,7 @@ export class Find extends RecordGetOperation {
|
|
|
1994
2003
|
resolve(data);
|
|
1995
2004
|
}
|
|
1996
2005
|
else {
|
|
1997
|
-
reject(new FMError(res.messages[0].code, res.status, res));
|
|
2006
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace));
|
|
1998
2007
|
}
|
|
1999
2008
|
}))
|
|
2000
2009
|
.catch(e => {
|
|
@@ -2004,7 +2013,7 @@ export class Find extends RecordGetOperation {
|
|
|
2004
2013
|
}
|
|
2005
2014
|
}
|
|
2006
2015
|
export class FMError extends Error {
|
|
2007
|
-
constructor(code, httpStatus, res) {
|
|
2016
|
+
constructor(code, httpStatus, res, trace) {
|
|
2008
2017
|
if (typeof code === "string")
|
|
2009
2018
|
code = parseInt(code);
|
|
2010
2019
|
super(errs.find(err => err.e === code).d || "Unknown error");
|
|
@@ -2013,6 +2022,8 @@ export class FMError extends Error {
|
|
|
2013
2022
|
this.messages = res.messages;
|
|
2014
2023
|
this.code = typeof code === "string" ? parseInt(code) : code;
|
|
2015
2024
|
Error.captureStackTrace(this, FMError);
|
|
2025
|
+
if (trace)
|
|
2026
|
+
this.stack = trace.stack;
|
|
2016
2027
|
}
|
|
2017
2028
|
}
|
|
2018
2029
|
function generateAuthorizationHeaders(credentials) {
|
package/src/index.ts
CHANGED
|
@@ -1442,6 +1442,7 @@ export class Layout {
|
|
|
1442
1442
|
}
|
|
1443
1443
|
|
|
1444
1444
|
runScript(script): Promise<string | FMError | Error> {
|
|
1445
|
+
let trace = new Error()
|
|
1445
1446
|
return new Promise(async (resolve, reject) => {
|
|
1446
1447
|
let url = `${this.endpoint}/script/${encodeURIComponent(script.name)}`
|
|
1447
1448
|
if (script.parameter) url += "?script.param=" + encodeURIComponent(script.parameter)
|
|
@@ -1455,7 +1456,7 @@ export class Layout {
|
|
|
1455
1456
|
}
|
|
1456
1457
|
else {
|
|
1457
1458
|
// console.log(res)
|
|
1458
|
-
reject(new FMError(res.messages[0].code, res.status, res))
|
|
1459
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace))
|
|
1459
1460
|
}
|
|
1460
1461
|
})
|
|
1461
1462
|
.catch(e => {
|
|
@@ -1602,6 +1603,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1602
1603
|
}
|
|
1603
1604
|
|
|
1604
1605
|
get() {
|
|
1606
|
+
let trace = new Error()
|
|
1605
1607
|
if (this.recordId === -1) {
|
|
1606
1608
|
throw "Cannot get this RecordBase until a commit() is done."
|
|
1607
1609
|
}
|
|
@@ -1622,7 +1624,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1622
1624
|
resolve(this)
|
|
1623
1625
|
}
|
|
1624
1626
|
else {
|
|
1625
|
-
reject(new FMError(res.messages[0].code, res.status, res))
|
|
1627
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace))
|
|
1626
1628
|
}
|
|
1627
1629
|
})
|
|
1628
1630
|
.catch(e => {
|
|
@@ -1631,21 +1633,22 @@ export class RecordBase extends EventEmitter {
|
|
|
1631
1633
|
})
|
|
1632
1634
|
}
|
|
1633
1635
|
|
|
1634
|
-
commit(extraBody: extraBodyOptions): Promise<RecordBase | FMError> {
|
|
1636
|
+
commit(extraBody: extraBodyOptions = {}): Promise<RecordBase | FMError> {
|
|
1637
|
+
let trace = new Error()
|
|
1635
1638
|
return new Promise(async (resolve, reject) => {
|
|
1636
1639
|
let data = this.toObject()
|
|
1637
1640
|
delete data.recordId
|
|
1638
1641
|
delete data.modId
|
|
1639
1642
|
|
|
1640
|
-
if (extraBody.scripts
|
|
1643
|
+
if (extraBody.scripts?.after) {
|
|
1641
1644
|
data["script"] = extraBody.scripts.after.name
|
|
1642
1645
|
if (extraBody.scripts.after.parameter) data["param"] = extraBody.scripts.after.parameter
|
|
1643
1646
|
}
|
|
1644
|
-
if (extraBody.scripts
|
|
1647
|
+
if (extraBody.scripts?.prerequest) {
|
|
1645
1648
|
data["script"] = extraBody.scripts.after.name
|
|
1646
1649
|
if (extraBody.scripts.prerequest.parameter) data["param"] = extraBody.scripts.prerequest.parameter
|
|
1647
1650
|
}
|
|
1648
|
-
if (extraBody.scripts
|
|
1651
|
+
if (extraBody.scripts?.presort) {
|
|
1649
1652
|
data["script"] = extraBody.scripts.presort.name
|
|
1650
1653
|
if (extraBody.scripts.presort.parameter) data["param"] = extraBody.scripts.presort.parameter
|
|
1651
1654
|
}
|
|
@@ -1660,7 +1663,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1660
1663
|
})
|
|
1661
1664
|
.then(res => {
|
|
1662
1665
|
if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
|
|
1663
|
-
reject(new FMError(res.response.scriptError, res.status, res))
|
|
1666
|
+
reject(new FMError(res.response.scriptError, res.status, res, trace))
|
|
1664
1667
|
}
|
|
1665
1668
|
else if (res.messages[0].code === "0") {
|
|
1666
1669
|
this.recordId = parseInt(res.response.recordId)
|
|
@@ -1668,7 +1671,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1668
1671
|
resolve(this)
|
|
1669
1672
|
}
|
|
1670
1673
|
else {
|
|
1671
|
-
reject(new FMError(res.messages[0].code, res.status, res))
|
|
1674
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace))
|
|
1672
1675
|
}
|
|
1673
1676
|
})
|
|
1674
1677
|
.catch(e => {
|
|
@@ -1686,7 +1689,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1686
1689
|
})
|
|
1687
1690
|
.then(res => {
|
|
1688
1691
|
if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
|
|
1689
|
-
reject(new FMError(res.response.scriptError, res.status, res))
|
|
1692
|
+
reject(new FMError(res.response.scriptError, res.status, res, trace))
|
|
1690
1693
|
}
|
|
1691
1694
|
else if (res.messages[0].code === "0") {
|
|
1692
1695
|
this.modId = res.response.modId
|
|
@@ -1694,7 +1697,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1694
1697
|
resolve(this)
|
|
1695
1698
|
}
|
|
1696
1699
|
else {
|
|
1697
|
-
reject(new FMError(res.messages[0].code, res.status, res))
|
|
1700
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace))
|
|
1698
1701
|
}
|
|
1699
1702
|
})
|
|
1700
1703
|
.catch(e => {
|
|
@@ -1717,6 +1720,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1717
1720
|
}
|
|
1718
1721
|
|
|
1719
1722
|
delete(): Promise<void> {
|
|
1723
|
+
let trace = new Error()
|
|
1720
1724
|
return new Promise(async (resolve, reject) => {
|
|
1721
1725
|
this.layout.database.apiRequest(this.endpoint, {
|
|
1722
1726
|
port: 443,
|
|
@@ -1724,14 +1728,14 @@ export class RecordBase extends EventEmitter {
|
|
|
1724
1728
|
})
|
|
1725
1729
|
.then(res => {
|
|
1726
1730
|
if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
|
|
1727
|
-
reject(new FMError(res.response.scriptError, res.status, res))
|
|
1731
|
+
reject(new FMError(res.response.scriptError, res.status, res, trace))
|
|
1728
1732
|
}
|
|
1729
1733
|
else if (res.messages[0].code === "0") {
|
|
1730
1734
|
this.emit("deleted")
|
|
1731
1735
|
resolve()
|
|
1732
1736
|
}
|
|
1733
1737
|
else {
|
|
1734
|
-
reject(new FMError(res.messages[0].code, res.status, res))
|
|
1738
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace))
|
|
1735
1739
|
}
|
|
1736
1740
|
})
|
|
1737
1741
|
.catch(e => {
|
|
@@ -1741,6 +1745,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1741
1745
|
}
|
|
1742
1746
|
|
|
1743
1747
|
duplicate(): Promise<RecordBase> {
|
|
1748
|
+
let trace = new Error()
|
|
1744
1749
|
return new Promise(async (resolve, reject) => {
|
|
1745
1750
|
this.layout.database.apiRequest(this.endpoint, {
|
|
1746
1751
|
port: 443,
|
|
@@ -1748,7 +1753,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1748
1753
|
})
|
|
1749
1754
|
.then(res => {
|
|
1750
1755
|
if (typeof res.response.scriptError !== "undefined" && res.response.scriptError !== '0') {
|
|
1751
|
-
reject(new FMError(res.response.scriptError, res.status, res))
|
|
1756
|
+
reject(new FMError(res.response.scriptError, res.status, res, trace))
|
|
1752
1757
|
}
|
|
1753
1758
|
else if (res.messages[0].code === "0") {
|
|
1754
1759
|
let data = this.toObject((a) => true, (a) => true, (a) => false, (a) => false)
|
|
@@ -1758,7 +1763,7 @@ export class RecordBase extends EventEmitter {
|
|
|
1758
1763
|
resolve(_res)
|
|
1759
1764
|
}
|
|
1760
1765
|
else {
|
|
1761
|
-
reject(new FMError(res.messages[0].code, res.status, res))
|
|
1766
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace))
|
|
1762
1767
|
}
|
|
1763
1768
|
})
|
|
1764
1769
|
.catch(e => {
|
|
@@ -1920,6 +1925,7 @@ export class Field {
|
|
|
1920
1925
|
}
|
|
1921
1926
|
|
|
1922
1927
|
upload(buffer: Buffer, filename: string, mime: string): Promise<void | FMError> {
|
|
1928
|
+
let trace = new Error()
|
|
1923
1929
|
if (this.metadata.result !== "container") throw "Cannot upload a file to the field; " + this.id + " (not a container field)"
|
|
1924
1930
|
return new Promise(async (resolve, reject) => {
|
|
1925
1931
|
let form = new FormData()
|
|
@@ -1936,7 +1942,7 @@ export class Field {
|
|
|
1936
1942
|
resolve()
|
|
1937
1943
|
}
|
|
1938
1944
|
else {
|
|
1939
|
-
reject(new FMError(_res.messages[0].code, _res.status, data))
|
|
1945
|
+
reject(new FMError(_res.messages[0].code, _res.status, data, trace))
|
|
1940
1946
|
}
|
|
1941
1947
|
})
|
|
1942
1948
|
.catch(e => {
|
|
@@ -2014,7 +2020,7 @@ export class PortalRecord extends RecordBase {
|
|
|
2014
2020
|
this.portal.record._onSave()
|
|
2015
2021
|
}
|
|
2016
2022
|
|
|
2017
|
-
commit(extraBody: extraBodyOptions) {
|
|
2023
|
+
commit(extraBody: extraBodyOptions = {}) {
|
|
2018
2024
|
return this.portal.record.commit(extraBody)
|
|
2019
2025
|
}
|
|
2020
2026
|
|
|
@@ -2125,6 +2131,7 @@ export class RecordGetRange extends RecordGetOperation {
|
|
|
2125
2131
|
}
|
|
2126
2132
|
|
|
2127
2133
|
fetch(extraBody: extraBodyOptions = {}): Promise<RecordBase[]> {
|
|
2134
|
+
let trace = new Error()
|
|
2128
2135
|
return new Promise((resolve, reject) => {
|
|
2129
2136
|
// console.log(this.#toObject())
|
|
2130
2137
|
this.layout.getLayoutMeta().then(() => {
|
|
@@ -2143,7 +2150,7 @@ export class RecordGetRange extends RecordGetOperation {
|
|
|
2143
2150
|
resolve(data)
|
|
2144
2151
|
}
|
|
2145
2152
|
else {
|
|
2146
|
-
reject(new FMError(res.messages[0].code, res.status, res))
|
|
2153
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace))
|
|
2147
2154
|
}
|
|
2148
2155
|
})
|
|
2149
2156
|
.catch(e => {
|
|
@@ -2198,6 +2205,7 @@ export class Find extends RecordGetOperation {
|
|
|
2198
2205
|
}
|
|
2199
2206
|
|
|
2200
2207
|
fetch(): Promise<RecordBase[]> {
|
|
2208
|
+
let trace = new Error()
|
|
2201
2209
|
return new Promise((resolve, reject) => {
|
|
2202
2210
|
// console.log(this.#toObject())
|
|
2203
2211
|
this.layout.getLayoutMeta()
|
|
@@ -2219,7 +2227,7 @@ export class Find extends RecordGetOperation {
|
|
|
2219
2227
|
resolve(data)
|
|
2220
2228
|
}
|
|
2221
2229
|
else {
|
|
2222
|
-
reject(new FMError(res.messages[0].code, res.status, res))
|
|
2230
|
+
reject(new FMError(res.messages[0].code, res.status, res, trace))
|
|
2223
2231
|
}
|
|
2224
2232
|
})
|
|
2225
2233
|
.catch(e => {
|
|
@@ -2236,7 +2244,7 @@ export class FMError extends Error {
|
|
|
2236
2244
|
readonly message: string
|
|
2237
2245
|
readonly messages: string
|
|
2238
2246
|
|
|
2239
|
-
constructor(code, httpStatus, res) {
|
|
2247
|
+
constructor(code, httpStatus, res, trace?: Error) {
|
|
2240
2248
|
if (typeof code === "string") code = parseInt(code)
|
|
2241
2249
|
super(errs.find(err => err.e === code).d || "Unknown error");
|
|
2242
2250
|
this.httpStatus = httpStatus
|
|
@@ -2244,6 +2252,8 @@ export class FMError extends Error {
|
|
|
2244
2252
|
this.messages = res.messages
|
|
2245
2253
|
this.code = typeof code === "string" ? parseInt(code) : code
|
|
2246
2254
|
Error.captureStackTrace(this, FMError)
|
|
2255
|
+
|
|
2256
|
+
if (trace) this.stack = trace.stack
|
|
2247
2257
|
}
|
|
2248
2258
|
}
|
|
2249
2259
|
|