MCPcopy
hub / github.com/drizzle-team/drizzle-orm / testColumnsResolver

Function testColumnsResolver

drizzle-kit/tests/schemaDiffer.ts:400–462  ·  view source on GitHub ↗
(renames: Set<string>)

Source from the content-addressed store, hash-verified

398};
399
400export const testColumnsResolver = (renames: Set<string>) =>
401async (
402 input: ColumnsResolverInput<Column>,
403): Promise<ColumnsResolverOutput<Column>> => {
404 try {
405 if (
406 input.created.length === 0
407 || input.deleted.length === 0
408 || renames.size === 0
409 ) {
410 return {
411 tableName: input.tableName,
412 schema: input.schema,
413 created: input.created,
414 renamed: [],
415 deleted: input.deleted,
416 };
417 }
418
419 let createdColumns = [...input.created];
420 let deletedColumns = [...input.deleted];
421
422 const renamed: { from: Column; to: Column }[] = [];
423
424 const schema = input.schema || 'public';
425
426 for (let rename of renames) {
427 const [from, to] = rename.split('->');
428
429 const idxFrom = deletedColumns.findIndex((it) => {
430 return `${schema}.${input.tableName}.${it.name}` === from;
431 });
432
433 if (idxFrom >= 0) {
434 const idxTo = createdColumns.findIndex((it) => {
435 return `${schema}.${input.tableName}.${it.name}` === to;
436 });
437
438 renamed.push({
439 from: deletedColumns[idxFrom],
440 to: createdColumns[idxTo],
441 });
442
443 delete createdColumns[idxTo];
444 delete deletedColumns[idxFrom];
445
446 createdColumns = createdColumns.filter(Boolean);
447 deletedColumns = deletedColumns.filter(Boolean);
448 }
449 }
450
451 return {
452 tableName: input.tableName,
453 schema: input.schema,
454 created: createdColumns,
455 deleted: deletedColumns,
456 renamed,
457 };

Callers 15

diffTestSchemasPushFunction · 0.85
applyPgDiffsFunction · 0.85
diffTestSchemasFunction · 0.85
diffTestSchemasPushMysqlFunction · 0.85
applyMySqlDiffsFunction · 0.85
diffTestSchemasMysqlFunction · 0.85
applySingleStoreDiffsFunction · 0.85
applySqliteDiffsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected