@ronin/cli
Advanced tools
Comparing version 0.2.26 to 0.2.27-corny-ron-1099-2-experimental-99
@@ -56,5 +56,2 @@ // src/index.ts | ||
}; | ||
var setFieldQuery = (modelSlug, fieldSlug, fieldTo) => { | ||
return `alter.model("${modelSlug}").alter.field("${fieldSlug}").to(${JSON.stringify(fieldTo)})`; | ||
}; | ||
var dropFieldQuery = (modelSlug, fieldSlug) => { | ||
@@ -78,2 +75,19 @@ return `alter.model("${modelSlug}").drop.field("${fieldSlug}")`; | ||
}; | ||
var createTempColumnQuery = (modelSlug, field, _indexes, _triggers) => { | ||
const queries = []; | ||
queries.push( | ||
createFieldQuery(modelSlug, { | ||
...field, | ||
slug: `${RONIN_SCHEMA_TEMP_SUFFIX}${field.slug}` | ||
}) | ||
); | ||
queries.push( | ||
`set.${modelSlug}.to.${RONIN_SCHEMA_TEMP_SUFFIX}${field.slug}(f => f.${field.slug})` | ||
); | ||
queries.push(dropFieldQuery(modelSlug, field.slug)); | ||
queries.push( | ||
renameFieldQuery(modelSlug, `${RONIN_SCHEMA_TEMP_SUFFIX}${field.slug}`, field.slug) | ||
); | ||
return queries; | ||
}; | ||
var serialize = (value) => { | ||
@@ -117,3 +131,3 @@ if (typeof value === "string") { | ||
let fieldsToDelete = fieldsToDrop(definedFields, existingFields); | ||
const queriesForAdjustment = fieldsToAdjust(definedFields, existingFields, modelSlug); | ||
const queriesForAdjustment = fieldsToAdjust(definedFields, existingFields); | ||
if (fieldsToBeRenamed.length > 0) { | ||
@@ -155,4 +169,10 @@ for (const field of fieldsToBeRenamed) { | ||
diff.push(...deleteFields(fieldsToDelete, modelSlug)); | ||
if (queriesForAdjustment) | ||
diff.push(...adjustFields(modelSlug, definedFields, indexes, triggers)); | ||
for (const field of queriesForAdjustment || []) { | ||
const existingField = existingFields.find((f) => f.slug === field.slug); | ||
if (field.unique || field.required || existingField?.unique) { | ||
diff.push(...adjustFields(modelSlug, definedFields, indexes, triggers)); | ||
} else { | ||
diff.push(...createTempColumnQuery(modelSlug, field, indexes, triggers)); | ||
} | ||
} | ||
return diff; | ||
@@ -183,4 +203,3 @@ }; | ||
}; | ||
var fieldsToAdjust = (definedFields, existingFields, modelSlug) => { | ||
const tempTableSlug = `${RONIN_SCHEMA_TEMP_SUFFIX}${modelSlug}`; | ||
var fieldsToAdjust = (definedFields, existingFields) => { | ||
const diff = []; | ||
@@ -192,11 +211,4 @@ let needsAdjustment = false; | ||
needsAdjustment = true; | ||
diff.push(local); | ||
} | ||
const adjustedFieldValue = { | ||
type: local.type, | ||
name: local.name, | ||
unique: local.unique, | ||
required: local.required, | ||
...local.type === "number" && { increment: local.increment } | ||
}; | ||
diff.push(setFieldQuery(tempTableSlug, local.slug, adjustedFieldValue)); | ||
} | ||
@@ -548,4 +560,3 @@ return needsAdjustment ? diff : void 0; | ||
definedModel, | ||
existingModel || {}, | ||
definedModel.slug | ||
existingModel || {} | ||
); | ||
@@ -591,5 +602,5 @@ diff.push( | ||
}; | ||
var modelWillBeRecreated = (definedModel, existingModel, slug) => { | ||
var modelWillBeRecreated = (definedModel, existingModel) => { | ||
if (!existingModel) return false; | ||
return (fieldsToAdjust(definedModel.fields || [], existingModel.fields || [], slug) ?? []).length > 0; | ||
return (fieldsToAdjust(definedModel.fields || [], existingModel.fields || []) ?? []).length > 0; | ||
}; | ||
@@ -602,4 +613,3 @@ var indexesToRecreate = (definedModels, existingModels) => { | ||
definedModel, | ||
existingModel || {}, | ||
definedModel.slug | ||
existingModel || {} | ||
); | ||
@@ -1339,2 +1349,3 @@ diff.push( | ||
var printVersion = (version) => { | ||
spinner.stop(); | ||
console.log(version); | ||
@@ -1341,0 +1352,0 @@ process.exit(0); |
{ | ||
"name": "@ronin/cli", | ||
"version": "0.2.26", | ||
"version": "0.2.27-corny-ron-1099-2-experimental-99", | ||
"type": "module", | ||
@@ -5,0 +5,0 @@ "description": "The command-line interface for RONIN.", |
63226
1405