@ronin/compiler 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.js CHANGED
@@ -96,19 +96,19 @@ var splitQuery = (query) => {
96
96
  };
97
97
 
98
98
  // src/utils/statement.ts
99
- var prepareStatementValue = (statementValues, value) => {
99
+ var prepareStatementValue = (statementParams, value) => {
100
100
  if (value === null) return "NULL";
101
- if (!statementValues) return JSON.stringify(value);
101
+ if (!statementParams) return JSON.stringify(value);
102
102
  let formattedValue = value;
103
103
  if (Array.isArray(value) || isObject(value)) {
104
104
  formattedValue = JSON.stringify(value);
105
105
  } else if (typeof value === "boolean") {
106
106
  formattedValue = value ? 1 : 0;
107
107
  }
108
- const index = statementValues.push(formattedValue);
108
+ const index = statementParams.push(formattedValue);
109
109
  return `?${index}`;
110
110
  };
111
- var composeFieldValues = (schemas, schema, statementValues, instructionName, value, options) => {
111
+ var composeFieldValues = (schemas, schema, statementParams, instructionName, value, options) => {
112
112
  const { field: schemaField, fieldSelector: selector } = getFieldFromSchema(
113
113
  schema,
114
114
  options.fieldSlug,
@@ -123,8 +123,8 @@ var composeFieldValues = (schemas, schema, statementValues, instructionName, val
123
123
  conditionValue = `(${compileQueryInput(
124
124
  value[RONIN_SCHEMA_SYMBOLS.QUERY],
125
125
  schemas,
126
- statementValues
127
- ).readStatement})`;
126
+ statementParams
127
+ ).main.statement})`;
128
128
  } else if (typeof value === "string" && value.startsWith(RONIN_SCHEMA_SYMBOLS.FIELD)) {
129
129
  let targetTable = `"${options.rootTable}"`;
130
130
  let toReplace = RONIN_SCHEMA_SYMBOLS.FIELD;
@@ -140,21 +140,21 @@ var composeFieldValues = (schemas, schema, statementValues, instructionName, val
140
140
  } else if (schemaField.type === "json" && instructionName === "to") {
141
141
  conditionSelector = `"${schemaField.slug}"`;
142
142
  if (collectStatementValue) {
143
- const preparedValue = prepareStatementValue(statementValues, value);
143
+ const preparedValue = prepareStatementValue(statementParams, value);
144
144
  conditionValue = `IIF(${conditionSelector} IS NULL, ${preparedValue}, json_patch(${conditionSelector}, ${preparedValue}))`;
145
145
  }
146
146
  } else if (collectStatementValue) {
147
- conditionValue = prepareStatementValue(statementValues, value);
147
+ conditionValue = prepareStatementValue(statementParams, value);
148
148
  }
149
149
  if (options.type === "fields") return conditionSelector;
150
150
  if (options.type === "values") return conditionValue;
151
151
  return `${conditionSelector} ${WITH_CONDITIONS[options.condition || "being"](conditionValue, value)}`;
152
152
  };
153
- var composeConditions = (schemas, schema, statementValues, instructionName, value, options) => {
153
+ var composeConditions = (schemas, schema, statementParams, instructionName, value, options) => {
154
154
  const isNested = isObject(value) && Object.keys(value).length > 0;
155
155
  if (isNested && Object.keys(value).every((key) => key in WITH_CONDITIONS)) {
156
156
  const conditions = Object.entries(value).map(
157
- ([conditionType, checkValue]) => composeConditions(schemas, schema, statementValues, instructionName, checkValue, {
157
+ ([conditionType, checkValue]) => composeConditions(schemas, schema, statementParams, instructionName, checkValue, {
158
158
  ...options,
159
159
  condition: conditionType
160
160
  })
@@ -175,7 +175,7 @@ var composeConditions = (schemas, schema, statementValues, instructionName, valu
175
175
  return composeFieldValues(
176
176
  schemas,
177
177
  schema,
178
- statementValues,
178
+ statementParams,
179
179
  instructionName,
180
180
  value,
181
181
  { ...options, fieldSlug: options.fieldSlug }
@@ -204,7 +204,7 @@ var composeConditions = (schemas, schema, statementValues, instructionName, valu
204
204
  return composeConditions(
205
205
  schemas,
206
206
  schema,
207
- statementValues,
207
+ statementParams,
208
208
  instructionName,
209
209
  recordTarget,
210
210
  options
@@ -214,7 +214,7 @@ var composeConditions = (schemas, schema, statementValues, instructionName, valu
214
214
  if (isNested) {
215
215
  const conditions = Object.entries(value).map(([field, value2]) => {
216
216
  const nestedFieldSlug = options.fieldSlug ? `${options.fieldSlug}.${field}` : field;
217
- return composeConditions(schemas, schema, statementValues, instructionName, value2, {
217
+ return composeConditions(schemas, schema, statementParams, instructionName, value2, {
218
218
  ...options,
219
219
  fieldSlug: nestedFieldSlug
220
220
  });
@@ -228,7 +228,7 @@ var composeConditions = (schemas, schema, statementValues, instructionName, valu
228
228
  (filter) => composeConditions(
229
229
  schemas,
230
230
  schema,
231
- statementValues,
231
+ statementParams,
232
232
  instructionName,
233
233
  filter,
234
234
  options
@@ -287,11 +287,11 @@ var WITH_CONDITIONS = {
287
287
  lessThan: (value) => `< ${value}`,
288
288
  lessOrEqual: (value) => `<= ${value}`
289
289
  };
290
- var handleWith = (schemas, schema, statementValues, instruction, rootTable) => {
290
+ var handleWith = (schemas, schema, statementParams, instruction, rootTable) => {
291
291
  const subStatement = composeConditions(
292
292
  schemas,
293
293
  schema,
294
- statementValues,
294
+ statementParams,
295
295
  "with",
296
296
  instruction,
297
297
  { rootTable }
@@ -601,7 +601,7 @@ var getFieldStatement = (field) => {
601
601
  }
602
602
  return statement;
603
603
  };
604
- var addSchemaQueries = (schemas, statementValues, queryDetails, writeStatements) => {
604
+ var addSchemaQueries = (schemas, queryDetails, dependencyStatements) => {
605
605
  const {
606
606
  queryType,
607
607
  querySchema,
@@ -653,30 +653,33 @@ var addSchemaQueries = (schemas, statementValues, queryDetails, writeStatements)
653
653
  fields: ["schema.slug"]
654
654
  });
655
655
  }
656
- const tableName = convertToSnakeCase(pluralize(kind === "schemas" ? slug : schemaSlug));
656
+ const usableSlug = kind === "schemas" ? slug : schemaSlug;
657
+ const tableName = convertToSnakeCase(pluralize(usableSlug));
658
+ const targetSchema = kind === "schemas" && queryType === "create" ? null : getSchemaBySlug(schemas, usableSlug);
657
659
  if (kind === "indexes") {
658
660
  const indexName = convertToSnakeCase(slug);
659
661
  const unique = instructionList?.unique;
660
662
  const filterQuery = instructionList?.filter;
663
+ const params = [];
661
664
  let statement2 = `${tableAction}${unique ? " UNIQUE" : ""} INDEX "${indexName}"`;
662
665
  if (queryType === "create") {
663
666
  statement2 += ` ON "${tableName}"`;
664
667
  if (filterQuery) {
665
- const targetSchema = getSchemaBySlug(schemas, schemaSlug);
666
668
  const withStatement = handleWith(
667
669
  schemas,
668
670
  targetSchema,
669
- statementValues,
671
+ params,
670
672
  filterQuery
671
673
  );
672
674
  statement2 += ` WHERE (${withStatement})`;
673
675
  }
674
676
  }
675
- writeStatements.push(statement2);
677
+ dependencyStatements.push({ statement: statement2, params });
676
678
  return queryInstructions;
677
679
  }
678
680
  if (kind === "triggers") {
679
681
  const triggerName = convertToSnakeCase(slug);
682
+ const params = [];
680
683
  let statement2 = `${tableAction} TRIGGER "${triggerName}"`;
681
684
  if (queryType === "create") {
682
685
  const cause = slugToName(instructionList?.cause).toUpperCase();
@@ -687,28 +690,27 @@ var addSchemaQueries = (schemas, statementValues, queryDetails, writeStatements)
687
690
  statementParts.push("FOR EACH ROW");
688
691
  }
689
692
  if (filterQuery) {
690
- const targetSchema = getSchemaBySlug(schemas, schemaSlug);
691
693
  const tablePlaceholder = cause.endsWith("DELETE") ? RONIN_SCHEMA_SYMBOLS.FIELD_OLD : RONIN_SCHEMA_SYMBOLS.FIELD_NEW;
692
694
  const withStatement = handleWith(
693
695
  schemas,
694
696
  targetSchema,
695
- statementValues,
697
+ params,
696
698
  filterQuery,
697
699
  tablePlaceholder
698
700
  );
699
701
  statementParts.push("WHEN", `(${withStatement})`);
700
702
  }
701
703
  const effectStatements = effectQueries.map((effectQuery) => {
702
- return compileQueryInput(effectQuery, schemas, statementValues, {
703
- disableReturning: true
704
- }).readStatement;
704
+ return compileQueryInput(effectQuery, schemas, params, {
705
+ returning: false
706
+ }).main.statement;
705
707
  });
706
708
  if (effectStatements.length > 1) statementParts.push("BEGIN");
707
709
  statementParts.push(effectStatements.join("; "));
708
710
  if (effectStatements.length > 1) statementParts.push("END");
709
711
  statement2 += ` ${statementParts.join(" ")}`;
710
712
  }
711
- writeStatements.push(statement2);
713
+ dependencyStatements.push({ statement: statement2, params });
712
714
  return queryInstructions;
713
715
  }
714
716
  let statement = `${tableAction} TABLE "${tableName}"`;
@@ -721,14 +723,18 @@ var addSchemaQueries = (schemas, statementValues, queryDetails, writeStatements)
721
723
  if (queryType === "create") {
722
724
  const columns = fields.map(getFieldStatement).filter(Boolean);
723
725
  statement += ` (${columns.join(", ")})`;
726
+ schemas.push(queryInstructions.to);
724
727
  } else if (queryType === "set") {
725
728
  const newSlug = queryInstructions.to?.pluralSlug;
726
729
  if (newSlug) {
727
730
  const newTable = convertToSnakeCase(newSlug);
728
731
  statement += ` RENAME TO "${newTable}"`;
729
732
  }
733
+ Object.assign(targetSchema, queryInstructions.to);
734
+ } else if (queryType === "drop") {
735
+ schemas.splice(schemas.indexOf(targetSchema), 1);
730
736
  }
731
- writeStatements.push(statement);
737
+ dependencyStatements.push({ statement, params: [] });
732
738
  return queryInstructions;
733
739
  }
734
740
  if (kind === "fields") {
@@ -749,7 +755,7 @@ var addSchemaQueries = (schemas, statementValues, queryDetails, writeStatements)
749
755
  } else if (queryType === "drop") {
750
756
  statement += ` DROP COLUMN "${slug}"`;
751
757
  }
752
- writeStatements.push(statement);
758
+ dependencyStatements.push({ statement, params: [] });
753
759
  }
754
760
  return queryInstructions;
755
761
  };
@@ -773,7 +779,7 @@ var pluralize = (word) => {
773
779
  // src/instructions/before-after.ts
774
780
  var CURSOR_SEPARATOR = ",";
775
781
  var CURSOR_NULL_PLACEHOLDER = "RONIN_NULL";
776
- var handleBeforeOrAfter = (schema, statementValues, instructions, rootTable) => {
782
+ var handleBeforeOrAfter = (schema, statementParams, instructions, rootTable) => {
777
783
  if (!(instructions.before || instructions.after)) {
778
784
  throw new RoninError({
779
785
  message: "The `before` or `after` instruction must not be empty.",
@@ -799,15 +805,15 @@ var handleBeforeOrAfter = (schema, statementValues, instructions, rootTable) =>
799
805
  }
800
806
  const { field } = getFieldFromSchema(schema, key, "orderedBy");
801
807
  if (field.type === "boolean") {
802
- return prepareStatementValue(statementValues, value === "true");
808
+ return prepareStatementValue(statementParams, value === "true");
803
809
  }
804
810
  if (field.type === "number") {
805
- return prepareStatementValue(statementValues, Number.parseInt(value));
811
+ return prepareStatementValue(statementParams, Number.parseInt(value));
806
812
  }
807
813
  if (field.type === "date") {
808
814
  return `'${new Date(Number.parseInt(value)).toJSON()}'`;
809
815
  }
810
- return prepareStatementValue(statementValues, value);
816
+ return prepareStatementValue(statementParams, value);
811
817
  });
812
818
  const compareOperators = [
813
819
  // Reverse the comparison operators if we're querying for records before.
@@ -850,7 +856,7 @@ var handleBeforeOrAfter = (schema, statementValues, instructions, rootTable) =>
850
856
  };
851
857
 
852
858
  // src/instructions/for.ts
853
- var handleFor = (schemas, schema, statementValues, instruction, rootTable) => {
859
+ var handleFor = (schemas, schema, statementParams, instruction, rootTable) => {
854
860
  let statement = "";
855
861
  if (!instruction) return statement;
856
862
  for (const shortcut in instruction) {
@@ -871,7 +877,7 @@ var handleFor = (schemas, schema, statementValues, instruction, rootTable) => {
871
877
  const subStatement = composeConditions(
872
878
  schemas,
873
879
  schema,
874
- statementValues,
880
+ statementParams,
875
881
  "for",
876
882
  replacedForFilter,
877
883
  { rootTable }
@@ -882,7 +888,7 @@ var handleFor = (schemas, schema, statementValues, instruction, rootTable) => {
882
888
  };
883
889
 
884
890
  // src/instructions/including.ts
885
- var handleIncluding = (schemas, statementValues, schema, instruction, rootTable) => {
891
+ var handleIncluding = (schemas, statementParams, schema, instruction, rootTable) => {
886
892
  let statement = "";
887
893
  let rootTableSubQuery;
888
894
  let rootTableName = rootTable;
@@ -916,9 +922,9 @@ var handleIncluding = (schemas, statementValues, schema, instruction, rootTable)
916
922
  }
917
923
  },
918
924
  schemas,
919
- statementValues
925
+ statementParams
920
926
  );
921
- relatedTableSelector = `(${subSelect.readStatement})`;
927
+ relatedTableSelector = `(${subSelect.main.statement})`;
922
928
  }
923
929
  statement += `${joinType} JOIN ${relatedTableSelector} as ${tableAlias}`;
924
930
  if (joinType === "LEFT") {
@@ -929,7 +935,7 @@ var handleIncluding = (schemas, statementValues, schema, instruction, rootTable)
929
935
  const subStatement = composeConditions(
930
936
  schemas,
931
937
  relatedSchema,
932
- statementValues,
938
+ statementParams,
933
939
  "including",
934
940
  queryInstructions?.with,
935
941
  {
@@ -983,7 +989,7 @@ var handleOrderedBy = (schema, instruction, rootTable) => {
983
989
  };
984
990
 
985
991
  // src/instructions/selecting.ts
986
- var handleSelecting = (schema, statementValues, instructions) => {
992
+ var handleSelecting = (schema, statementParams, instructions) => {
987
993
  let statement = instructions.selecting ? instructions.selecting.map((slug) => {
988
994
  return getFieldFromSchema(schema, slug, "selecting").fieldSelector;
989
995
  }).join(", ") : "*";
@@ -994,14 +1000,14 @@ var handleSelecting = (schema, statementValues, instructions) => {
994
1000
  ).filter(([_, value]) => {
995
1001
  return !(isObject(value) && Object.hasOwn(value, RONIN_SCHEMA_SYMBOLS.QUERY));
996
1002
  }).map(([key, value]) => {
997
- return `${prepareStatementValue(statementValues, value)} as "${key}"`;
1003
+ return `${prepareStatementValue(statementParams, value)} as "${key}"`;
998
1004
  }).join(", ");
999
1005
  }
1000
1006
  return statement;
1001
1007
  };
1002
1008
 
1003
1009
  // src/instructions/to.ts
1004
- var handleTo = (schemas, schema, statementValues, queryType, writeStatements, instructions, rootTable) => {
1010
+ var handleTo = (schemas, schema, statementParams, queryType, dependencyStatements, instructions, rootTable) => {
1005
1011
  const currentTime = (/* @__PURE__ */ new Date()).toISOString();
1006
1012
  const { with: withInstruction, to: toInstruction } = instructions;
1007
1013
  const defaultFields = {};
@@ -1043,7 +1049,7 @@ var handleTo = (schemas, schema, statementValues, queryType, writeStatements, in
1043
1049
  ...subQueryInstructions.including
1044
1050
  };
1045
1051
  }
1046
- return compileQueryInput(subQuery, schemas, statementValues).readStatement;
1052
+ return compileQueryInput(subQuery, schemas, statementParams).main.statement;
1047
1053
  }
1048
1054
  Object.assign(toInstruction, defaultFields);
1049
1055
  for (const fieldSlug in toInstruction) {
@@ -1059,29 +1065,28 @@ var handleTo = (schemas, schema, statementValues, queryType, writeStatements, in
1059
1065
  const source = queryType === "create" ? { id: toInstruction.id } : withInstruction;
1060
1066
  const recordDetails = { source };
1061
1067
  if (value) recordDetails.target = value;
1062
- const { readStatement } = compileQueryInput(
1068
+ return compileQueryInput(
1063
1069
  {
1064
1070
  [subQueryType]: {
1065
1071
  [associativeSchemaSlug]: subQueryType === "create" ? { to: recordDetails } : { with: recordDetails }
1066
1072
  }
1067
1073
  },
1068
1074
  schemas,
1069
- statementValues,
1070
- { disableReturning: true }
1071
- );
1072
- return readStatement;
1075
+ [],
1076
+ { returning: false }
1077
+ ).main;
1073
1078
  };
1074
1079
  if (Array.isArray(fieldValue)) {
1075
- writeStatements.push(composeStatement("drop"));
1080
+ dependencyStatements.push(composeStatement("drop"));
1076
1081
  for (const record of fieldValue) {
1077
- writeStatements.push(composeStatement("create", record));
1082
+ dependencyStatements.push(composeStatement("create", record));
1078
1083
  }
1079
1084
  } else if (isObject(fieldValue)) {
1080
1085
  for (const recordToAdd of fieldValue.containing || []) {
1081
- writeStatements.push(composeStatement("create", recordToAdd));
1086
+ dependencyStatements.push(composeStatement("create", recordToAdd));
1082
1087
  }
1083
1088
  for (const recordToRemove of fieldValue.notContaining || []) {
1084
- writeStatements.push(composeStatement("drop", recordToRemove));
1089
+ dependencyStatements.push(composeStatement("drop", recordToRemove));
1085
1090
  }
1086
1091
  }
1087
1092
  }
@@ -1089,7 +1094,7 @@ var handleTo = (schemas, schema, statementValues, queryType, writeStatements, in
1089
1094
  let statement = composeConditions(
1090
1095
  schemas,
1091
1096
  schema,
1092
- statementValues,
1097
+ statementParams,
1093
1098
  "to",
1094
1099
  toInstruction,
1095
1100
  {
@@ -1101,7 +1106,7 @@ var handleTo = (schemas, schema, statementValues, queryType, writeStatements, in
1101
1106
  const deepStatement = composeConditions(
1102
1107
  schemas,
1103
1108
  schema,
1104
- statementValues,
1109
+ statementParams,
1105
1110
  "to",
1106
1111
  toInstruction,
1107
1112
  {
@@ -1117,22 +1122,21 @@ var handleTo = (schemas, schema, statementValues, queryType, writeStatements, in
1117
1122
  };
1118
1123
 
1119
1124
  // src/utils/index.ts
1120
- var compileQueryInput = (query, defaultSchemas, statementValues, options) => {
1125
+ var compileQueryInput = (query, schemas, statementParams, options) => {
1121
1126
  const parsedQuery = splitQuery(query);
1122
1127
  const { queryType, querySchema, queryInstructions } = parsedQuery;
1123
- const schemas = addSystemSchemas(defaultSchemas);
1124
1128
  const schema = getSchemaBySlug(schemas, querySchema);
1125
1129
  const single = querySchema !== schema.pluralSlug;
1126
1130
  let instructions = formatIdentifiers(schema, queryInstructions);
1127
1131
  let table = getTableForSchema(schema);
1128
- const writeStatements = [];
1132
+ const dependencyStatements = [];
1133
+ const returning = options?.returning ?? true;
1129
1134
  instructions = addSchemaQueries(
1130
1135
  schemas,
1131
- statementValues,
1132
1136
  { queryType, querySchema, queryInstructions: instructions },
1133
- writeStatements
1137
+ dependencyStatements
1134
1138
  );
1135
- const columns = handleSelecting(schema, statementValues, {
1139
+ const columns = handleSelecting(schema, statementParams, {
1136
1140
  selecting: instructions?.selecting,
1137
1141
  including: instructions?.including
1138
1142
  });
@@ -1161,7 +1165,7 @@ var compileQueryInput = (query, defaultSchemas, statementValues, options) => {
1161
1165
  statement: including,
1162
1166
  rootTableSubQuery,
1163
1167
  rootTableName
1164
- } = handleIncluding(schemas, statementValues, schema, instructions?.including, table);
1168
+ } = handleIncluding(schemas, statementParams, schema, instructions?.including, table);
1165
1169
  if (rootTableSubQuery && rootTableName) {
1166
1170
  table = rootTableName;
1167
1171
  statement += `(${rootTableSubQuery}) as ${rootTableName} `;
@@ -1184,9 +1188,9 @@ var compileQueryInput = (query, defaultSchemas, statementValues, options) => {
1184
1188
  const toStatement = handleTo(
1185
1189
  schemas,
1186
1190
  schema,
1187
- statementValues,
1191
+ statementParams,
1188
1192
  queryType,
1189
- writeStatements,
1193
+ dependencyStatements,
1190
1194
  { with: instructions.with, to: instructions.to },
1191
1195
  isJoining ? table : void 0
1192
1196
  );
@@ -1197,7 +1201,7 @@ var compileQueryInput = (query, defaultSchemas, statementValues, options) => {
1197
1201
  const withStatement = handleWith(
1198
1202
  schemas,
1199
1203
  schema,
1200
- statementValues,
1204
+ statementParams,
1201
1205
  instructions?.with,
1202
1206
  isJoining ? table : void 0
1203
1207
  );
@@ -1207,7 +1211,7 @@ var compileQueryInput = (query, defaultSchemas, statementValues, options) => {
1207
1211
  const forStatement = handleFor(
1208
1212
  schemas,
1209
1213
  schema,
1210
- statementValues,
1214
+ statementParams,
1211
1215
  instructions?.for,
1212
1216
  isJoining ? table : void 0
1213
1217
  );
@@ -1235,7 +1239,7 @@ var compileQueryInput = (query, defaultSchemas, statementValues, options) => {
1235
1239
  }
1236
1240
  const beforeAndAfterStatement = handleBeforeOrAfter(
1237
1241
  schema,
1238
- statementValues,
1242
+ statementParams,
1239
1243
  {
1240
1244
  before: instructions.before,
1241
1245
  after: instructions.after,
@@ -1264,22 +1268,36 @@ var compileQueryInput = (query, defaultSchemas, statementValues, options) => {
1264
1268
  if (queryType === "get" && !isJoiningMultipleRows) {
1265
1269
  statement += handleLimitedTo(single, instructions?.limitedTo);
1266
1270
  }
1267
- if (["create", "set", "drop"].includes(queryType) && !options?.disableReturning) {
1271
+ if (["create", "set", "drop"].includes(queryType) && returning) {
1268
1272
  statement += "RETURNING * ";
1269
1273
  }
1270
- const finalStatement = statement.trimEnd();
1274
+ const mainStatement = {
1275
+ statement: statement.trimEnd(),
1276
+ params: statementParams || []
1277
+ };
1278
+ if (returning) mainStatement.returning = true;
1271
1279
  return {
1272
- writeStatements,
1273
- readStatement: finalStatement,
1274
- values: statementValues || []
1280
+ dependencies: dependencyStatements,
1281
+ main: mainStatement
1275
1282
  };
1276
1283
  };
1277
1284
 
1278
1285
  // src/index.ts
1279
- var compileQuery = (query, schemas, options) => {
1280
- const statementValues = options?.inlineValues ? null : [];
1281
- return compileQueryInput(query, schemas, statementValues);
1286
+ var compileQueries = (queries, schemas, options) => {
1287
+ const schemaList = addSystemSchemas(schemas);
1288
+ const dependencyStatements = [];
1289
+ const mainStatements = [];
1290
+ for (const query of queries) {
1291
+ const result = compileQueryInput(
1292
+ query,
1293
+ schemaList,
1294
+ options?.inlineValues ? null : []
1295
+ );
1296
+ dependencyStatements.push(...result.dependencies);
1297
+ mainStatements.push(result.main);
1298
+ }
1299
+ return [...dependencyStatements, ...mainStatements];
1282
1300
  };
1283
1301
  export {
1284
- compileQuery
1302
+ compileQueries
1285
1303
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ronin/compiler",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "Compiles RONIN queries to SQL statements.",
6
6
  "publishConfig": {