pecunia-cli 0.1.8 → 0.1.9
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-D5zLfxo1.mjs";
|
|
2
2
|
|
|
3
3
|
export { adapters, generateDrizzleSchema, generateKyselySchema, generatePrismaSchema, generateSchema };
|
|
@@ -220,54 +220,60 @@ const generateDrizzleSchema = async ({ options, file, adapter }) => {
|
|
|
220
220
|
const modelName = getModelName(tableKey);
|
|
221
221
|
const oneRelations = [];
|
|
222
222
|
const manyRelations = [];
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
223
|
+
if (table.relations) for (const [relationName, relationDef] of Object.entries(table.relations)) {
|
|
224
|
+
const referencedModelName = getModelName(relationDef.model);
|
|
225
|
+
const foreignKeyField = table.fields[relationDef.foreignKey];
|
|
226
|
+
if (relationDef.kind === "one") {
|
|
227
|
+
if (foreignKeyField?.references) {
|
|
228
|
+
const fieldRef = `${modelName}.${getFieldName({
|
|
229
|
+
model: tableKey,
|
|
230
|
+
field: relationDef.foreignKey
|
|
231
|
+
})}`;
|
|
232
|
+
const referenceRef = `${referencedModelName}.${getFieldName({
|
|
233
|
+
model: relationDef.model,
|
|
234
|
+
field: foreignKeyField.references.field || "id"
|
|
235
|
+
})}`;
|
|
236
|
+
oneRelations.push({
|
|
237
|
+
key: relationName,
|
|
238
|
+
model: referencedModelName,
|
|
239
|
+
type: "one",
|
|
240
|
+
reference: {
|
|
241
|
+
field: fieldRef,
|
|
242
|
+
references: referenceRef,
|
|
243
|
+
fieldName: relationDef.foreignKey
|
|
244
|
+
}
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
} else if (relationDef.kind === "many") {
|
|
248
|
+
const referencedTable = tables[relationDef.model];
|
|
249
|
+
if (referencedTable) {
|
|
250
|
+
const fkField = Object.entries(referencedTable.fields).find(([_, field]) => field.references && (field.references.model === tableKey || field.references.model === getModelName(tableKey)));
|
|
251
|
+
if (fkField) {
|
|
252
|
+
const [fkFieldName] = fkField;
|
|
253
|
+
const fieldRef = `${referencedModelName}.${getFieldName({
|
|
254
|
+
model: relationDef.model,
|
|
255
|
+
field: fkFieldName
|
|
256
|
+
})}`;
|
|
257
|
+
const referenceRef = `${modelName}.${getFieldName({
|
|
258
|
+
model: tableKey,
|
|
259
|
+
field: "id"
|
|
260
|
+
})}`;
|
|
261
|
+
manyRelations.push({
|
|
262
|
+
key: relationName,
|
|
263
|
+
model: referencedModelName,
|
|
264
|
+
type: "many",
|
|
265
|
+
reference: {
|
|
266
|
+
field: fieldRef,
|
|
267
|
+
references: referenceRef,
|
|
268
|
+
fieldName: fkFieldName
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
} else manyRelations.push({
|
|
272
|
+
key: relationName,
|
|
273
|
+
model: referencedModelName,
|
|
274
|
+
type: "many"
|
|
275
|
+
});
|
|
244
276
|
}
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
const otherModels = Object.entries(tables).filter(([otherName]) => otherName !== tableKey);
|
|
248
|
-
const modelRelationsMap = /* @__PURE__ */ new Map();
|
|
249
|
-
for (const [otherModelName, otherTable] of otherModels) {
|
|
250
|
-
const foreignKeysPointingHere = Object.entries(otherTable.fields).filter(([_, field]) => field.references?.model === tableKey || field.references?.model === getModelName(tableKey));
|
|
251
|
-
if (foreignKeysPointingHere.length === 0) continue;
|
|
252
|
-
const hasUnique = foreignKeysPointingHere.some(([_, field]) => !!field.unique);
|
|
253
|
-
const hasMany$1 = foreignKeysPointingHere.some(([_, field]) => !field.unique);
|
|
254
|
-
modelRelationsMap.set(otherModelName, {
|
|
255
|
-
modelName: otherModelName,
|
|
256
|
-
hasUnique,
|
|
257
|
-
hasMany: hasMany$1
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
for (const { modelName: otherModelName, hasMany: hasMany$1 } of modelRelationsMap.values()) {
|
|
261
|
-
const relationType = hasMany$1 ? "many" : "one";
|
|
262
|
-
let relationKey = getModelName(otherModelName);
|
|
263
|
-
if (!adapter.options?.adapterConfig?.usePlural && relationType === "many") relationKey = `${relationKey}s`;
|
|
264
|
-
if (!manyRelationsSet.has(relationKey)) {
|
|
265
|
-
manyRelationsSet.add(relationKey);
|
|
266
|
-
manyRelations.push({
|
|
267
|
-
key: relationKey,
|
|
268
|
-
model: getModelName(otherModelName),
|
|
269
|
-
type: relationType
|
|
270
|
-
});
|
|
271
277
|
}
|
|
272
278
|
}
|
|
273
279
|
const relationsByModel = /* @__PURE__ */ new Map();
|
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-D5zLfxo1.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.1.
|
|
3
|
+
"version": "0.1.9",
|
|
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.1
|
|
67
|
+
"pecunia-core": "^0.1.2",
|
|
68
|
+
"pecunia-root": "^0.2.1",
|
|
69
69
|
"pg": "^8.16.3",
|
|
70
70
|
"prettier": "^3.6.2",
|
|
71
71
|
"prompts": "^2.4.2",
|