aboutsummaryrefslogtreecommitdiff
path: root/packages/db/src/core/errors.ts
blob: 4ff477219a3b8b485590a42cd5596bb148a7bc07 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import { bold, cyan, red } from 'kleur/colors';

export const MISSING_SESSION_ID_ERROR = `${red('▶ Login required!')}

  To authenticate with Astro Studio, run
  ${cyan('astro db login')}\n`;

export const MISSING_PROJECT_ID_ERROR = `${red('▶ Directory not linked.')}

  To link this directory to an Astro Studio project, run
  ${cyan('astro db link')}\n`;

export const MISSING_EXECUTE_PATH_ERROR = `${red(
	'▶ No file path provided.'
)} Provide a path by running ${cyan('astro db execute <path>')}\n`;

export const RENAME_TABLE_ERROR = (oldTable: string, newTable: string) => {
	return (
		red('▶ Potential table rename detected: ' + oldTable + ', ' + newTable) +
		`\n  You cannot add and remove tables in the same schema update batch.` +
		`\n  To resolve, add a 'deprecated: true' flag to '${oldTable}' instead.`
	);
};

export const RENAME_COLUMN_ERROR = (oldSelector: string, newSelector: string) => {
	return (
		red('▶ Potential column rename detected: ' + oldSelector + ', ' + newSelector) +
		`\n  You cannot add and remove columns in the same table.` +
		`\n  To resolve, add a 'deprecated: true' flag to '${oldSelector}' instead.`
	);
};

export const FILE_NOT_FOUND_ERROR = (path: string) =>
	`${red('▶ File not found:')} ${bold(path)}\n`;

export const SHELL_QUERY_MISSING_ERROR = `${red(
	'▶ Please provide a query to execute using the --query flag.'
)}\n`;

export const SEED_ERROR = (error: string) => {
	return `${red(`Error while seeding database:`)}\n\n${error}`;
};

export const SEED_DEFAULT_EXPORT_ERROR = (fileName: string) => {
	return (
		red('Error while seeding database:') +
		`\n\nMissing default function export in ${bold(fileName)}`
	);
};

export const REFERENCE_DNE_ERROR = (columnName: string) => {
	return `Column ${bold(
		columnName
	)} references a table that does not exist. Did you apply the referenced table to the \`tables\` object in your db config?`;
};

export const FOREIGN_KEY_DNE_ERROR = (tableName: string) => {
	return `Table ${bold(
		tableName
	)} references a table that does not exist. Did you apply the referenced table to the \`tables\` object in your db config?`;
};

export const FOREIGN_KEY_REFERENCES_LENGTH_ERROR = (tableName: string) => {
	return `Foreign key on ${bold(
		tableName
	)} is misconfigured. \`columns\` and \`references\` must be the same length.`;
};

export const FOREIGN_KEY_REFERENCES_EMPTY_ERROR = (tableName: string) => {
	return `Foreign key on ${bold(
		tableName
	)} is misconfigured. \`references\` array cannot be empty.`;
};