From 388a705273aa744dd040644f898f0fce4d73277b Mon Sep 17 00:00:00 2001 From: Rory& Date: Wed, 17 Jun 2026 01:23:44 +0200 Subject: [PATCH] Try to signify imported entities for require --- scripts/validateImports.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/scripts/validateImports.cs b/scripts/validateImports.cs index a59e4a3a6..ac3019238 100755 --- a/scripts/validateImports.cs +++ b/scripts/validateImports.cs @@ -28,8 +28,8 @@ foreach (var f in ReadDirRecursive("./src")) else await foreach (var import in GetImports(f)) { - // if (import.ImportSourceType == ImportSourceType.Npm) - // Console.WriteLine(import.ToJson(indent: false)); + // These files are completely idempotent and safe to import + if (import.ImportSource.EndsWith("util/util/ProcessLifeCycle") && import.ImportEntities.SequenceEqual(["ProcessLifecycle"])) continue; // file level if (f == "./src/schemas/Validator.ts") @@ -37,6 +37,11 @@ foreach (var f in ReadDirRecursive("./src")) if (import is not { ImportSource: "ajv" or "ajv-formats" or "node:fs" or "node:path" }) LogError(f, import); } + else if (f == "./src/database/Database.ts") + { + if (import is not { ImportSource: "picocolors" or "dotenv" or "node:fs" or "node:path" }) + LogError(f, import); + } //directory level else if (f.StartsWith("./src/extensions")) @@ -93,7 +98,7 @@ async IAsyncEnumerable GetImports(string path) RegexOptions.Multiline ); var basicRequireRegex = new Regex( - @"require\(""(?.*)""\)", + @"require\(""(?.*)""\)(\.(?\w+))?", RegexOptions.Multiline ); // Console.WriteLine(basicImportRegex); @@ -121,7 +126,9 @@ async IAsyncEnumerable GetImports(string path) { IsRequire = isRequire, IsTypeImport = m.Groups.ContainsKey("typeSpecifier") && m.Groups["typeSpecifier"].Success, - ImportEntities = m.Groups["entities"].Value.ReplaceLineEndings("").Replace(" ", "").Split(","), + ImportEntities = isRequire + ? [m.Groups["entities"].Value.ReplaceLineEndings("")] + : m.Groups["entities"].Value.ReplaceLineEndings("").Replace(" ", "").Split(","), ImportSource = m.Groups["source"].Value, ImportSourceType = ClassifyImportSourceType(m.Groups["source"].Value), Line = fileContents[..(m.Index)].CountInstances("\n"), @@ -160,7 +167,7 @@ struct ImportReference $"{ConsoleUtils.ColoredString(sourceType.GetFriendlyName(), sourceTypeClr?.R ?? 255, sourceTypeClr?.G ?? 255, sourceTypeClr?.B ?? 255)} " + $"{(IsTypeImport ? ConsoleUtils.ColoredString("type ", 255, 127, 0) : "")}{(IsRequire ? ConsoleUtils.ColoredString("require", 255, 255, 0) : ConsoleUtils.ColoredString("import", 0, 255, 0))} " + $"from {ConsoleUtils.ColoredString(ImportSource, sourceTypeClr?.R ?? 255, sourceTypeClr?.G ?? 255, sourceTypeClr?.B ?? 255)}, " - + $"obtaining {(IsRequire ? "" : string.Join(", ", ImportEntities.Select(x => ConsoleUtils.ColoredString(x, 150, 150, 150))))}"; + + $"obtaining {(string.Join(", ", ImportEntities.Select(x => ConsoleUtils.ColoredString(x, 150, 150, 150))))}"; } }