mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 22:34:56 +00:00
72 lines
2.3 KiB
Lua
72 lines
2.3 KiB
Lua
local validate_structure = require("validate_structure")
|
|
local validate_scripts_structure = require("validate_scripts_structure")
|
|
local validate_static_content = require("validate_static_content")
|
|
local validate_naming_conventions = require("validate_naming_conventions")
|
|
local validate_test_structure = require("validate_test_structure")
|
|
|
|
--- Validates complete package structure
|
|
---@param package_path string Path to the package
|
|
---@param metadata Metadata Package metadata
|
|
---@return ValidationResult results Validation results
|
|
local function validate_package_structure(package_path, metadata)
|
|
local results = {
|
|
valid = true,
|
|
errors = {},
|
|
warnings = {}
|
|
}
|
|
|
|
-- Basic structure
|
|
local struct_errors, struct_warnings = validate_structure(package_path)
|
|
for _, err in ipairs(struct_errors) do
|
|
table.insert(results.errors, err)
|
|
results.valid = false
|
|
end
|
|
for _, warn in ipairs(struct_warnings) do
|
|
table.insert(results.warnings, warn)
|
|
end
|
|
|
|
-- Scripts structure
|
|
local script_errors, script_warnings = validate_scripts_structure(package_path, metadata)
|
|
for _, err in ipairs(script_errors) do
|
|
table.insert(results.errors, err)
|
|
results.valid = false
|
|
end
|
|
for _, warn in ipairs(script_warnings) do
|
|
table.insert(results.warnings, warn)
|
|
end
|
|
|
|
-- Static content
|
|
local static_errors, static_warnings = validate_static_content(package_path, metadata)
|
|
for _, err in ipairs(static_errors) do
|
|
table.insert(results.errors, err)
|
|
results.valid = false
|
|
end
|
|
for _, warn in ipairs(static_warnings) do
|
|
table.insert(results.warnings, warn)
|
|
end
|
|
|
|
-- Naming conventions
|
|
local naming_errors, naming_warnings = validate_naming_conventions(package_path, metadata)
|
|
for _, err in ipairs(naming_errors) do
|
|
table.insert(results.errors, err)
|
|
results.valid = false
|
|
end
|
|
for _, warn in ipairs(naming_warnings) do
|
|
table.insert(results.warnings, warn)
|
|
end
|
|
|
|
-- Test structure (only if lua_test is a devDependency)
|
|
local test_errors, test_warnings = validate_test_structure(package_path, metadata)
|
|
for _, err in ipairs(test_errors) do
|
|
table.insert(results.errors, err)
|
|
results.valid = false
|
|
end
|
|
for _, warn in ipairs(test_warnings) do
|
|
table.insert(results.warnings, warn)
|
|
end
|
|
|
|
return results
|
|
end
|
|
|
|
return validate_package_structure
|