@ronin/compiler 0.17.9 → 0.17.10
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/dist/index.js +28 -24
- package/package.json +1 -1
package/dist/index.js
CHANGED
@@ -1038,7 +1038,8 @@ var compileQueryInput = (defaultQuery, models, statementParams, options) => {
|
|
1038
1038
|
return {
|
1039
1039
|
dependencies: [],
|
1040
1040
|
main: dependencyStatements[0],
|
1041
|
-
selectedFields: []
|
1041
|
+
selectedFields: [],
|
1042
|
+
model: ROOT_MODEL_WITH_ATTRIBUTES
|
1042
1043
|
};
|
1043
1044
|
const parsedQuery = splitQuery(query);
|
1044
1045
|
const { queryType, queryModel, queryInstructions } = parsedQuery;
|
@@ -1196,7 +1197,8 @@ var compileQueryInput = (defaultQuery, models, statementParams, options) => {
|
|
1196
1197
|
return {
|
1197
1198
|
dependencies: dependencyStatements,
|
1198
1199
|
main: mainStatement,
|
1199
|
-
selectedFields
|
1200
|
+
selectedFields,
|
1201
|
+
model
|
1200
1202
|
};
|
1201
1203
|
};
|
1202
1204
|
|
@@ -2072,7 +2074,11 @@ var Transaction = class {
|
|
2072
2074
|
#internalQueries = [];
|
2073
2075
|
constructor(queries, options) {
|
2074
2076
|
const models = options?.models || [];
|
2075
|
-
this.#internalQueries = queries.map((query) => ({
|
2077
|
+
this.#internalQueries = queries.map((query) => ({
|
2078
|
+
query,
|
2079
|
+
selectedFields: [],
|
2080
|
+
models: []
|
2081
|
+
}));
|
2076
2082
|
this.#compileQueries(models, options);
|
2077
2083
|
}
|
2078
2084
|
/**
|
@@ -2099,34 +2105,33 @@ var Transaction = class {
|
|
2099
2105
|
return addDefaultModelPresets(modelsWithFields, model);
|
2100
2106
|
});
|
2101
2107
|
const statements = [];
|
2102
|
-
const expandedQueries = this.#internalQueries.flatMap(({ query },
|
2108
|
+
const expandedQueries = this.#internalQueries.flatMap(({ query }, index) => {
|
2103
2109
|
const { queryType, queryModel, queryInstructions } = splitQuery(query);
|
2104
2110
|
if (queryModel === "all") {
|
2105
2111
|
const { for: forInstruction, ...restInstructions } = queryInstructions || {};
|
2106
|
-
let modelList =
|
2112
|
+
let modelList = modelsWithPresets.filter((model) => {
|
2113
|
+
return model.slug !== ROOT_MODEL.slug;
|
2114
|
+
});
|
2107
2115
|
if (forInstruction) {
|
2108
|
-
const mainModel = getModelBySlug(
|
2116
|
+
const mainModel = getModelBySlug(modelList, forInstruction);
|
2109
2117
|
modelList = Object.values(mainModel.fields || {}).filter((field) => field.type === "link").map((field) => {
|
2110
|
-
return
|
2118
|
+
return modelList.find(
|
2111
2119
|
(model) => model.slug === field.target
|
2112
2120
|
);
|
2113
2121
|
});
|
2114
2122
|
}
|
2115
|
-
this.#internalQueries[
|
2116
|
-
(model) => model.slug
|
2117
|
-
);
|
2123
|
+
this.#internalQueries[index].models = modelList;
|
2118
2124
|
return modelList.map((model) => {
|
2119
2125
|
const query2 = {
|
2120
2126
|
[queryType]: { [model.pluralSlug]: restInstructions }
|
2121
2127
|
};
|
2122
|
-
return { query: query2,
|
2128
|
+
return { query: query2, index };
|
2123
2129
|
});
|
2124
2130
|
}
|
2125
|
-
return { query };
|
2131
|
+
return { query, index };
|
2126
2132
|
});
|
2127
|
-
for (
|
2128
|
-
const {
|
2129
|
-
const { dependencies, main, selectedFields } = compileQueryInput(
|
2133
|
+
for (const { query, index } of expandedQueries) {
|
2134
|
+
const { dependencies, main, selectedFields, model } = compileQueryInput(
|
2130
2135
|
query,
|
2131
2136
|
modelsWithPresets,
|
2132
2137
|
options?.inlineParams ? null : [],
|
@@ -2137,8 +2142,10 @@ var Transaction = class {
|
|
2137
2142
|
const postDependencies = dependencies.map(({ after, ...rest }) => after ? rest : null).filter((item) => item != null);
|
2138
2143
|
const subStatements = [...preDependencies, main, ...postDependencies];
|
2139
2144
|
this.statements.push(...subStatements);
|
2140
|
-
|
2141
|
-
this.#internalQueries[
|
2145
|
+
this.#internalQueries[index].selectedFields = selectedFields;
|
2146
|
+
if (this.#internalQueries[index].models.length === 0) {
|
2147
|
+
this.#internalQueries[index].models = [model];
|
2148
|
+
}
|
2142
2149
|
}
|
2143
2150
|
this.models = modelsWithPresets;
|
2144
2151
|
return statements;
|
@@ -2291,7 +2298,7 @@ var Transaction = class {
|
|
2291
2298
|
let resultIndex = 0;
|
2292
2299
|
return this.#internalQueries.reduce(
|
2293
2300
|
(finalResults, internalQuery) => {
|
2294
|
-
const { query, selectedFields, affectedModels } = internalQuery;
|
2301
|
+
const { query, selectedFields, models: affectedModels } = internalQuery;
|
2295
2302
|
const { queryType, queryModel, queryInstructions } = splitQuery(query);
|
2296
2303
|
const absoluteResults = raw ? cleanResults : cleanResults.map((rows) => {
|
2297
2304
|
return rows.map((row) => {
|
@@ -2300,12 +2307,9 @@ var Transaction = class {
|
|
2300
2307
|
return Object.values(row);
|
2301
2308
|
});
|
2302
2309
|
});
|
2303
|
-
if (queryModel === "all"
|
2304
|
-
const modelList = affectedModels.map((slug) => {
|
2305
|
-
return getModelBySlug(this.models, slug);
|
2306
|
-
});
|
2310
|
+
if (queryModel === "all") {
|
2307
2311
|
const models = {};
|
2308
|
-
for (const model of
|
2312
|
+
for (const model of affectedModels) {
|
2309
2313
|
const result = this.formatIndividualResult(
|
2310
2314
|
queryType,
|
2311
2315
|
queryInstructions,
|
@@ -2318,7 +2322,7 @@ var Transaction = class {
|
|
2318
2322
|
}
|
2319
2323
|
finalResults.push({ models });
|
2320
2324
|
} else {
|
2321
|
-
const model =
|
2325
|
+
const model = affectedModels[0];
|
2322
2326
|
const result = this.formatIndividualResult(
|
2323
2327
|
queryType,
|
2324
2328
|
queryInstructions,
|