@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.
Files changed (2) hide show
  1. package/dist/index.js +28 -24
  2. 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) => ({ query, selectedFields: [] }));
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 }, expansionIndex) => {
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 = modelsWithAttributes;
2112
+ let modelList = modelsWithPresets.filter((model) => {
2113
+ return model.slug !== ROOT_MODEL.slug;
2114
+ });
2107
2115
  if (forInstruction) {
2108
- const mainModel = getModelBySlug(modelsWithAttributes, forInstruction);
2116
+ const mainModel = getModelBySlug(modelList, forInstruction);
2109
2117
  modelList = Object.values(mainModel.fields || {}).filter((field) => field.type === "link").map((field) => {
2110
- return modelsWithAttributes.find(
2118
+ return modelList.find(
2111
2119
  (model) => model.slug === field.target
2112
2120
  );
2113
2121
  });
2114
2122
  }
2115
- this.#internalQueries[expansionIndex].affectedModels = modelList.map(
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, expansionIndex };
2128
+ return { query: query2, index };
2123
2129
  });
2124
2130
  }
2125
- return { query };
2131
+ return { query, index };
2126
2132
  });
2127
- for (let index = 0; index < expandedQueries.length; index++) {
2128
- const { query, expansionIndex } = expandedQueries[index];
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
- const queryIndex = typeof expansionIndex === "undefined" ? index : expansionIndex;
2141
- this.#internalQueries[queryIndex].selectedFields = selectedFields;
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" && affectedModels) {
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 modelList) {
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 = getModelBySlug(this.models, queryModel);
2325
+ const model = affectedModels[0];
2322
2326
  const result = this.formatIndividualResult(
2323
2327
  queryType,
2324
2328
  queryInstructions,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ronin/compiler",
3
- "version": "0.17.9",
3
+ "version": "0.17.10",
4
4
  "type": "module",
5
5
  "description": "Compiles RONIN queries to SQL statements.",
6
6
  "publishConfig": {