prismaql
Version:
A powerful tool for managing and editing Prisma schema files using a SQL-like DSL.
30 lines • 1.34 kB
JavaScript
import { handlerResponse } from "../../handler-registries/handler-registry.js";
export const deleteField = (prismaState, data) => {
const { args } = data;
const response = handlerResponse(data);
if (!args?.fields || !args.fields.length) {
return response.error("No field name provided. Example: DELETE FIELD ->[FieldName] IN ->[ModelName]");
}
const modelName = args?.models?.[0];
if (!modelName) {
return response.error("No model name provided. Example: DELETE FIELD FieldName IN ->[ModelName]");
}
const fieldName = args.fields[0];
try {
const builder = prismaState.builder;
const prevModel = builder.findByType("model", { name: modelName });
if (!prevModel) {
return response.error(`Model ${modelName} does not exist`);
}
if (!prevModel.properties.find((prop) => prop.type === "field" && prop.name === fieldName)) {
return response.error(`Field ${fieldName} does not exist in model ${modelName}`);
}
const model = builder.model(modelName);
model.removeField(fieldName);
return response.result(`Field ${modelName} deleted successfully`);
}
catch (error) {
return response.error(`Error deleting field: ${error.message}`);
}
};
//# sourceMappingURL=delete-field.js.map