opencroc 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/index.js +873 -17
- package/dist/cli/index.js.map +1 -1
- package/dist/index.js +34 -13
- package/dist/index.js.map +1 -1
- package/dist/web/index.html +90 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1767,11 +1767,32 @@ function createPipeline(config) {
|
|
|
1767
1767
|
validationErrors: [],
|
|
1768
1768
|
duration: 0
|
|
1769
1769
|
};
|
|
1770
|
+
const backendRoot = path7.resolve(config.backendRoot);
|
|
1771
|
+
const findDir = (name) => {
|
|
1772
|
+
const candidates = [
|
|
1773
|
+
path7.join(backendRoot, name),
|
|
1774
|
+
// ./models
|
|
1775
|
+
path7.join(backendRoot, "src", name),
|
|
1776
|
+
// ./src/models
|
|
1777
|
+
path7.join(backendRoot, "backend", "src", name),
|
|
1778
|
+
// ./backend/src/models
|
|
1779
|
+
path7.join(backendRoot, "backend", name),
|
|
1780
|
+
// ./backend/models
|
|
1781
|
+
path7.join(backendRoot, "server", "src", name),
|
|
1782
|
+
// ./server/src/models
|
|
1783
|
+
path7.join(backendRoot, "app", name)
|
|
1784
|
+
// ./app/models
|
|
1785
|
+
];
|
|
1786
|
+
for (const c of candidates) {
|
|
1787
|
+
if (fs5.existsSync(c)) return c;
|
|
1788
|
+
}
|
|
1789
|
+
return null;
|
|
1790
|
+
};
|
|
1791
|
+
const modelsRoot = findDir("models");
|
|
1792
|
+
const controllersRoot = findDir("controllers");
|
|
1770
1793
|
if (activeSteps.includes("scan")) {
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
if (fs5.existsSync(modelsDir)) {
|
|
1774
|
-
const dirs = fs5.readdirSync(modelsDir, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
|
|
1794
|
+
if (modelsRoot) {
|
|
1795
|
+
const dirs = fs5.readdirSync(modelsRoot, { withFileTypes: true }).filter((d) => d.isDirectory()).map((d) => d.name);
|
|
1775
1796
|
const moduleFilter = config.modules;
|
|
1776
1797
|
for (const dir of dirs) {
|
|
1777
1798
|
if (moduleFilter && !moduleFilter.includes(dir)) continue;
|
|
@@ -1780,20 +1801,20 @@ function createPipeline(config) {
|
|
|
1780
1801
|
if (result.modules.length === 0) {
|
|
1781
1802
|
result.modules.push("default");
|
|
1782
1803
|
} else {
|
|
1783
|
-
const rootFiles = fs5.readdirSync(
|
|
1804
|
+
const rootFiles = fs5.readdirSync(modelsRoot).filter((f) => f.endsWith(".ts") && !f.endsWith(".test.ts") && f !== "index.ts");
|
|
1784
1805
|
if (rootFiles.length > 0) {
|
|
1785
1806
|
result.modules.unshift("default");
|
|
1786
1807
|
}
|
|
1787
1808
|
}
|
|
1788
1809
|
}
|
|
1789
1810
|
}
|
|
1790
|
-
const resolveModelDir = (
|
|
1791
|
-
const resolveControllerDir = (
|
|
1811
|
+
const resolveModelDir = (_backendRoot, mod) => mod === "default" ? modelsRoot || path7.join(backendRoot, "models") : path7.join(modelsRoot || path7.join(backendRoot, "models"), mod);
|
|
1812
|
+
const resolveControllerDir = (_backendRoot, mod) => mod === "default" ? controllersRoot || path7.join(backendRoot, "controllers") : path7.join(controllersRoot || path7.join(backendRoot, "controllers"), mod);
|
|
1792
1813
|
if (activeSteps.includes("er-diagram")) {
|
|
1793
1814
|
const erGen = createERDiagramGenerator();
|
|
1794
|
-
const
|
|
1815
|
+
const backendRoot2 = path7.resolve(config.backendRoot);
|
|
1795
1816
|
for (const mod of result.modules) {
|
|
1796
|
-
const modelDir = resolveModelDir(
|
|
1817
|
+
const modelDir = resolveModelDir(backendRoot2, mod);
|
|
1797
1818
|
const tables = fs5.existsSync(modelDir) ? parseModuleModels(modelDir) : [];
|
|
1798
1819
|
const relations = [];
|
|
1799
1820
|
const assocFile = path7.join(modelDir, "associations.ts");
|
|
@@ -1816,9 +1837,9 @@ function createPipeline(config) {
|
|
|
1816
1837
|
}
|
|
1817
1838
|
if (activeSteps.includes("api-chain")) {
|
|
1818
1839
|
const chainAnalyzer = createApiChainAnalyzer();
|
|
1819
|
-
const
|
|
1840
|
+
const backendRoot2 = path7.resolve(config.backendRoot);
|
|
1820
1841
|
for (const mod of result.modules) {
|
|
1821
|
-
const controllerDir = resolveControllerDir(
|
|
1842
|
+
const controllerDir = resolveControllerDir(backendRoot2, mod);
|
|
1822
1843
|
const endpoints = fs5.existsSync(controllerDir) ? parseControllerDirectory(controllerDir) : [];
|
|
1823
1844
|
const analysis = chainAnalyzer.analyze(endpoints);
|
|
1824
1845
|
analysis.moduleName = mod;
|
|
@@ -1835,10 +1856,10 @@ function createPipeline(config) {
|
|
|
1835
1856
|
}
|
|
1836
1857
|
}
|
|
1837
1858
|
if (activeSteps.includes("plan")) {
|
|
1838
|
-
const
|
|
1859
|
+
const backendRoot2 = path7.resolve(config.backendRoot);
|
|
1839
1860
|
const chainAnalyzer = createApiChainAnalyzer();
|
|
1840
1861
|
for (const mod of result.modules) {
|
|
1841
|
-
const controllerDir = resolveControllerDir(
|
|
1862
|
+
const controllerDir = resolveControllerDir(backendRoot2, mod);
|
|
1842
1863
|
const endpoints = fs5.existsSync(controllerDir) ? parseControllerDirectory(controllerDir) : [];
|
|
1843
1864
|
const analysis = chainAnalyzer.analyze(endpoints);
|
|
1844
1865
|
const topoOrder = topologicalSort(analysis.dag);
|