@ronin/compiler 0.12.4 → 0.12.5
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.d.ts +2 -2
- package/dist/index.js +68 -51
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
@@ -15671,8 +15671,8 @@ declare class Transaction {
|
|
15671
15671
|
*/
|
15672
15672
|
private compileQueries;
|
15673
15673
|
private formatRows;
|
15674
|
-
formatResults(results: Array<Array<RawRow>>, raw?: true): Array<Result
|
15675
|
-
formatResults(results: Array<Array<ObjectRow>>, raw?: false): Array<Result
|
15674
|
+
formatResults<Record>(results: Array<Array<RawRow>>, raw?: true): Array<Result<Record>>;
|
15675
|
+
formatResults<Record>(results: Array<Array<ObjectRow>>, raw?: false): Array<Result<Record>>;
|
15676
15676
|
}
|
15677
15677
|
|
15678
15678
|
declare const CLEAN_ROOT_MODEL: PublicModel;
|
package/dist/index.js
CHANGED
@@ -675,6 +675,7 @@ var PLURAL_MODEL_ENTITIES = {
|
|
675
675
|
trigger: "triggers",
|
676
676
|
preset: "presets"
|
677
677
|
};
|
678
|
+
var PLURAL_MODEL_ENTITIES_VALUES = Object.values(PLURAL_MODEL_ENTITIES);
|
678
679
|
var formatModelEntity = (type, entities) => {
|
679
680
|
const entries = entities?.map((entity) => {
|
680
681
|
const { slug, ...rest } = "slug" in entity ? entity : { slug: `${type}Slug`, ...entity };
|
@@ -1630,7 +1631,7 @@ var Transaction = class {
|
|
1630
1631
|
this.models = modelListWithPresets;
|
1631
1632
|
return statements;
|
1632
1633
|
};
|
1633
|
-
formatRows(fields, rows, single) {
|
1634
|
+
formatRows(fields, rows, single, isMeta) {
|
1634
1635
|
const records = [];
|
1635
1636
|
for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {
|
1636
1637
|
const row = rows[rowIndex];
|
@@ -1654,7 +1655,16 @@ var Transaction = class {
|
|
1654
1655
|
usableRowIndex = 0;
|
1655
1656
|
}
|
1656
1657
|
}
|
1657
|
-
|
1658
|
+
if (isMeta && PLURAL_MODEL_ENTITIES_VALUES.includes(newSlug)) {
|
1659
|
+
newValue = Object.entries(newValue).map(([slug, attributes]) => {
|
1660
|
+
return { slug, ...attributes };
|
1661
|
+
});
|
1662
|
+
}
|
1663
|
+
records[usableRowIndex] = setProperty(
|
1664
|
+
records[usableRowIndex],
|
1665
|
+
newSlug,
|
1666
|
+
newValue
|
1667
|
+
);
|
1658
1668
|
}
|
1659
1669
|
}
|
1660
1670
|
return single ? records[0] : records;
|
@@ -1679,60 +1689,67 @@ var Transaction = class {
|
|
1679
1689
|
return Object.values(row);
|
1680
1690
|
});
|
1681
1691
|
});
|
1682
|
-
const formattedResults = normalizedResults.map(
|
1683
|
-
|
1684
|
-
|
1685
|
-
|
1686
|
-
|
1687
|
-
|
1688
|
-
|
1689
|
-
|
1690
|
-
|
1691
|
-
|
1692
|
-
|
1693
|
-
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1692
|
+
const formattedResults = normalizedResults.map(
|
1693
|
+
(rows, index) => {
|
1694
|
+
const {
|
1695
|
+
returning,
|
1696
|
+
query,
|
1697
|
+
fields: rawModelFields
|
1698
|
+
} = this.internalStatements[index];
|
1699
|
+
if (!returning) return null;
|
1700
|
+
const { queryType, queryModel, queryInstructions } = splitQuery(query);
|
1701
|
+
const model = getModelBySlug(this.models, queryModel);
|
1702
|
+
const isMeta = queryModel === "model" || queryModel === "models";
|
1703
|
+
const modelFields = Object.fromEntries(
|
1704
|
+
model.fields.map((field) => [field.slug, field.type])
|
1705
|
+
);
|
1706
|
+
if (queryType === "count") {
|
1707
|
+
return { amount: rows[0][0] };
|
1708
|
+
}
|
1709
|
+
const single = queryModel !== model.pluralSlug;
|
1710
|
+
if (single) {
|
1711
|
+
return {
|
1712
|
+
record: rows[0] ? this.formatRows(rawModelFields, rows, single, isMeta) : null,
|
1713
|
+
modelFields
|
1714
|
+
};
|
1715
|
+
}
|
1716
|
+
const pageSize = queryInstructions?.limitedTo;
|
1717
|
+
const output = {
|
1718
|
+
records: this.formatRows(rawModelFields, rows, single, isMeta),
|
1697
1719
|
modelFields
|
1698
1720
|
};
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
output
|
1721
|
+
if (pageSize && output.records.length > 0) {
|
1722
|
+
if (output.records.length > pageSize) {
|
1723
|
+
if (queryInstructions?.before) {
|
1724
|
+
output.records.shift();
|
1725
|
+
} else {
|
1726
|
+
output.records.pop();
|
1727
|
+
}
|
1728
|
+
const direction = queryInstructions?.before ? "moreBefore" : "moreAfter";
|
1729
|
+
const lastRecord = output.records.at(
|
1730
|
+
direction === "moreAfter" ? -1 : 0
|
1731
|
+
);
|
1732
|
+
output[direction] = generatePaginationCursor(
|
1733
|
+
model,
|
1734
|
+
queryInstructions.orderedBy,
|
1735
|
+
lastRecord
|
1736
|
+
);
|
1737
|
+
}
|
1738
|
+
if (queryInstructions?.before || queryInstructions?.after) {
|
1739
|
+
const direction = queryInstructions?.before ? "moreAfter" : "moreBefore";
|
1740
|
+
const firstRecord = output.records.at(
|
1741
|
+
direction === "moreAfter" ? -1 : 0
|
1742
|
+
);
|
1743
|
+
output[direction] = generatePaginationCursor(
|
1744
|
+
model,
|
1745
|
+
queryInstructions.orderedBy,
|
1746
|
+
firstRecord
|
1747
|
+
);
|
1711
1748
|
}
|
1712
|
-
const direction = queryInstructions?.before ? "moreBefore" : "moreAfter";
|
1713
|
-
const lastRecord = output.records.at(
|
1714
|
-
direction === "moreAfter" ? -1 : 0
|
1715
|
-
);
|
1716
|
-
output[direction] = generatePaginationCursor(
|
1717
|
-
model,
|
1718
|
-
queryInstructions.orderedBy,
|
1719
|
-
lastRecord
|
1720
|
-
);
|
1721
|
-
}
|
1722
|
-
if (queryInstructions?.before || queryInstructions?.after) {
|
1723
|
-
const direction = queryInstructions?.before ? "moreAfter" : "moreBefore";
|
1724
|
-
const firstRecord = output.records.at(
|
1725
|
-
direction === "moreAfter" ? -1 : 0
|
1726
|
-
);
|
1727
|
-
output[direction] = generatePaginationCursor(
|
1728
|
-
model,
|
1729
|
-
queryInstructions.orderedBy,
|
1730
|
-
firstRecord
|
1731
|
-
);
|
1732
1749
|
}
|
1750
|
+
return output;
|
1733
1751
|
}
|
1734
|
-
|
1735
|
-
});
|
1752
|
+
);
|
1736
1753
|
return formattedResults.filter((result) => result !== null);
|
1737
1754
|
}
|
1738
1755
|
};
|