@balena/pinejs 17.1.0-build-joshbwlng-tasks-0c116dc98102e3ddd4aa6e8a4f350a1e18891e1a-1 → 17.1.0-build-joshbwlng-tasks-61ce10e444abec6afea3fec43e9a5c37c7cedea6-1
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/.pinejs-cache.json +1 -1
- package/.versionbot/CHANGELOG.yml +14 -2
- package/CHANGELOG.md +6 -1
- package/out/sbvr-api/hooks.d.ts +7 -7
- package/out/sbvr-api/hooks.js.map +1 -1
- package/out/sbvr-api/odata-response.d.ts +2 -1
- package/out/sbvr-api/odata-response.js +4 -4
- package/out/sbvr-api/odata-response.js.map +1 -1
- package/out/sbvr-api/sbvr-utils.js +32 -29
- package/out/sbvr-api/sbvr-utils.js.map +1 -1
- package/package.json +2 -2
- package/src/sbvr-api/hooks.ts +5 -3
- package/src/sbvr-api/odata-response.ts +13 -3
- package/src/sbvr-api/sbvr-utils.ts +39 -40
@@ -1546,7 +1546,8 @@ const runRequest = async (
|
|
1546
1546
|
if (env.DEBUG) {
|
1547
1547
|
log.log('Running', req.method, req.url);
|
1548
1548
|
}
|
1549
|
-
let
|
1549
|
+
let resultGet: Db.Result | undefined;
|
1550
|
+
let resultPost: number | undefined;
|
1550
1551
|
|
1551
1552
|
try {
|
1552
1553
|
try {
|
@@ -1555,18 +1556,18 @@ const runRequest = async (
|
|
1555
1556
|
|
1556
1557
|
switch (request.method) {
|
1557
1558
|
case 'GET':
|
1558
|
-
|
1559
|
+
resultGet = await runGet(req, request, tx);
|
1559
1560
|
break;
|
1560
1561
|
case 'POST':
|
1561
|
-
|
1562
|
+
resultPost = await runPost(req, request, tx);
|
1562
1563
|
break;
|
1563
1564
|
case 'PUT':
|
1564
1565
|
case 'PATCH':
|
1565
1566
|
case 'MERGE':
|
1566
|
-
|
1567
|
+
await runPut(req, request, tx);
|
1567
1568
|
break;
|
1568
1569
|
case 'DELETE':
|
1569
|
-
|
1570
|
+
await runDelete(req, request, tx);
|
1570
1571
|
break;
|
1571
1572
|
}
|
1572
1573
|
} catch (err: any) {
|
@@ -1592,7 +1593,12 @@ const runRequest = async (
|
|
1592
1593
|
throw err;
|
1593
1594
|
}
|
1594
1595
|
|
1595
|
-
await runHooks('POSTRUN', request.hooks, {
|
1596
|
+
await runHooks('POSTRUN', request.hooks, {
|
1597
|
+
req,
|
1598
|
+
request,
|
1599
|
+
result: resultGet ?? resultPost,
|
1600
|
+
tx,
|
1601
|
+
});
|
1596
1602
|
} catch (err: any) {
|
1597
1603
|
await runHooks('POSTRUN-ERROR', request.hooks, {
|
1598
1604
|
req,
|
@@ -1602,7 +1608,23 @@ const runRequest = async (
|
|
1602
1608
|
});
|
1603
1609
|
throw err;
|
1604
1610
|
}
|
1605
|
-
|
1611
|
+
|
1612
|
+
switch (request.method) {
|
1613
|
+
case 'GET':
|
1614
|
+
return await respondGet(req, request, resultGet, tx);
|
1615
|
+
case 'POST':
|
1616
|
+
return await respondPost(req, request, resultPost, tx);
|
1617
|
+
case 'PUT':
|
1618
|
+
case 'PATCH':
|
1619
|
+
case 'MERGE':
|
1620
|
+
return await respondPut(req, request, tx);
|
1621
|
+
case 'DELETE':
|
1622
|
+
return await respondDelete(req, request, tx);
|
1623
|
+
case 'OPTIONS':
|
1624
|
+
return await respondOptions(req, request, tx);
|
1625
|
+
default:
|
1626
|
+
throw new MethodNotAllowedError();
|
1627
|
+
}
|
1606
1628
|
};
|
1607
1629
|
|
1608
1630
|
const runChangeSet =
|
@@ -1650,30 +1672,6 @@ const updateBinds = (
|
|
1650
1672
|
return request;
|
1651
1673
|
};
|
1652
1674
|
|
1653
|
-
const prepareResponse = async (
|
1654
|
-
req: Express.Request,
|
1655
|
-
request: uriParser.ODataRequest,
|
1656
|
-
result: any,
|
1657
|
-
tx: Db.Tx,
|
1658
|
-
): Promise<Response> => {
|
1659
|
-
switch (request.method) {
|
1660
|
-
case 'GET':
|
1661
|
-
return await respondGet(req, request, result, tx);
|
1662
|
-
case 'POST':
|
1663
|
-
return await respondPost(req, request, result, tx);
|
1664
|
-
case 'PUT':
|
1665
|
-
case 'PATCH':
|
1666
|
-
case 'MERGE':
|
1667
|
-
return await respondPut(req, request, result, tx);
|
1668
|
-
case 'DELETE':
|
1669
|
-
return await respondDelete(req, request, result, tx);
|
1670
|
-
case 'OPTIONS':
|
1671
|
-
return await respondOptions(req, request, result, tx);
|
1672
|
-
default:
|
1673
|
-
throw new MethodNotAllowedError();
|
1674
|
-
}
|
1675
|
-
};
|
1676
|
-
|
1677
1675
|
const checkReadOnlyRequests = (request: uriParser.ODataRequest) => {
|
1678
1676
|
if (request.method !== 'GET') {
|
1679
1677
|
// Only GET requests can be read-only
|
@@ -1775,11 +1773,17 @@ const runGet = async (
|
|
1775
1773
|
const respondGet = async (
|
1776
1774
|
req: Express.Request,
|
1777
1775
|
request: uriParser.ODataRequest,
|
1778
|
-
result:
|
1776
|
+
result: Db.Result | undefined,
|
1779
1777
|
tx: Db.Tx,
|
1780
1778
|
): Promise<Response> => {
|
1781
1779
|
const vocab = request.vocabulary;
|
1782
1780
|
if (request.sqlQuery != null) {
|
1781
|
+
if (result == null) {
|
1782
|
+
// This shouldn't be able to happen because the result should only be null if there's no sqlQuery
|
1783
|
+
throw new Error(
|
1784
|
+
'Null result passed to respond GET that has a sqlQuery defined',
|
1785
|
+
);
|
1786
|
+
}
|
1783
1787
|
const format = request.odataQuery.options?.$format;
|
1784
1788
|
const metadata =
|
1785
1789
|
format != null && typeof format === 'object'
|
@@ -1844,7 +1848,7 @@ const runPost = async (
|
|
1844
1848
|
const respondPost = async (
|
1845
1849
|
req: Express.Request,
|
1846
1850
|
request: uriParser.ODataRequest,
|
1847
|
-
id: number,
|
1851
|
+
id: number | undefined,
|
1848
1852
|
tx: Db.Tx,
|
1849
1853
|
): Promise<Response> => {
|
1850
1854
|
const vocab = request.vocabulary;
|
@@ -1894,7 +1898,7 @@ const runPut = async (
|
|
1894
1898
|
_req: Express.Request,
|
1895
1899
|
request: uriParser.ODataRequest,
|
1896
1900
|
tx: Db.Tx,
|
1897
|
-
): Promise<
|
1901
|
+
): Promise<void> => {
|
1898
1902
|
let rowsAffected: number;
|
1899
1903
|
// If request.sqlQuery is an array it means it's an UPSERT, ie two queries: [InsertQuery, UpdateQuery]
|
1900
1904
|
if (Array.isArray(request.sqlQuery)) {
|
@@ -1910,13 +1914,11 @@ const runPut = async (
|
|
1910
1914
|
if (rowsAffected > 0) {
|
1911
1915
|
await validateModel(tx, _.last(request.translateVersions)!, request);
|
1912
1916
|
}
|
1913
|
-
return undefined;
|
1914
1917
|
};
|
1915
1918
|
|
1916
1919
|
const respondPut = async (
|
1917
1920
|
req: Express.Request,
|
1918
1921
|
request: uriParser.ODataRequest,
|
1919
|
-
result: any,
|
1920
1922
|
tx: Db.Tx,
|
1921
1923
|
): Promise<Response> => {
|
1922
1924
|
const response = {
|
@@ -1925,7 +1927,6 @@ const respondPut = async (
|
|
1925
1927
|
await runHooks('PRERESPOND', request.hooks, {
|
1926
1928
|
req,
|
1927
1929
|
request,
|
1928
|
-
result,
|
1929
1930
|
response,
|
1930
1931
|
tx,
|
1931
1932
|
});
|
@@ -1938,13 +1939,11 @@ const runDelete = async (
|
|
1938
1939
|
_req: Express.Request,
|
1939
1940
|
request: uriParser.ODataRequest,
|
1940
1941
|
tx: Db.Tx,
|
1941
|
-
): Promise<
|
1942
|
+
): Promise<void> => {
|
1942
1943
|
const { rowsAffected } = await runQuery(tx, request, undefined, true);
|
1943
1944
|
if (rowsAffected > 0) {
|
1944
1945
|
await validateModel(tx, _.last(request.translateVersions)!, request);
|
1945
1946
|
}
|
1946
|
-
|
1947
|
-
return undefined;
|
1948
1947
|
};
|
1949
1948
|
|
1950
1949
|
export const executeStandardModels = async (tx: Db.Tx): Promise<void> => {
|