pecunia-cli 0.2.0 → 0.2.1
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/api.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as generateKyselySchema, n as generateSchema, o as generateDrizzleSchema, r as generatePrismaSchema, t as adapters } from "./generators-
|
|
1
|
+
import { a as generateKyselySchema, n as generateSchema, o as generateDrizzleSchema, r as generatePrismaSchema, t as adapters } from "./generators-DXOqBlgH.mjs";
|
|
2
2
|
|
|
3
3
|
export { adapters, generateDrizzleSchema, generateKyselySchema, generatePrismaSchema, generateSchema };
|
|
@@ -421,6 +421,7 @@ const generateDrizzleSchema = async ({ options, file, adapter }) => {
|
|
|
421
421
|
});
|
|
422
422
|
if (attr.references) {
|
|
423
423
|
const referencedModelName = tableNameMap.get(attr.references.model) || getModelName(attr.references.model);
|
|
424
|
+
const onDelete = attr.references.onDelete || "no action";
|
|
424
425
|
references.push({
|
|
425
426
|
fieldName,
|
|
426
427
|
referencedTable: referencedModelName,
|
|
@@ -428,8 +429,8 @@ const generateDrizzleSchema = async ({ options, file, adapter }) => {
|
|
|
428
429
|
model: attr.references.model,
|
|
429
430
|
field: attr.references.field
|
|
430
431
|
}),
|
|
431
|
-
onDelete
|
|
432
|
-
required: attr.required
|
|
432
|
+
onDelete,
|
|
433
|
+
required: attr.required ?? false,
|
|
433
434
|
originalModel: attr.references.model
|
|
434
435
|
});
|
|
435
436
|
}
|
|
@@ -469,7 +470,14 @@ const generateDrizzleSchema = async ({ options, file, adapter }) => {
|
|
|
469
470
|
const reverseKey = `${referencedTableKey}->${tableDef.tableKey}`;
|
|
470
471
|
const reverseRef = referenceGraph.get(reverseKey);
|
|
471
472
|
if (reverseRef) {
|
|
472
|
-
|
|
473
|
+
const thisIsNullableWithSetNull = !ref.required && ref.onDelete === "set null";
|
|
474
|
+
const reverseIsNullableWithSetNull = !reverseRef.required && reverseRef.onDelete === "set null";
|
|
475
|
+
if (thisIsNullableWithSetNull) continue;
|
|
476
|
+
if (reverseIsNullableWithSetNull && ref.required) {
|
|
477
|
+
skipReferences.add(`${tableDef.tableKey}.${ref.fieldName}`);
|
|
478
|
+
continue;
|
|
479
|
+
}
|
|
480
|
+
if (!ref.required && (reverseRef.required || ref.onDelete !== "cascade" && reverseRef.onDelete === "cascade")) skipReferences.add(`${tableDef.tableKey}.${ref.fieldName}`);
|
|
473
481
|
}
|
|
474
482
|
}
|
|
475
483
|
for (const tableDef of tableDefinitions) {
|
|
@@ -506,7 +514,8 @@ const generateDrizzleSchema = async ({ options, file, adapter }) => {
|
|
|
506
514
|
if (reverseRef) comment = `\n // FK constraint removed to break circular dependency with ${ref.referencedTable}\n // Primary FK: ${reverseRef.sourceModelName}.${reverseRef.fieldName} -> ${modelName}.${fieldName}\n // This field still maintains referential integrity via application logic and Drizzle relations`;
|
|
507
515
|
else comment = `\n // FK constraint removed to break circular dependency with ${ref.referencedTable}\n // This field still maintains referential integrity via application logic and Drizzle relations`;
|
|
508
516
|
}
|
|
509
|
-
const
|
|
517
|
+
const isRequired = attr.required === true;
|
|
518
|
+
const fieldDef = `${fieldName}: ${type}${isRequired ? ".notNull()" : ""}${attr.unique ? ".unique()" : ""}${referenceChain}`;
|
|
510
519
|
return comment ? `${comment}\n ${fieldDef}` : fieldDef;
|
|
511
520
|
});
|
|
512
521
|
const schema = `export const ${modelName} = ${databaseType}Table("${convertToSnakeCase(modelName, adapter.options?.camelCase)}", {
|
|
@@ -897,8 +906,9 @@ const generatePrismaSchema = async ({ adapter, options, file }) => {
|
|
|
897
906
|
if (attr.references) {
|
|
898
907
|
const referencedOriginalModelName = getModelName(attr.references.model);
|
|
899
908
|
const referencedCustomModelName = tables[referencedOriginalModelName]?.modelName || referencedOriginalModelName;
|
|
900
|
-
let action = "
|
|
901
|
-
if (attr.references.onDelete === "
|
|
909
|
+
let action = "NoAction";
|
|
910
|
+
if (attr.references.onDelete === "cascade") action = "Cascade";
|
|
911
|
+
else if (attr.references.onDelete === "no action") action = "NoAction";
|
|
902
912
|
else if (attr.references.onDelete === "set null") action = "SetNull";
|
|
903
913
|
else if (attr.references.onDelete === "set default") action = "SetDefault";
|
|
904
914
|
else if (attr.references.onDelete === "restrict") action = "Restrict";
|
package/dist/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { i as getPackageInfo, n as generateSchema } from "./generators-
|
|
2
|
+
import { i as getPackageInfo, n as generateSchema } from "./generators-DXOqBlgH.mjs";
|
|
3
3
|
import { Command } from "commander";
|
|
4
4
|
import fs, { existsSync, readFileSync } from "node:fs";
|
|
5
5
|
import fs$1 from "node:fs/promises";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pecunia-cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"main": "./dist/index.mjs",
|
|
@@ -64,8 +64,8 @@
|
|
|
64
64
|
"dotenv": "^17.2.2",
|
|
65
65
|
"drizzle-orm": "^0.33.0",
|
|
66
66
|
"open": "^10.2.0",
|
|
67
|
-
"pecunia-core": "^0.1.
|
|
68
|
-
"pecunia-root": "^0.2.
|
|
67
|
+
"pecunia-core": "^0.1.3",
|
|
68
|
+
"pecunia-root": "^0.2.2",
|
|
69
69
|
"pg": "^8.16.3",
|
|
70
70
|
"prettier": "^3.6.2",
|
|
71
71
|
"prompts": "^2.4.2",
|