@warlock.js/core 3.0.40 → 4.0.2
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/cjs/code-quality/config.js +1 -7
- package/cjs/code-quality/config.js.map +1 -1
- package/cjs/code-quality/issue-tracker.js +1 -119
- package/cjs/code-quality/issue-tracker.js.map +1 -1
- package/cjs/dev2-server/config-handlers.d.ts +8 -0
- package/cjs/dev2-server/config-handlers.d.ts.map +1 -0
- package/cjs/dev2-server/config-handlers.js +56 -0
- package/cjs/dev2-server/config-handlers.js.map +1 -0
- package/cjs/dev2-server/config-loader.d.ts +61 -0
- package/cjs/dev2-server/config-loader.d.ts.map +1 -0
- package/cjs/dev2-server/config-loader.js +122 -0
- package/cjs/dev2-server/config-loader.js.map +1 -0
- package/cjs/dev2-server/connectors/base-connector.d.ts +49 -0
- package/cjs/dev2-server/connectors/base-connector.d.ts.map +1 -0
- package/cjs/dev2-server/connectors/base-connector.js +48 -0
- package/cjs/dev2-server/connectors/base-connector.js.map +1 -0
- package/cjs/dev2-server/connectors/cache-connector.d.ts +23 -0
- package/cjs/dev2-server/connectors/cache-connector.d.ts.map +1 -0
- package/cjs/dev2-server/connectors/cache-connector.js +35 -0
- package/cjs/dev2-server/connectors/cache-connector.js.map +1 -0
- package/cjs/dev2-server/connectors/database-connector.d.ts +23 -0
- package/cjs/dev2-server/connectors/database-connector.d.ts.map +1 -0
- package/cjs/dev2-server/connectors/database-connector.js +46 -0
- package/cjs/dev2-server/connectors/database-connector.js.map +1 -0
- package/cjs/dev2-server/connectors/http-connector.d.ts +29 -0
- package/cjs/dev2-server/connectors/http-connector.d.ts.map +1 -0
- package/cjs/dev2-server/connectors/http-connector.js +71 -0
- package/cjs/dev2-server/connectors/http-connector.js.map +1 -0
- package/cjs/dev2-server/connectors/index.d.ts +10 -0
- package/cjs/dev2-server/connectors/index.d.ts.map +1 -0
- package/cjs/dev2-server/connectors/types.d.ts +49 -0
- package/cjs/dev2-server/connectors/types.d.ts.map +1 -0
- package/cjs/dev2-server/connectors/types.js +9 -0
- package/cjs/dev2-server/connectors/types.js.map +1 -0
- package/cjs/dev2-server/dependency-graph.d.ts +93 -0
- package/cjs/dev2-server/dependency-graph.d.ts.map +1 -0
- package/cjs/dev2-server/dependency-graph.js +266 -0
- package/cjs/dev2-server/dependency-graph.js.map +1 -0
- package/cjs/dev2-server/dev-logger.d.ts +14 -0
- package/cjs/dev2-server/dev-logger.d.ts.map +1 -0
- package/cjs/dev2-server/dev-logger.js +105 -0
- package/cjs/dev2-server/dev-logger.js.map +1 -0
- package/cjs/dev2-server/development-server.d.ts +97 -0
- package/cjs/dev2-server/development-server.d.ts.map +1 -0
- package/cjs/dev2-server/development-server.js +224 -0
- package/cjs/dev2-server/development-server.js.map +1 -0
- package/cjs/dev2-server/events.d.ts +5 -0
- package/cjs/dev2-server/events.d.ts.map +1 -0
- package/cjs/dev2-server/events.js +4 -0
- package/cjs/dev2-server/events.js.map +1 -0
- package/cjs/dev2-server/file-event-handler.d.ts +58 -0
- package/cjs/dev2-server/file-event-handler.d.ts.map +1 -0
- package/cjs/dev2-server/file-event-handler.js +140 -0
- package/cjs/dev2-server/file-event-handler.js.map +1 -0
- package/cjs/dev2-server/file-manager.d.ts +115 -0
- package/cjs/dev2-server/file-manager.d.ts.map +1 -0
- package/cjs/dev2-server/file-manager.js +319 -0
- package/cjs/dev2-server/file-manager.js.map +1 -0
- package/cjs/dev2-server/file-operations.d.ts +54 -0
- package/cjs/dev2-server/file-operations.d.ts.map +1 -0
- package/cjs/dev2-server/file-operations.js +191 -0
- package/cjs/dev2-server/file-operations.js.map +1 -0
- package/cjs/dev2-server/files-orchestrator.d.ts +88 -0
- package/cjs/dev2-server/files-orchestrator.d.ts.map +1 -0
- package/cjs/dev2-server/files-orchestrator.js +273 -0
- package/cjs/dev2-server/files-orchestrator.js.map +1 -0
- package/cjs/dev2-server/files-watcher.d.ts +53 -0
- package/cjs/dev2-server/files-watcher.d.ts.map +1 -0
- package/cjs/dev2-server/files-watcher.js +88 -0
- package/cjs/dev2-server/files-watcher.js.map +1 -0
- package/cjs/dev2-server/flags.d.ts +10 -0
- package/cjs/dev2-server/flags.d.ts.map +1 -0
- package/cjs/dev2-server/flags.js +9 -0
- package/cjs/dev2-server/flags.js.map +1 -0
- package/cjs/dev2-server/health-checker.d.ts +3 -0
- package/cjs/dev2-server/health-checker.d.ts.map +1 -0
- package/cjs/dev2-server/health-checker.js +2 -0
- package/cjs/dev2-server/health-checker.js.map +1 -0
- package/cjs/dev2-server/import-transformer.d.ts +16 -0
- package/cjs/dev2-server/import-transformer.d.ts.map +1 -0
- package/cjs/dev2-server/import-transformer.js +248 -0
- package/cjs/dev2-server/import-transformer.js.map +1 -0
- package/cjs/dev2-server/index.d.ts +1 -0
- package/cjs/dev2-server/index.d.ts.map +1 -0
- package/cjs/dev2-server/layer-executor.d.ts +64 -0
- package/cjs/dev2-server/layer-executor.d.ts.map +1 -0
- package/cjs/dev2-server/layer-executor.js +292 -0
- package/cjs/dev2-server/layer-executor.js.map +1 -0
- package/cjs/dev2-server/manifest-manager.d.ts +80 -0
- package/cjs/dev2-server/manifest-manager.d.ts.map +1 -0
- package/cjs/dev2-server/manifest-manager.js +107 -0
- package/cjs/dev2-server/manifest-manager.js.map +1 -0
- package/cjs/dev2-server/module-loader.d.ts +100 -0
- package/cjs/dev2-server/module-loader.d.ts.map +1 -0
- package/cjs/dev2-server/module-loader.js +228 -0
- package/cjs/dev2-server/module-loader.js.map +1 -0
- package/cjs/dev2-server/package-json-manager.d.ts +16 -0
- package/cjs/dev2-server/package-json-manager.d.ts.map +1 -0
- package/cjs/dev2-server/package-json-manager.js +20 -0
- package/cjs/dev2-server/package-json-manager.js.map +1 -0
- package/cjs/dev2-server/parse-imports.d.ts +8 -0
- package/cjs/dev2-server/parse-imports.d.ts.map +1 -0
- package/cjs/dev2-server/parse-imports.js +322 -0
- package/cjs/dev2-server/parse-imports.js.map +1 -0
- package/cjs/dev2-server/path.d.ts +39 -0
- package/cjs/dev2-server/path.d.ts.map +1 -0
- package/cjs/dev2-server/path.js +56 -0
- package/cjs/dev2-server/path.js.map +1 -0
- package/cjs/dev2-server/runtime-import-helper.d.ts +9 -0
- package/cjs/dev2-server/runtime-import-helper.d.ts.map +1 -0
- package/cjs/dev2-server/runtime-import-helper.js +157 -0
- package/cjs/dev2-server/runtime-import-helper.js.map +1 -0
- package/cjs/dev2-server/special-files-collector.d.ts +114 -0
- package/cjs/dev2-server/special-files-collector.d.ts.map +1 -0
- package/cjs/dev2-server/special-files-collector.js +212 -0
- package/cjs/dev2-server/special-files-collector.js.map +1 -0
- package/cjs/dev2-server/start-development-server.d.ts +7 -0
- package/cjs/dev2-server/start-development-server.d.ts.map +1 -0
- package/cjs/dev2-server/start-development-server.js +21 -0
- package/cjs/dev2-server/start-development-server.js.map +1 -0
- package/cjs/dev2-server/transpile-file.d.ts +10 -0
- package/cjs/dev2-server/transpile-file.d.ts.map +1 -0
- package/cjs/dev2-server/transpile-file.js +31 -0
- package/cjs/dev2-server/transpile-file.js.map +1 -0
- package/cjs/dev2-server/tsconfig-manager.d.ts +45 -0
- package/cjs/dev2-server/tsconfig-manager.d.ts.map +1 -0
- package/cjs/dev2-server/tsconfig-manager.js +105 -0
- package/cjs/dev2-server/tsconfig-manager.js.map +1 -0
- package/cjs/dev2-server/types.d.ts +16 -0
- package/cjs/dev2-server/types.d.ts.map +1 -0
- package/cjs/dev2-server/utils.d.ts +8 -0
- package/cjs/dev2-server/utils.d.ts.map +1 -0
- package/cjs/dev2-server/utils.js +28 -0
- package/cjs/dev2-server/utils.js.map +1 -0
- package/cjs/router/route-registry.d.ts +4 -0
- package/cjs/router/route-registry.d.ts.map +1 -1
- package/cjs/router/route-registry.js +26 -7
- package/cjs/router/route-registry.js.map +1 -1
- package/cjs/router/router.d.ts +13 -8
- package/cjs/router/router.d.ts.map +1 -1
- package/cjs/router/router.js +73 -35
- package/cjs/router/router.js.map +1 -1
- package/cjs/router/types.d.ts +10 -2
- package/cjs/router/types.d.ts.map +1 -1
- package/cjs/starters/start-cli-server.js +1 -1
- package/cjs/starters/start-cli-server.js.map +1 -1
- package/cjs/starters/start-http-server.d.ts.map +1 -1
- package/cjs/starters/start-http-server.js +4 -99
- package/cjs/starters/start-http-server.js.map +1 -1
- package/esm/code-quality/config.js +1 -7
- package/esm/code-quality/config.js.map +1 -1
- package/esm/code-quality/issue-tracker.js +1 -119
- package/esm/code-quality/issue-tracker.js.map +1 -1
- package/esm/dev2-server/config-handlers.d.ts +8 -0
- package/esm/dev2-server/config-handlers.d.ts.map +1 -0
- package/esm/dev2-server/config-handlers.js +56 -0
- package/esm/dev2-server/config-handlers.js.map +1 -0
- package/esm/dev2-server/config-loader.d.ts +61 -0
- package/esm/dev2-server/config-loader.d.ts.map +1 -0
- package/esm/dev2-server/config-loader.js +122 -0
- package/esm/dev2-server/config-loader.js.map +1 -0
- package/esm/dev2-server/connectors/base-connector.d.ts +49 -0
- package/esm/dev2-server/connectors/base-connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/base-connector.js +48 -0
- package/esm/dev2-server/connectors/base-connector.js.map +1 -0
- package/esm/dev2-server/connectors/cache-connector.d.ts +23 -0
- package/esm/dev2-server/connectors/cache-connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/cache-connector.js +35 -0
- package/esm/dev2-server/connectors/cache-connector.js.map +1 -0
- package/esm/dev2-server/connectors/database-connector.d.ts +23 -0
- package/esm/dev2-server/connectors/database-connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/database-connector.js +46 -0
- package/esm/dev2-server/connectors/database-connector.js.map +1 -0
- package/esm/dev2-server/connectors/http-connector.d.ts +29 -0
- package/esm/dev2-server/connectors/http-connector.d.ts.map +1 -0
- package/esm/dev2-server/connectors/http-connector.js +71 -0
- package/esm/dev2-server/connectors/http-connector.js.map +1 -0
- package/esm/dev2-server/connectors/index.d.ts +10 -0
- package/esm/dev2-server/connectors/index.d.ts.map +1 -0
- package/esm/dev2-server/connectors/types.d.ts +49 -0
- package/esm/dev2-server/connectors/types.d.ts.map +1 -0
- package/esm/dev2-server/connectors/types.js +9 -0
- package/esm/dev2-server/connectors/types.js.map +1 -0
- package/esm/dev2-server/dependency-graph.d.ts +93 -0
- package/esm/dev2-server/dependency-graph.d.ts.map +1 -0
- package/esm/dev2-server/dependency-graph.js +266 -0
- package/esm/dev2-server/dependency-graph.js.map +1 -0
- package/esm/dev2-server/dev-logger.d.ts +14 -0
- package/esm/dev2-server/dev-logger.d.ts.map +1 -0
- package/esm/dev2-server/dev-logger.js +105 -0
- package/esm/dev2-server/dev-logger.js.map +1 -0
- package/esm/dev2-server/development-server.d.ts +97 -0
- package/esm/dev2-server/development-server.d.ts.map +1 -0
- package/esm/dev2-server/development-server.js +224 -0
- package/esm/dev2-server/development-server.js.map +1 -0
- package/esm/dev2-server/events.d.ts +5 -0
- package/esm/dev2-server/events.d.ts.map +1 -0
- package/esm/dev2-server/events.js +4 -0
- package/esm/dev2-server/events.js.map +1 -0
- package/esm/dev2-server/file-event-handler.d.ts +58 -0
- package/esm/dev2-server/file-event-handler.d.ts.map +1 -0
- package/esm/dev2-server/file-event-handler.js +140 -0
- package/esm/dev2-server/file-event-handler.js.map +1 -0
- package/esm/dev2-server/file-manager.d.ts +115 -0
- package/esm/dev2-server/file-manager.d.ts.map +1 -0
- package/esm/dev2-server/file-manager.js +319 -0
- package/esm/dev2-server/file-manager.js.map +1 -0
- package/esm/dev2-server/file-operations.d.ts +54 -0
- package/esm/dev2-server/file-operations.d.ts.map +1 -0
- package/esm/dev2-server/file-operations.js +191 -0
- package/esm/dev2-server/file-operations.js.map +1 -0
- package/esm/dev2-server/files-orchestrator.d.ts +88 -0
- package/esm/dev2-server/files-orchestrator.d.ts.map +1 -0
- package/esm/dev2-server/files-orchestrator.js +273 -0
- package/esm/dev2-server/files-orchestrator.js.map +1 -0
- package/esm/dev2-server/files-watcher.d.ts +53 -0
- package/esm/dev2-server/files-watcher.d.ts.map +1 -0
- package/esm/dev2-server/files-watcher.js +88 -0
- package/esm/dev2-server/files-watcher.js.map +1 -0
- package/esm/dev2-server/flags.d.ts +10 -0
- package/esm/dev2-server/flags.d.ts.map +1 -0
- package/esm/dev2-server/flags.js +9 -0
- package/esm/dev2-server/flags.js.map +1 -0
- package/esm/dev2-server/health-checker.d.ts +3 -0
- package/esm/dev2-server/health-checker.d.ts.map +1 -0
- package/esm/dev2-server/health-checker.js +2 -0
- package/esm/dev2-server/health-checker.js.map +1 -0
- package/esm/dev2-server/import-transformer.d.ts +16 -0
- package/esm/dev2-server/import-transformer.d.ts.map +1 -0
- package/esm/dev2-server/import-transformer.js +248 -0
- package/esm/dev2-server/import-transformer.js.map +1 -0
- package/esm/dev2-server/index.d.ts +1 -0
- package/esm/dev2-server/index.d.ts.map +1 -0
- package/esm/dev2-server/layer-executor.d.ts +64 -0
- package/esm/dev2-server/layer-executor.d.ts.map +1 -0
- package/esm/dev2-server/layer-executor.js +292 -0
- package/esm/dev2-server/layer-executor.js.map +1 -0
- package/esm/dev2-server/manifest-manager.d.ts +80 -0
- package/esm/dev2-server/manifest-manager.d.ts.map +1 -0
- package/esm/dev2-server/manifest-manager.js +107 -0
- package/esm/dev2-server/manifest-manager.js.map +1 -0
- package/esm/dev2-server/module-loader.d.ts +100 -0
- package/esm/dev2-server/module-loader.d.ts.map +1 -0
- package/esm/dev2-server/module-loader.js +228 -0
- package/esm/dev2-server/module-loader.js.map +1 -0
- package/esm/dev2-server/package-json-manager.d.ts +16 -0
- package/esm/dev2-server/package-json-manager.d.ts.map +1 -0
- package/esm/dev2-server/package-json-manager.js +20 -0
- package/esm/dev2-server/package-json-manager.js.map +1 -0
- package/esm/dev2-server/parse-imports.d.ts +8 -0
- package/esm/dev2-server/parse-imports.d.ts.map +1 -0
- package/esm/dev2-server/parse-imports.js +322 -0
- package/esm/dev2-server/parse-imports.js.map +1 -0
- package/esm/dev2-server/path.d.ts +39 -0
- package/esm/dev2-server/path.d.ts.map +1 -0
- package/esm/dev2-server/path.js +56 -0
- package/esm/dev2-server/path.js.map +1 -0
- package/esm/dev2-server/runtime-import-helper.d.ts +9 -0
- package/esm/dev2-server/runtime-import-helper.d.ts.map +1 -0
- package/esm/dev2-server/runtime-import-helper.js +157 -0
- package/esm/dev2-server/runtime-import-helper.js.map +1 -0
- package/esm/dev2-server/special-files-collector.d.ts +114 -0
- package/esm/dev2-server/special-files-collector.d.ts.map +1 -0
- package/esm/dev2-server/special-files-collector.js +212 -0
- package/esm/dev2-server/special-files-collector.js.map +1 -0
- package/esm/dev2-server/start-development-server.d.ts +7 -0
- package/esm/dev2-server/start-development-server.d.ts.map +1 -0
- package/esm/dev2-server/start-development-server.js +21 -0
- package/esm/dev2-server/start-development-server.js.map +1 -0
- package/esm/dev2-server/transpile-file.d.ts +10 -0
- package/esm/dev2-server/transpile-file.d.ts.map +1 -0
- package/esm/dev2-server/transpile-file.js +31 -0
- package/esm/dev2-server/transpile-file.js.map +1 -0
- package/esm/dev2-server/tsconfig-manager.d.ts +45 -0
- package/esm/dev2-server/tsconfig-manager.d.ts.map +1 -0
- package/esm/dev2-server/tsconfig-manager.js +105 -0
- package/esm/dev2-server/tsconfig-manager.js.map +1 -0
- package/esm/dev2-server/types.d.ts +16 -0
- package/esm/dev2-server/types.d.ts.map +1 -0
- package/esm/dev2-server/utils.d.ts +8 -0
- package/esm/dev2-server/utils.d.ts.map +1 -0
- package/esm/dev2-server/utils.js +28 -0
- package/esm/dev2-server/utils.js.map +1 -0
- package/esm/router/route-registry.d.ts +4 -0
- package/esm/router/route-registry.d.ts.map +1 -1
- package/esm/router/route-registry.js +26 -7
- package/esm/router/route-registry.js.map +1 -1
- package/esm/router/router.d.ts +13 -8
- package/esm/router/router.d.ts.map +1 -1
- package/esm/router/router.js +73 -35
- package/esm/router/router.js.map +1 -1
- package/esm/router/types.d.ts +10 -2
- package/esm/router/types.d.ts.map +1 -1
- package/esm/starters/start-cli-server.js +1 -1
- package/esm/starters/start-cli-server.js.map +1 -1
- package/esm/starters/start-http-server.d.ts.map +1 -1
- package/esm/starters/start-http-server.js +4 -99
- package/esm/starters/start-http-server.js.map +1 -1
- package/package.json +3 -3
- package/cjs/code-quality/checkers/eslint-checker.js +0 -39
- package/cjs/code-quality/checkers/eslint-checker.js.map +0 -1
- package/cjs/code-quality/checkers/typescript-checker.js +0 -76
- package/cjs/code-quality/checkers/typescript-checker.js.map +0 -1
- package/cjs/code-quality/formatters/eslint-formatter.js +0 -56
- package/cjs/code-quality/formatters/eslint-formatter.js.map +0 -1
- package/cjs/code-quality/formatters/summary-formatter.js +0 -102
- package/cjs/code-quality/formatters/summary-formatter.js.map +0 -1
- package/cjs/code-quality/formatters/typescript-formatter.js +0 -64
- package/cjs/code-quality/formatters/typescript-formatter.js.map +0 -1
- package/cjs/code-quality/project-scanner.js +0 -78
- package/cjs/code-quality/project-scanner.js.map +0 -1
- package/cjs/code-quality/single-file-checker.js +0 -153
- package/cjs/code-quality/single-file-checker.js.map +0 -1
- package/cjs/dev-server/file-health.d.ts +0 -9
- package/cjs/dev-server/file-health.d.ts.map +0 -1
- package/cjs/dev-server/file-manager.d.ts +0 -39
- package/cjs/dev-server/file-manager.d.ts.map +0 -1
- package/cjs/dev-server/files-orchestrator.d.ts +0 -1
- package/cjs/dev-server/files-orchestrator.d.ts.map +0 -1
- package/cjs/dev-server/types.d.ts +0 -2
- package/cjs/dev-server/types.d.ts.map +0 -1
- package/cjs/starters/http-server-starter.js +0 -34
- package/cjs/starters/http-server-starter.js.map +0 -1
- package/cjs/utils/internal.js +0 -3
- package/cjs/utils/internal.js.map +0 -1
- package/esm/code-quality/checkers/eslint-checker.js +0 -39
- package/esm/code-quality/checkers/eslint-checker.js.map +0 -1
- package/esm/code-quality/checkers/typescript-checker.js +0 -76
- package/esm/code-quality/checkers/typescript-checker.js.map +0 -1
- package/esm/code-quality/formatters/eslint-formatter.js +0 -56
- package/esm/code-quality/formatters/eslint-formatter.js.map +0 -1
- package/esm/code-quality/formatters/summary-formatter.js +0 -102
- package/esm/code-quality/formatters/summary-formatter.js.map +0 -1
- package/esm/code-quality/formatters/typescript-formatter.js +0 -64
- package/esm/code-quality/formatters/typescript-formatter.js.map +0 -1
- package/esm/code-quality/project-scanner.js +0 -78
- package/esm/code-quality/project-scanner.js.map +0 -1
- package/esm/code-quality/single-file-checker.js +0 -153
- package/esm/code-quality/single-file-checker.js.map +0 -1
- package/esm/dev-server/file-health.d.ts +0 -9
- package/esm/dev-server/file-health.d.ts.map +0 -1
- package/esm/dev-server/file-manager.d.ts +0 -39
- package/esm/dev-server/file-manager.d.ts.map +0 -1
- package/esm/dev-server/files-orchestrator.d.ts +0 -1
- package/esm/dev-server/files-orchestrator.d.ts.map +0 -1
- package/esm/dev-server/types.d.ts +0 -2
- package/esm/dev-server/types.d.ts.map +0 -1
- package/esm/starters/http-server-starter.js +0 -34
- package/esm/starters/http-server-starter.js.map +0 -1
- package/esm/utils/internal.js +0 -3
- package/esm/utils/internal.js.map +0 -1
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import {devLogHMR}from'./dev-logger.js';/**
|
|
2
|
+
* LayerExecutor handles the execution of file reloads based on their layer type
|
|
3
|
+
*
|
|
4
|
+
* Strategy:
|
|
5
|
+
* 1. Determine reload type (FSR or HMR) based on invalidation chain
|
|
6
|
+
* 2. For FSR: Restart connectors if needed, reload special files
|
|
7
|
+
* 3. For HMR: Clear module cache, reload affected modules
|
|
8
|
+
*/
|
|
9
|
+
class LayerExecutor {
|
|
10
|
+
dependencyGraph;
|
|
11
|
+
specialFilesCollector;
|
|
12
|
+
connectors;
|
|
13
|
+
moduleLoader;
|
|
14
|
+
configLoader;
|
|
15
|
+
constructor(dependencyGraph, specialFilesCollector, connectors, moduleLoader, configLoader) {
|
|
16
|
+
this.dependencyGraph = dependencyGraph;
|
|
17
|
+
this.specialFilesCollector = specialFilesCollector;
|
|
18
|
+
this.connectors = connectors;
|
|
19
|
+
this.moduleLoader = moduleLoader;
|
|
20
|
+
this.configLoader = configLoader;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Execute batch reload for multiple changed files
|
|
24
|
+
* @param changedPaths Array of relative paths that changed
|
|
25
|
+
* @param filesMap Map of all FileManager instances
|
|
26
|
+
*/
|
|
27
|
+
async executeBatchReload(changedPaths, filesMap) {
|
|
28
|
+
if (changedPaths.length === 0) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Build combined invalidation chain for all changed files
|
|
32
|
+
const allInvalidatedFiles = new Set();
|
|
33
|
+
const fsrFiles = [];
|
|
34
|
+
const hmrFiles = [];
|
|
35
|
+
for (const relativePath of changedPaths) {
|
|
36
|
+
const fileManager = filesMap.get(relativePath);
|
|
37
|
+
if (!fileManager)
|
|
38
|
+
continue;
|
|
39
|
+
// Get invalidation chain for this file
|
|
40
|
+
const invalidationChain = this.dependencyGraph.getInvalidationChain(relativePath);
|
|
41
|
+
// Add to combined set
|
|
42
|
+
invalidationChain.forEach(file => allInvalidatedFiles.add(file));
|
|
43
|
+
// Determine strategy for this file
|
|
44
|
+
const strategy = this.determineReloadStrategy(invalidationChain, filesMap);
|
|
45
|
+
if (strategy === "FSR") {
|
|
46
|
+
fsrFiles.push(relativePath);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
hmrFiles.push(relativePath);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
if (hmrFiles.length > 0 && fsrFiles.length === 0) {
|
|
54
|
+
if (hmrFiles.length === 1) {
|
|
55
|
+
const dependentCount = this.dependencyGraph.getInvalidationChain(hmrFiles[0]).length - 1;
|
|
56
|
+
devLogHMR(hmrFiles[0], dependentCount > 0 ? dependentCount : undefined);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
hmrFiles.forEach(file => {
|
|
60
|
+
const dependentCount = this.dependencyGraph.getInvalidationChain(file).length - 1;
|
|
61
|
+
devLogHMR(file, dependentCount > 0 ? dependentCount : undefined);
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.log("ERRor in devLogHMR: ", error);
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
// Execute reload once for all files
|
|
71
|
+
const invalidationChain = Array.from(allInvalidatedFiles);
|
|
72
|
+
if (fsrFiles.length > 0) {
|
|
73
|
+
// If any file requires FSR, do FSR for all
|
|
74
|
+
const firstFsrFile = filesMap.get(fsrFiles[0]);
|
|
75
|
+
await this.executeFullServerRestart(firstFsrFile, invalidationChain, filesMap);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// All files are HMR
|
|
79
|
+
const firstHmrFile = filesMap.get(hmrFiles[0]);
|
|
80
|
+
await this.executeHotModuleReplacement(firstHmrFile, invalidationChain, filesMap, hmrFiles);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
console.log("ERRor in executeFullServerRestart: ", error);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Determine if we need FSR or HMR
|
|
89
|
+
* FSR is needed if ANY file in the invalidation chain is FSR layer
|
|
90
|
+
*/
|
|
91
|
+
determineReloadStrategy(invalidationChain, filesMap) {
|
|
92
|
+
for (const relativePath of invalidationChain) {
|
|
93
|
+
const file = filesMap.get(relativePath);
|
|
94
|
+
if (file && file.layer === "FSR") {
|
|
95
|
+
return "FSR";
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return "HMR";
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Execute Full Server Restart
|
|
102
|
+
* This happens when config, routes, or other FSR layer files change
|
|
103
|
+
*/
|
|
104
|
+
async executeFullServerRestart(changedFile, invalidationChain, filesMap) {
|
|
105
|
+
// Step 1: Handle config files specially
|
|
106
|
+
const configFiles = invalidationChain
|
|
107
|
+
.map(path => filesMap.get(path))
|
|
108
|
+
.filter((file) => file !== undefined && file.type === "config");
|
|
109
|
+
if (configFiles.length > 0) {
|
|
110
|
+
// Reload config files first
|
|
111
|
+
for (const configFile of configFiles) {
|
|
112
|
+
await this.configLoader.reloadConfig(configFile);
|
|
113
|
+
}
|
|
114
|
+
// Restart only affected connectors
|
|
115
|
+
await this.restartAffectedConnectors(invalidationChain);
|
|
116
|
+
// Clear module cache for invalidation chain
|
|
117
|
+
this.clearModuleCacheForChain(invalidationChain, filesMap);
|
|
118
|
+
// Reload special files if affected
|
|
119
|
+
await this.reloadAffectedSpecialFiles(invalidationChain);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
// Step 2: For non-config FSR (routes, etc.), restart all connectors
|
|
123
|
+
await this.restartAffectedConnectors(invalidationChain);
|
|
124
|
+
// Step 3: Clear module cache for invalidation chain
|
|
125
|
+
this.clearModuleCacheForChain(invalidationChain, filesMap);
|
|
126
|
+
// Step 4: Reload special files if affected
|
|
127
|
+
await this.reloadAffectedSpecialFiles(invalidationChain);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Execute Hot Module Replacement
|
|
131
|
+
* This happens when only HMR layer files (controllers, services, etc.) change
|
|
132
|
+
*/
|
|
133
|
+
async executeHotModuleReplacement(changedFile, invalidationChain, filesMap, hmrFiles) {
|
|
134
|
+
// Step 1: Clear module cache for invalidation chain
|
|
135
|
+
this.clearModuleCacheForChain(invalidationChain, filesMap);
|
|
136
|
+
// Step 2: Reload affected modules
|
|
137
|
+
await this.reloadAffectedModules(invalidationChain, filesMap);
|
|
138
|
+
await this.restartAffectedConnectors(hmrFiles);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Restart connectors that are affected by the changed files
|
|
142
|
+
*/
|
|
143
|
+
async restartAffectedConnectors(affectedFiles) {
|
|
144
|
+
const connectorsToRestart = this.connectors.filter(connector => connector.shouldRestart(affectedFiles));
|
|
145
|
+
if (connectorsToRestart.length === 0) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
// Restart in priority order
|
|
149
|
+
for (const connector of connectorsToRestart) {
|
|
150
|
+
connector.restart();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Clear Node.js module cache for the invalidation chain
|
|
155
|
+
*/
|
|
156
|
+
clearModuleCacheForChain(invalidationChain, filesMap) {
|
|
157
|
+
for (const relativePath of invalidationChain) {
|
|
158
|
+
const file = filesMap.get(relativePath);
|
|
159
|
+
if (file) {
|
|
160
|
+
this.moduleLoader.clearModuleCache(file.absolutePath);
|
|
161
|
+
// Update module version for HMR cache busting
|
|
162
|
+
__updateModuleVersion(`./${file.cachePath}`, Date.now());
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Reload special files that are affected by the change
|
|
168
|
+
* This includes main, routes, events, locales
|
|
169
|
+
* Special files are reloaded if they are in the invalidation chain OR if they depend on files in the chain
|
|
170
|
+
*/
|
|
171
|
+
async reloadAffectedSpecialFiles(invalidationChain) {
|
|
172
|
+
// Helper to check if a file is affected (either in chain or depends on chain)
|
|
173
|
+
const isAffected = (file) => {
|
|
174
|
+
// Direct match: file itself is in the chain
|
|
175
|
+
if (invalidationChain.includes(file.relativePath)) {
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
// Indirect match: file depends on something in the chain
|
|
179
|
+
for (const dep of file.dependencies) {
|
|
180
|
+
if (invalidationChain.includes(dep)) {
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return false;
|
|
185
|
+
};
|
|
186
|
+
// Check which special files are affected
|
|
187
|
+
const affectedMainFiles = this.specialFilesCollector
|
|
188
|
+
.getMainFiles()
|
|
189
|
+
.filter(isAffected);
|
|
190
|
+
const affectedRouteFiles = this.specialFilesCollector
|
|
191
|
+
.getRouteFiles()
|
|
192
|
+
.filter(isAffected);
|
|
193
|
+
const affectedEventFiles = this.specialFilesCollector
|
|
194
|
+
.getEventFiles()
|
|
195
|
+
.filter(isAffected);
|
|
196
|
+
const affectedLocaleFiles = this.specialFilesCollector
|
|
197
|
+
.getLocaleFiles()
|
|
198
|
+
.filter(isAffected);
|
|
199
|
+
// Reload affected special files
|
|
200
|
+
if (affectedMainFiles.length > 0) {
|
|
201
|
+
for (const file of affectedMainFiles) {
|
|
202
|
+
await this.moduleLoader.reloadModule(file);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
if (affectedLocaleFiles.length > 0) {
|
|
206
|
+
for (const file of affectedLocaleFiles) {
|
|
207
|
+
await this.moduleLoader.reloadModule(file);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (affectedEventFiles.length > 0) {
|
|
211
|
+
for (const file of affectedEventFiles) {
|
|
212
|
+
await this.moduleLoader.reloadModule(file);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (affectedRouteFiles.length > 0) {
|
|
216
|
+
for (const file of affectedRouteFiles) {
|
|
217
|
+
await this.moduleLoader.reloadModule(file);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
/**
|
|
222
|
+
* Reload affected modules (for HMR)
|
|
223
|
+
* Special files (main, routes, events, locales) need to be actively reloaded
|
|
224
|
+
* Other files will be loaded on next import
|
|
225
|
+
*/
|
|
226
|
+
async reloadAffectedModules(invalidationChain, filesMap) {
|
|
227
|
+
// Helper to check if a file is affected (either in chain or depends on chain)
|
|
228
|
+
const isAffected = (file) => {
|
|
229
|
+
// Direct match: file itself is in the chain
|
|
230
|
+
if (invalidationChain.includes(file.relativePath)) {
|
|
231
|
+
return true;
|
|
232
|
+
}
|
|
233
|
+
// Indirect match: file depends on something in the chain
|
|
234
|
+
for (const dep of file.dependencies) {
|
|
235
|
+
if (invalidationChain.includes(dep)) {
|
|
236
|
+
return true;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
return false;
|
|
240
|
+
};
|
|
241
|
+
// Check which special files are affected
|
|
242
|
+
const affectedMainFiles = this.specialFilesCollector
|
|
243
|
+
.getMainFiles()
|
|
244
|
+
.filter(isAffected);
|
|
245
|
+
const affectedConfigFiles = this.specialFilesCollector
|
|
246
|
+
.getConfigFiles()
|
|
247
|
+
.filter(isAffected);
|
|
248
|
+
const affectedRouteFiles = this.specialFilesCollector
|
|
249
|
+
.getRouteFiles()
|
|
250
|
+
.filter(isAffected);
|
|
251
|
+
const affectedEventFiles = this.specialFilesCollector
|
|
252
|
+
.getEventFiles()
|
|
253
|
+
.filter(isAffected);
|
|
254
|
+
const affectedLocaleFiles = this.specialFilesCollector
|
|
255
|
+
.getLocaleFiles()
|
|
256
|
+
.filter(isAffected);
|
|
257
|
+
const hasSpecialFiles = affectedMainFiles.length > 0 ||
|
|
258
|
+
affectedRouteFiles.length > 0 ||
|
|
259
|
+
affectedEventFiles.length > 0 ||
|
|
260
|
+
affectedLocaleFiles.length > 0 ||
|
|
261
|
+
affectedConfigFiles.length > 0;
|
|
262
|
+
if (!hasSpecialFiles) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
if (affectedConfigFiles.length > 0) {
|
|
266
|
+
for (const file of affectedConfigFiles) {
|
|
267
|
+
await this.configLoader.reloadConfig(file);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
// Reload special files
|
|
271
|
+
if (affectedMainFiles.length > 0) {
|
|
272
|
+
for (const file of affectedMainFiles) {
|
|
273
|
+
await this.moduleLoader.reloadModule(file);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
if (affectedLocaleFiles.length > 0) {
|
|
277
|
+
for (const file of affectedLocaleFiles) {
|
|
278
|
+
await this.moduleLoader.reloadModule(file);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
if (affectedEventFiles.length > 0) {
|
|
282
|
+
for (const file of affectedEventFiles) {
|
|
283
|
+
await this.moduleLoader.reloadModule(file);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
if (affectedRouteFiles.length > 0) {
|
|
287
|
+
for (const file of affectedRouteFiles) {
|
|
288
|
+
await this.moduleLoader.reloadModule(file);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}export{LayerExecutor};//# sourceMappingURL=layer-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layer-executor.js","sources":["../../src/dev2-server/layer-executor.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { FileManager } from "./file-manager";
|
|
2
|
+
import type { FileManifest } from "./types";
|
|
3
|
+
/**
|
|
4
|
+
* Manifest structure with metadata and files
|
|
5
|
+
*/
|
|
6
|
+
export type Manifest = {
|
|
7
|
+
version: string;
|
|
8
|
+
lastBuildTime: number;
|
|
9
|
+
projectHash?: string;
|
|
10
|
+
stats: {
|
|
11
|
+
totalFiles: number;
|
|
12
|
+
totalDependencies: number;
|
|
13
|
+
};
|
|
14
|
+
files: Record<string, FileManifest>;
|
|
15
|
+
};
|
|
16
|
+
export declare class ManifestManager {
|
|
17
|
+
private readonly files;
|
|
18
|
+
/**
|
|
19
|
+
* Manifest data with metadata
|
|
20
|
+
*/
|
|
21
|
+
private manifest;
|
|
22
|
+
/**
|
|
23
|
+
* Constructor
|
|
24
|
+
*/
|
|
25
|
+
constructor(files: Map<string, FileManager>);
|
|
26
|
+
/**
|
|
27
|
+
* Initialize manifest manager
|
|
28
|
+
* @returns true if manifest exists, false otherwise
|
|
29
|
+
*/
|
|
30
|
+
init(): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Save manifest to disk
|
|
33
|
+
*/
|
|
34
|
+
save(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Get file manifest data
|
|
37
|
+
*/
|
|
38
|
+
getFile(filePath: string): FileManifest | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* Check if file exists in manifest
|
|
41
|
+
*/
|
|
42
|
+
hasFile(filePath: string): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Set file manifest data
|
|
45
|
+
*/
|
|
46
|
+
setFile(filePath: string, fileManifest: FileManifest): void;
|
|
47
|
+
/**
|
|
48
|
+
* Remove file from manifest
|
|
49
|
+
*/
|
|
50
|
+
removeFile(filePath: string): void;
|
|
51
|
+
/**
|
|
52
|
+
* Get all file paths in manifest
|
|
53
|
+
*/
|
|
54
|
+
getAllFilePaths(): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Get all file manifests
|
|
57
|
+
*/
|
|
58
|
+
getAllFiles(): Record<string, FileManifest>;
|
|
59
|
+
/**
|
|
60
|
+
* Get manifest metadata
|
|
61
|
+
*/
|
|
62
|
+
getMetadata(): {
|
|
63
|
+
version: string;
|
|
64
|
+
lastBuildTime: number;
|
|
65
|
+
projectHash: string;
|
|
66
|
+
stats: {
|
|
67
|
+
totalFiles: number;
|
|
68
|
+
totalDependencies: number;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Calculate total dependencies across all files
|
|
73
|
+
*/
|
|
74
|
+
private calculateTotalDependencies;
|
|
75
|
+
/**
|
|
76
|
+
* Clear all files from manifest
|
|
77
|
+
*/
|
|
78
|
+
clear(): void;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=manifest-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-manager.d.ts","sourceRoot":"","sources":["../../src/dev2-server/manifest-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE;QACL,UAAU,EAAE,MAAM,CAAC;QACnB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACrC,CAAC;AAEF,qBAAa,eAAe;IAiBP,OAAO,CAAC,QAAQ,CAAC,KAAK;IAhBzC;;OAEG;IACH,OAAO,CAAC,QAAQ,CAQd;IAEF;;OAEG;gBACiC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAEnE;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IASrC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IASlC;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI1D;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,IAAI;IAIlE;;OAEG;IACI,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIzC;;OAEG;IACI,eAAe,IAAI,MAAM,EAAE;IAIlC;;OAEG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC;IAIlD;;OAEG;IACI,WAAW;;;;;;;;;IASlB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAOlC;;OAEG;IACI,KAAK,IAAI,IAAI;CAOrB"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import {fileExistsAsync,getJsonFileAsync,putFileAsync}from'@mongez/fs';import {MANIFEST_PATH}from'./flags.js';class ManifestManager {
|
|
2
|
+
files;
|
|
3
|
+
/**
|
|
4
|
+
* Manifest data with metadata
|
|
5
|
+
*/
|
|
6
|
+
manifest = {
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
lastBuildTime: Date.now(),
|
|
9
|
+
stats: {
|
|
10
|
+
totalFiles: 0,
|
|
11
|
+
totalDependencies: 0,
|
|
12
|
+
},
|
|
13
|
+
files: {},
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Constructor
|
|
17
|
+
*/
|
|
18
|
+
constructor(files) {
|
|
19
|
+
this.files = files;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Initialize manifest manager
|
|
23
|
+
* @returns true if manifest exists, false otherwise
|
|
24
|
+
*/
|
|
25
|
+
async init() {
|
|
26
|
+
if (await fileExistsAsync(MANIFEST_PATH)) {
|
|
27
|
+
this.manifest = await getJsonFileAsync(MANIFEST_PATH);
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Save manifest to disk
|
|
36
|
+
*/
|
|
37
|
+
async save() {
|
|
38
|
+
// Update stats before saving
|
|
39
|
+
this.manifest.stats.totalFiles = Object.keys(this.manifest.files).length;
|
|
40
|
+
this.manifest.stats.totalDependencies = this.calculateTotalDependencies();
|
|
41
|
+
this.manifest.lastBuildTime = Date.now();
|
|
42
|
+
await putFileAsync(MANIFEST_PATH, JSON.stringify(this.manifest, null, 2));
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get file manifest data
|
|
46
|
+
*/
|
|
47
|
+
getFile(filePath) {
|
|
48
|
+
return this.manifest.files[filePath];
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if file exists in manifest
|
|
52
|
+
*/
|
|
53
|
+
hasFile(filePath) {
|
|
54
|
+
return filePath in this.manifest.files;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Set file manifest data
|
|
58
|
+
*/
|
|
59
|
+
setFile(filePath, fileManifest) {
|
|
60
|
+
this.manifest.files[filePath] = fileManifest;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Remove file from manifest
|
|
64
|
+
*/
|
|
65
|
+
removeFile(filePath) {
|
|
66
|
+
delete this.manifest.files[filePath];
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get all file paths in manifest
|
|
70
|
+
*/
|
|
71
|
+
getAllFilePaths() {
|
|
72
|
+
return Object.keys(this.manifest.files);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get all file manifests
|
|
76
|
+
*/
|
|
77
|
+
getAllFiles() {
|
|
78
|
+
return this.manifest.files;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get manifest metadata
|
|
82
|
+
*/
|
|
83
|
+
getMetadata() {
|
|
84
|
+
return {
|
|
85
|
+
version: this.manifest.version,
|
|
86
|
+
lastBuildTime: this.manifest.lastBuildTime,
|
|
87
|
+
projectHash: this.manifest.projectHash,
|
|
88
|
+
stats: this.manifest.stats,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Calculate total dependencies across all files
|
|
93
|
+
*/
|
|
94
|
+
calculateTotalDependencies() {
|
|
95
|
+
return Object.values(this.manifest.files).reduce((total, file) => total + (file.dependencies?.length || 0), 0);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Clear all files from manifest
|
|
99
|
+
*/
|
|
100
|
+
clear() {
|
|
101
|
+
this.manifest.files = {};
|
|
102
|
+
this.manifest.stats = {
|
|
103
|
+
totalFiles: 0,
|
|
104
|
+
totalDependencies: 0,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}export{ManifestManager};//# sourceMappingURL=manifest-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-manager.js","sources":["../../src/dev2-server/manifest-manager.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import type { FileManager } from "./file-manager";
|
|
2
|
+
import type { SpecialFilesCollector } from "./special-files-collector";
|
|
3
|
+
/**
|
|
4
|
+
* Module Loader
|
|
5
|
+
* Dynamically loads and manages application modules (main, routes, events, locales)
|
|
6
|
+
* Handles module cache invalidation for HMR
|
|
7
|
+
*/
|
|
8
|
+
export declare class ModuleLoader {
|
|
9
|
+
private readonly specialFilesCollector;
|
|
10
|
+
/**
|
|
11
|
+
* Loaded modules cache
|
|
12
|
+
* Maps absolute path to loaded module
|
|
13
|
+
*/
|
|
14
|
+
private readonly loadedModules;
|
|
15
|
+
/**
|
|
16
|
+
* Constructor
|
|
17
|
+
*/
|
|
18
|
+
constructor(specialFilesCollector: SpecialFilesCollector);
|
|
19
|
+
/**
|
|
20
|
+
* Load all special files in correct order
|
|
21
|
+
*/
|
|
22
|
+
loadAll(): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* Load all main.ts files
|
|
25
|
+
* Main files are module entry points that run initialization code
|
|
26
|
+
* Loaded in parallel as they should be independent
|
|
27
|
+
*/
|
|
28
|
+
loadMainFiles(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Load all locale files
|
|
31
|
+
* Locale files register translations
|
|
32
|
+
* Loaded in parallel as they are independent
|
|
33
|
+
*/
|
|
34
|
+
loadLocaleFiles(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Load all event files
|
|
37
|
+
* Event files register event handlers
|
|
38
|
+
* Loaded in parallel as they are independent
|
|
39
|
+
*/
|
|
40
|
+
loadEventFiles(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Load all route files
|
|
43
|
+
* Route files register HTTP routes
|
|
44
|
+
* Loaded sequentially as order might matter
|
|
45
|
+
*/
|
|
46
|
+
loadRouteFiles(): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Load a single module
|
|
49
|
+
* @param file FileManager instance
|
|
50
|
+
* @param type Module type for logging
|
|
51
|
+
* @param bustCache Whether to add timestamp for cache busting (for HMR)
|
|
52
|
+
*/
|
|
53
|
+
private loadModule;
|
|
54
|
+
/**
|
|
55
|
+
* Reload a single module (for HMR)
|
|
56
|
+
* @param file FileManager instance
|
|
57
|
+
*/
|
|
58
|
+
reloadModule(file: FileManager): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Clear module cache for a specific file
|
|
61
|
+
* This forces Node.js to re-import the module
|
|
62
|
+
* @param absolutePath Absolute path to the module
|
|
63
|
+
*/
|
|
64
|
+
clearModuleCache(absolutePath: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* Clear module cache for multiple files
|
|
67
|
+
* @param absolutePaths Array of absolute paths
|
|
68
|
+
*/
|
|
69
|
+
clearModuleCacheMultiple(absolutePaths: string[]): void;
|
|
70
|
+
/**
|
|
71
|
+
* Clear all application module cache
|
|
72
|
+
* Used for full server restart
|
|
73
|
+
*/
|
|
74
|
+
clearAllModuleCache(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Get loaded module by path
|
|
77
|
+
* @param absolutePath Absolute path to the module
|
|
78
|
+
*/
|
|
79
|
+
getLoadedModule(absolutePath: string): any | undefined;
|
|
80
|
+
/**
|
|
81
|
+
* Check if a module is loaded
|
|
82
|
+
* @param absolutePath Absolute path to the module
|
|
83
|
+
*/
|
|
84
|
+
isModuleLoaded(absolutePath: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Get all loaded module paths
|
|
87
|
+
*/
|
|
88
|
+
getLoadedModulePaths(): string[];
|
|
89
|
+
/**
|
|
90
|
+
* Get statistics about loaded modules
|
|
91
|
+
*/
|
|
92
|
+
getStats(): {
|
|
93
|
+
totalLoaded: number;
|
|
94
|
+
mainFiles: number;
|
|
95
|
+
routeFiles: number;
|
|
96
|
+
eventFiles: number;
|
|
97
|
+
localeFiles: number;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=module-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-loader.d.ts","sourceRoot":"","sources":["../../src/dev2-server/module-loader.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE;;;;GAIG;AACH,qBAAa,YAAY;IAUX,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IATlD;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IAExD;;OAEG;gBAC0B,qBAAqB,EAAE,qBAAqB;IAEzE;;OAEG;IACU,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQrC;;;;OAIG;IACU,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAa3C;;;;OAIG;IACU,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAa7C;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAa5C;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAc5C;;;;;OAKG;YACW,UAAU;IAoDxB;;;OAGG;IACU,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC3D;;;;OAIG;IACI,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAKnD;;;OAGG;IACI,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI;IAM9D;;;OAGG;IACI,mBAAmB,IAAI,IAAI;IAOlC;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,GAAG,GAAG,SAAS;IAI7D;;;OAGG;IACI,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAIpD;;OAEG;IACI,oBAAoB,IAAI,MAAM,EAAE;IAIvC;;OAEG;IACI,QAAQ,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB;CASF"}
|