arkormx 2.0.0-next.4 → 2.0.0-next.5
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/cli.mjs +16 -10
- package/dist/index.cjs +15 -6
- package/dist/index.d.cts +2 -2
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +15 -6
- package/package.json +1 -1
package/dist/cli.mjs
CHANGED
|
@@ -3,10 +3,10 @@ import { existsSync, mkdirSync, readFileSync, readdirSync, rmSync, writeFileSync
|
|
|
3
3
|
import { dirname, extname, join, resolve } from "node:path";
|
|
4
4
|
import { spawnSync } from "node:child_process";
|
|
5
5
|
import { str } from "@h3ravel/support";
|
|
6
|
-
import { createHash } from "node:crypto";
|
|
7
6
|
import path, { dirname as dirname$1, extname as extname$1, join as join$1, relative } from "path";
|
|
8
7
|
import { copyFileSync, existsSync as existsSync$1, mkdirSync as mkdirSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, rmSync as rmSync$1, writeFileSync as writeFileSync$1 } from "fs";
|
|
9
8
|
import { AsyncLocalStorage } from "async_hooks";
|
|
9
|
+
import { createHash } from "node:crypto";
|
|
10
10
|
import { createJiti } from "@rexxars/jiti";
|
|
11
11
|
import { pathToFileURL } from "node:url";
|
|
12
12
|
import { createRequire } from "module";
|
|
@@ -1686,9 +1686,6 @@ const getPersistedTableMetadata = (table, options = {}) => {
|
|
|
1686
1686
|
}, {})
|
|
1687
1687
|
};
|
|
1688
1688
|
};
|
|
1689
|
-
const getPersistedEnumMap = (table, options = {}) => {
|
|
1690
|
-
return getPersistedTableMetadata(table, options).enums;
|
|
1691
|
-
};
|
|
1692
1689
|
const applyMappedColumn = (tableColumns, column, features, table) => {
|
|
1693
1690
|
if (typeof column.map === "string" && column.map.trim().length > 0 && column.map !== column.name) {
|
|
1694
1691
|
if (!features.persistedColumnMappings) throw buildPersistedFeatureDisabledError("persistedColumnMappings", table);
|
|
@@ -2544,21 +2541,30 @@ var CliApp = class {
|
|
|
2544
2541
|
skipped
|
|
2545
2542
|
};
|
|
2546
2543
|
}
|
|
2547
|
-
|
|
2548
|
-
const
|
|
2544
|
+
applyPersistedFieldMetadata(structure) {
|
|
2545
|
+
const persistedMetadata = getPersistedTableMetadata(structure.table, {
|
|
2549
2546
|
features: resolvePersistedMetadataFeatures(this.getConfig("features")),
|
|
2550
2547
|
strict: true
|
|
2551
2548
|
});
|
|
2552
|
-
if (Object.keys(
|
|
2549
|
+
if (Object.keys(persistedMetadata.columns).length === 0 && Object.keys(persistedMetadata.enums).length === 0) return structure;
|
|
2550
|
+
const attributesByColumn = Object.entries(persistedMetadata.columns).reduce((all, [attribute, column]) => {
|
|
2551
|
+
all[column] = attribute;
|
|
2552
|
+
return all;
|
|
2553
|
+
}, {});
|
|
2553
2554
|
return {
|
|
2554
2555
|
...structure,
|
|
2555
2556
|
fields: structure.fields.map((field) => {
|
|
2556
|
-
const
|
|
2557
|
-
|
|
2557
|
+
const logicalName = attributesByColumn[field.name] ?? field.name;
|
|
2558
|
+
const enumValues = persistedMetadata.enums[logicalName] ?? persistedMetadata.enums[field.name];
|
|
2559
|
+
if (!enumValues || enumValues.length === 0) return {
|
|
2560
|
+
...field,
|
|
2561
|
+
name: logicalName
|
|
2562
|
+
};
|
|
2558
2563
|
const enumType = getPersistedEnumTsType(enumValues);
|
|
2559
2564
|
const isArray = /^Array<.+>$/.test(field.type);
|
|
2560
2565
|
return {
|
|
2561
2566
|
...field,
|
|
2567
|
+
name: logicalName,
|
|
2562
2568
|
type: isArray ? `Array<${enumType}>` : enumType
|
|
2563
2569
|
};
|
|
2564
2570
|
})
|
|
@@ -2723,7 +2729,7 @@ var CliApp = class {
|
|
|
2723
2729
|
}, /* @__PURE__ */ new Map());
|
|
2724
2730
|
const discovered = await adapter.introspectModels({ tables: [...new Set([...sources.values()].map((source) => source.table))] });
|
|
2725
2731
|
const structuresByTable = new Map(discovered.map((model) => {
|
|
2726
|
-
const enriched = this.
|
|
2732
|
+
const enriched = this.applyPersistedFieldMetadata(model);
|
|
2727
2733
|
return [enriched.table, enriched];
|
|
2728
2734
|
}));
|
|
2729
2735
|
const result = this.syncModelFiles(modelFiles, (filePath) => {
|
package/dist/index.cjs
CHANGED
|
@@ -4193,21 +4193,30 @@ var CliApp = class {
|
|
|
4193
4193
|
skipped
|
|
4194
4194
|
};
|
|
4195
4195
|
}
|
|
4196
|
-
|
|
4197
|
-
const
|
|
4196
|
+
applyPersistedFieldMetadata(structure) {
|
|
4197
|
+
const persistedMetadata = getPersistedTableMetadata(structure.table, {
|
|
4198
4198
|
features: resolvePersistedMetadataFeatures(this.getConfig("features")),
|
|
4199
4199
|
strict: true
|
|
4200
4200
|
});
|
|
4201
|
-
if (Object.keys(
|
|
4201
|
+
if (Object.keys(persistedMetadata.columns).length === 0 && Object.keys(persistedMetadata.enums).length === 0) return structure;
|
|
4202
|
+
const attributesByColumn = Object.entries(persistedMetadata.columns).reduce((all, [attribute, column]) => {
|
|
4203
|
+
all[column] = attribute;
|
|
4204
|
+
return all;
|
|
4205
|
+
}, {});
|
|
4202
4206
|
return {
|
|
4203
4207
|
...structure,
|
|
4204
4208
|
fields: structure.fields.map((field) => {
|
|
4205
|
-
const
|
|
4206
|
-
|
|
4209
|
+
const logicalName = attributesByColumn[field.name] ?? field.name;
|
|
4210
|
+
const enumValues = persistedMetadata.enums[logicalName] ?? persistedMetadata.enums[field.name];
|
|
4211
|
+
if (!enumValues || enumValues.length === 0) return {
|
|
4212
|
+
...field,
|
|
4213
|
+
name: logicalName
|
|
4214
|
+
};
|
|
4207
4215
|
const enumType = getPersistedEnumTsType(enumValues);
|
|
4208
4216
|
const isArray = /^Array<.+>$/.test(field.type);
|
|
4209
4217
|
return {
|
|
4210
4218
|
...field,
|
|
4219
|
+
name: logicalName,
|
|
4211
4220
|
type: isArray ? `Array<${enumType}>` : enumType
|
|
4212
4221
|
};
|
|
4213
4222
|
})
|
|
@@ -4372,7 +4381,7 @@ var CliApp = class {
|
|
|
4372
4381
|
}, /* @__PURE__ */ new Map());
|
|
4373
4382
|
const discovered = await adapter.introspectModels({ tables: [...new Set([...sources.values()].map((source) => source.table))] });
|
|
4374
4383
|
const structuresByTable = new Map(discovered.map((model) => {
|
|
4375
|
-
const enriched = this.
|
|
4384
|
+
const enriched = this.applyPersistedFieldMetadata(model);
|
|
4376
4385
|
return [enriched.table, enriched];
|
|
4377
4386
|
}));
|
|
4378
4387
|
const result = this.syncModelFiles(modelFiles, (filePath) => {
|
package/dist/index.d.cts
CHANGED
|
@@ -3324,13 +3324,13 @@ declare class CliApp {
|
|
|
3324
3324
|
private syncPrismaEnumImports;
|
|
3325
3325
|
private parseModelSyncSource;
|
|
3326
3326
|
private syncModelFiles;
|
|
3327
|
-
private
|
|
3327
|
+
private applyPersistedFieldMetadata;
|
|
3328
3328
|
/**
|
|
3329
3329
|
* Parse Prisma enum definitions from a schema and return their member names.
|
|
3330
3330
|
*
|
|
3331
3331
|
* @param schema The Prisma schema source.
|
|
3332
3332
|
* @returns A map of enum names to their declared member names.
|
|
3333
|
-
|
|
3333
|
+
*/
|
|
3334
3334
|
private parsePrismaEnums;
|
|
3335
3335
|
/**
|
|
3336
3336
|
* Resolve the generated TypeScript declaration type for a Prisma field.
|
package/dist/index.d.mts
CHANGED
|
@@ -3324,13 +3324,13 @@ declare class CliApp {
|
|
|
3324
3324
|
private syncPrismaEnumImports;
|
|
3325
3325
|
private parseModelSyncSource;
|
|
3326
3326
|
private syncModelFiles;
|
|
3327
|
-
private
|
|
3327
|
+
private applyPersistedFieldMetadata;
|
|
3328
3328
|
/**
|
|
3329
3329
|
* Parse Prisma enum definitions from a schema and return their member names.
|
|
3330
3330
|
*
|
|
3331
3331
|
* @param schema The Prisma schema source.
|
|
3332
3332
|
* @returns A map of enum names to their declared member names.
|
|
3333
|
-
|
|
3333
|
+
*/
|
|
3334
3334
|
private parsePrismaEnums;
|
|
3335
3335
|
/**
|
|
3336
3336
|
* Resolve the generated TypeScript declaration type for a Prisma field.
|
package/dist/index.mjs
CHANGED
|
@@ -4164,21 +4164,30 @@ var CliApp = class {
|
|
|
4164
4164
|
skipped
|
|
4165
4165
|
};
|
|
4166
4166
|
}
|
|
4167
|
-
|
|
4168
|
-
const
|
|
4167
|
+
applyPersistedFieldMetadata(structure) {
|
|
4168
|
+
const persistedMetadata = getPersistedTableMetadata(structure.table, {
|
|
4169
4169
|
features: resolvePersistedMetadataFeatures(this.getConfig("features")),
|
|
4170
4170
|
strict: true
|
|
4171
4171
|
});
|
|
4172
|
-
if (Object.keys(
|
|
4172
|
+
if (Object.keys(persistedMetadata.columns).length === 0 && Object.keys(persistedMetadata.enums).length === 0) return structure;
|
|
4173
|
+
const attributesByColumn = Object.entries(persistedMetadata.columns).reduce((all, [attribute, column]) => {
|
|
4174
|
+
all[column] = attribute;
|
|
4175
|
+
return all;
|
|
4176
|
+
}, {});
|
|
4173
4177
|
return {
|
|
4174
4178
|
...structure,
|
|
4175
4179
|
fields: structure.fields.map((field) => {
|
|
4176
|
-
const
|
|
4177
|
-
|
|
4180
|
+
const logicalName = attributesByColumn[field.name] ?? field.name;
|
|
4181
|
+
const enumValues = persistedMetadata.enums[logicalName] ?? persistedMetadata.enums[field.name];
|
|
4182
|
+
if (!enumValues || enumValues.length === 0) return {
|
|
4183
|
+
...field,
|
|
4184
|
+
name: logicalName
|
|
4185
|
+
};
|
|
4178
4186
|
const enumType = getPersistedEnumTsType(enumValues);
|
|
4179
4187
|
const isArray = /^Array<.+>$/.test(field.type);
|
|
4180
4188
|
return {
|
|
4181
4189
|
...field,
|
|
4190
|
+
name: logicalName,
|
|
4182
4191
|
type: isArray ? `Array<${enumType}>` : enumType
|
|
4183
4192
|
};
|
|
4184
4193
|
})
|
|
@@ -4343,7 +4352,7 @@ var CliApp = class {
|
|
|
4343
4352
|
}, /* @__PURE__ */ new Map());
|
|
4344
4353
|
const discovered = await adapter.introspectModels({ tables: [...new Set([...sources.values()].map((source) => source.table))] });
|
|
4345
4354
|
const structuresByTable = new Map(discovered.map((model) => {
|
|
4346
|
-
const enriched = this.
|
|
4355
|
+
const enriched = this.applyPersistedFieldMetadata(model);
|
|
4347
4356
|
return [enriched.table, enriched];
|
|
4348
4357
|
}));
|
|
4349
4358
|
const result = this.syncModelFiles(modelFiles, (filePath) => {
|