@ronin/compiler 0.17.22 → 0.18.0
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.d.ts +8 -2
- package/dist/index.js +21 -10
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
@@ -5,9 +5,9 @@ declare const DML_QUERY_TYPES_WRITE: readonly ["set", "add", "remove"];
|
|
5
5
|
/** Query types used for interacting with data. */
|
6
6
|
declare const DML_QUERY_TYPES: readonly ["get", "count", "set", "add", "remove"];
|
7
7
|
/** Query types used for interacting with the database schema. */
|
8
|
-
declare const DDL_QUERY_TYPES: readonly ["create", "alter", "drop"];
|
8
|
+
declare const DDL_QUERY_TYPES: readonly ["list", "create", "alter", "drop"];
|
9
9
|
/** All query types. */
|
10
|
-
declare const QUERY_TYPES: readonly ["get", "count", "set", "add", "remove", "create", "alter", "drop"];
|
10
|
+
declare const QUERY_TYPES: readonly ["get", "count", "set", "add", "remove", "list", "create", "alter", "drop"];
|
11
11
|
/**
|
12
12
|
* A list of placeholders that can be located inside queries after those queries were
|
13
13
|
* serialized into JSON objects.
|
@@ -115,6 +115,11 @@ type AddInstructions = Omit<CombinedInstructions, 'with' | 'using'> & {
|
|
115
115
|
};
|
116
116
|
type RemoveInstructions = Omit<CombinedInstructions, 'to'>;
|
117
117
|
type CountInstructions = Omit<CombinedInstructions, 'to'>;
|
118
|
+
type ListQuery = {
|
119
|
+
models?: null;
|
120
|
+
} | {
|
121
|
+
model: string;
|
122
|
+
};
|
118
123
|
type CreateQuery = {
|
119
124
|
model: string | PublicModel;
|
120
125
|
to?: PublicModel;
|
@@ -152,6 +157,7 @@ type Query = {
|
|
152
157
|
add?: AddQuery;
|
153
158
|
remove?: RemoveQuery;
|
154
159
|
count?: CountQuery | CountAllQuery;
|
160
|
+
list?: ListQuery;
|
155
161
|
create?: CreateQuery;
|
156
162
|
alter?: AlterQuery;
|
157
163
|
drop?: DropQuery;
|
package/dist/index.js
CHANGED
@@ -5,7 +5,7 @@ var DML_QUERY_TYPES = [
|
|
5
5
|
...DML_QUERY_TYPES_READ,
|
6
6
|
...DML_QUERY_TYPES_WRITE
|
7
7
|
];
|
8
|
-
var DDL_QUERY_TYPES = ["create", "alter", "drop"];
|
8
|
+
var DDL_QUERY_TYPES = ["list", "create", "alter", "drop"];
|
9
9
|
var QUERY_TYPES = [...DML_QUERY_TYPES, ...DDL_QUERY_TYPES];
|
10
10
|
var QUERY_SYMBOLS = {
|
11
11
|
// Represents a sub query.
|
@@ -1091,7 +1091,8 @@ var compileQueryInput = (defaultQuery, models, statementParams, options) => {
|
|
1091
1091
|
dependencies: [],
|
1092
1092
|
main: dependencyStatements[0],
|
1093
1093
|
selectedFields: [],
|
1094
|
-
model: ROOT_MODEL_WITH_ATTRIBUTES
|
1094
|
+
model: ROOT_MODEL_WITH_ATTRIBUTES,
|
1095
|
+
updatedQuery: defaultQuery
|
1095
1096
|
};
|
1096
1097
|
const parsedQuery = splitQuery(query);
|
1097
1098
|
const { queryType, queryModel, queryInstructions } = parsedQuery;
|
@@ -1253,7 +1254,8 @@ var compileQueryInput = (defaultQuery, models, statementParams, options) => {
|
|
1253
1254
|
dependencies: dependencyStatements,
|
1254
1255
|
main: mainStatement,
|
1255
1256
|
selectedFields,
|
1256
|
-
model
|
1257
|
+
model,
|
1258
|
+
updatedQuery: query
|
1257
1259
|
};
|
1258
1260
|
};
|
1259
1261
|
|
@@ -1593,11 +1595,13 @@ var getSystemFields = (idPrefix) => ({
|
|
1593
1595
|
}
|
1594
1596
|
});
|
1595
1597
|
var ROOT_MODEL = {
|
1596
|
-
slug: "
|
1598
|
+
slug: "roninModel",
|
1597
1599
|
identifiers: {
|
1598
1600
|
name: "name",
|
1599
1601
|
slug: "slug"
|
1600
1602
|
},
|
1603
|
+
// The default ID prefix would be `ron_` based on the slug, but we want `mod_`.
|
1604
|
+
idPrefix: "mod",
|
1601
1605
|
// This name mimics the `sqlite_schema` table in SQLite.
|
1602
1606
|
table: "ronin_schema",
|
1603
1607
|
// Indicates that the model was automatically generated by RONIN.
|
@@ -1789,6 +1793,12 @@ var transformMetaQuery = (models, dependencyStatements, statementParams, query,
|
|
1789
1793
|
let slug = entity === "model" && action === "create" ? null : query[queryType] && "model" in query[queryType] ? query[queryType].model : null;
|
1790
1794
|
let modelSlug = slug;
|
1791
1795
|
let jsonValue;
|
1796
|
+
if ("list" in query && query.list) {
|
1797
|
+
if (slug) {
|
1798
|
+
return { get: { roninModel: { with: { slug } } } };
|
1799
|
+
}
|
1800
|
+
return { get: { roninModels: {} } };
|
1801
|
+
}
|
1792
1802
|
if ("create" in query && query.create) {
|
1793
1803
|
const init = query.create.model;
|
1794
1804
|
jsonValue = "to" in query.create ? { slug: init, ...query.create.to } : init;
|
@@ -1920,11 +1930,11 @@ var transformMetaQuery = (models, dependencyStatements, statementParams, query,
|
|
1920
1930
|
});
|
1921
1931
|
}
|
1922
1932
|
const modelSlug2 = "to" in queryTypeDetails ? queryTypeDetails?.to?.slug : "with" in queryTypeDetails ? queryTypeDetails?.with?.slug : void 0;
|
1923
|
-
if (modelSlug2 === "
|
1933
|
+
if (modelSlug2 === "roninModel") return null;
|
1924
1934
|
const queryTypeAction = action === "create" ? "add" : action === "alter" ? "set" : "remove";
|
1925
1935
|
return {
|
1926
1936
|
[queryTypeAction]: {
|
1927
|
-
|
1937
|
+
roninModel: queryTypeDetails
|
1928
1938
|
}
|
1929
1939
|
};
|
1930
1940
|
}
|
@@ -2118,7 +2128,7 @@ var transformMetaQuery = (models, dependencyStatements, statementParams, query,
|
|
2118
2128
|
);
|
2119
2129
|
return {
|
2120
2130
|
set: {
|
2121
|
-
|
2131
|
+
roninModel: {
|
2122
2132
|
with: { slug: modelSlug },
|
2123
2133
|
to: {
|
2124
2134
|
[pluralType]: { [QUERY_SYMBOLS.EXPRESSION]: json }
|
@@ -2194,13 +2204,13 @@ var Transaction = class {
|
|
2194
2204
|
const query2 = {
|
2195
2205
|
[queryType]: { [model.pluralSlug]: instructions }
|
2196
2206
|
};
|
2197
|
-
return { query: query2, index };
|
2207
|
+
return { query: query2, index, expansion: true };
|
2198
2208
|
});
|
2199
2209
|
}
|
2200
2210
|
return { query, index };
|
2201
2211
|
});
|
2202
|
-
for (const { query, index } of expandedQueries) {
|
2203
|
-
const { dependencies, main, selectedFields, model } = compileQueryInput(
|
2212
|
+
for (const { query, index, expansion } of expandedQueries) {
|
2213
|
+
const { dependencies, main, selectedFields, model, updatedQuery } = compileQueryInput(
|
2204
2214
|
query,
|
2205
2215
|
modelsWithPresets,
|
2206
2216
|
options?.inlineParams ? null : [],
|
@@ -2213,6 +2223,7 @@ var Transaction = class {
|
|
2213
2223
|
this.statements.push(...subStatements);
|
2214
2224
|
this.#internalQueries[index].selectedFields.push(selectedFields);
|
2215
2225
|
this.#internalQueries[index].models.push(model);
|
2226
|
+
if (!expansion) this.#internalQueries[index].query = updatedQuery;
|
2216
2227
|
}
|
2217
2228
|
this.models = modelsWithPresets;
|
2218
2229
|
return statements;
|