@ronin/compiler 0.17.1 → 0.17.2-leo-ron-1099-experimental-380

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 CHANGED
@@ -324,7 +324,7 @@ type ModelPreset = {
324
324
  };
325
325
  type ModelEntityList<T extends {
326
326
  slug: string;
327
- }> = Record<NonNullable<T['slug']>, Partial<T>>;
327
+ }> = Record<NonNullable<T['slug']>, T extends infer U ? Omit<U, 'slug'> : never>;
328
328
  interface Model<T extends ModelEntityList<ModelField> = ModelEntityList<ModelField>> {
329
329
  id: string;
330
330
  name: string;
package/dist/index.js CHANGED
@@ -587,7 +587,8 @@ var handleTo = (models, model, statementParams, queryType, dependencyStatements,
587
587
  var handleUsing = (model, instructions) => {
588
588
  const normalizedUsing = Array.isArray(instructions.using) ? Object.fromEntries(instructions.using.map((presetSlug) => [presetSlug, null])) : instructions.using;
589
589
  if ("links" in normalizedUsing) {
590
- for (const [fieldSlug, field] of Object.entries(model.fields)) {
590
+ for (const [fieldSlug, rest] of Object.entries(model.fields)) {
591
+ const field = { slug: fieldSlug, ...rest };
591
592
  if (field.type !== "link" || field.kind === "many") continue;
592
593
  normalizedUsing[fieldSlug] = null;
593
594
  }
@@ -1270,11 +1271,11 @@ var pluralize = (word2) => {
1270
1271
  return `${word2}s`;
1271
1272
  };
1272
1273
  var modelAttributes = [
1273
- ["pluralSlug", "slug", pluralize],
1274
- ["name", "slug", slugToName],
1275
- ["pluralName", "pluralSlug", slugToName],
1276
- ["idPrefix", "slug", (slug) => slug.slice(0, 3).toLowerCase()],
1277
- ["table", "pluralSlug", convertToSnakeCase]
1274
+ ["pluralSlug", "slug", pluralize, true],
1275
+ ["name", "slug", slugToName, false],
1276
+ ["pluralName", "pluralSlug", slugToName, false],
1277
+ ["idPrefix", "slug", (slug) => slug.slice(0, 3).toLowerCase(), false],
1278
+ ["table", "pluralSlug", convertToSnakeCase, true]
1278
1279
  ];
1279
1280
  var getModelIdentifier = () => {
1280
1281
  return `mod_${Array.from(crypto.getRandomValues(new Uint8Array(12))).map((b) => b.toString(16).padStart(2, "0")).join("").slice(0, 16).toLowerCase()}`;
@@ -1282,7 +1283,8 @@ var getModelIdentifier = () => {
1282
1283
  var addDefaultModelAttributes = (model, isNew) => {
1283
1284
  const copiedModel = { ...model };
1284
1285
  if (isNew && !copiedModel.id) copiedModel.id = getModelIdentifier();
1285
- for (const [setting, base, generator] of modelAttributes) {
1286
+ for (const [setting, base, generator, mustRegenerate] of modelAttributes) {
1287
+ if (!(isNew || mustRegenerate)) continue;
1286
1288
  if (copiedModel[setting] || !copiedModel[base]) continue;
1287
1289
  copiedModel[setting] = generator(copiedModel[base]);
1288
1290
  }
@@ -1394,7 +1396,8 @@ var addDefaultModelPresets = (list, model) => {
1394
1396
  }
1395
1397
  const childModels = list.map((subModel) => {
1396
1398
  if (subModel.system?.associationSlug) return null;
1397
- const field = Object.entries(subModel.fields).find(([_, field2]) => {
1399
+ const field = Object.entries(subModel.fields).find(([fieldSlug, rest]) => {
1400
+ const field2 = { slug: fieldSlug, ...rest };
1398
1401
  return field2.type === "link" && field2.target === model.slug;
1399
1402
  });
1400
1403
  if (!field) return null;
@@ -1497,30 +1500,25 @@ var getSystemFields = (idPrefix) => ({
1497
1500
  id: {
1498
1501
  name: "ID",
1499
1502
  type: "string",
1500
- slug: "id",
1501
1503
  defaultValue: ID_EXPRESSION(idPrefix)
1502
1504
  },
1503
1505
  "ronin.createdAt": {
1504
1506
  name: "RONIN - Created At",
1505
1507
  type: "date",
1506
- slug: "ronin.createdAt",
1507
1508
  defaultValue: CURRENT_TIME_EXPRESSION
1508
1509
  },
1509
1510
  "ronin.createdBy": {
1510
1511
  name: "RONIN - Created By",
1511
- type: "string",
1512
- slug: "ronin.createdBy"
1512
+ type: "string"
1513
1513
  },
1514
1514
  "ronin.updatedAt": {
1515
1515
  name: "RONIN - Updated At",
1516
1516
  type: "date",
1517
- slug: "ronin.updatedAt",
1518
1517
  defaultValue: CURRENT_TIME_EXPRESSION
1519
1518
  },
1520
1519
  "ronin.updatedBy": {
1521
1520
  name: "RONIN - Updated By",
1522
- type: "string",
1523
- slug: "ronin.updatedBy"
1521
+ type: "string"
1524
1522
  }
1525
1523
  });
1526
1524
  var ROOT_MODEL = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ronin/compiler",
3
- "version": "0.17.1",
3
+ "version": "0.17.2-leo-ron-1099-experimental-380",
4
4
  "type": "module",
5
5
  "description": "Compiles RONIN queries to SQL statements.",
6
6
  "publishConfig": {