@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,140 @@
|
|
|
1
|
+
'use strict';var events=require('@mongez/events'),reinforcements=require('@mongez/reinforcements'),devLogger=require('./dev-logger.js'),flags=require('./flags.js'),path=require('./path.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var events__default=/*#__PURE__*/_interopDefault(events);/**
|
|
2
|
+
* File Event Handler
|
|
3
|
+
* Handles runtime file system events (change, add, delete)
|
|
4
|
+
* Collects events and processes them in batches for optimal performance
|
|
5
|
+
*/
|
|
6
|
+
class FileEventHandler {
|
|
7
|
+
fileOperations;
|
|
8
|
+
manifest;
|
|
9
|
+
/**
|
|
10
|
+
* Pending events to process in batch
|
|
11
|
+
*/
|
|
12
|
+
pendingChanges = new Set();
|
|
13
|
+
pendingAdds = new Set();
|
|
14
|
+
pendingDeletes = new Set();
|
|
15
|
+
/**
|
|
16
|
+
* Debounced batch processor
|
|
17
|
+
* Waits for events to settle, then processes all at once
|
|
18
|
+
*/
|
|
19
|
+
processPendingEvents = reinforcements.debounce(async () => {
|
|
20
|
+
await this.processBatch();
|
|
21
|
+
}, 150); // Wait 250ms after last event
|
|
22
|
+
/**
|
|
23
|
+
* Constructor
|
|
24
|
+
*/
|
|
25
|
+
constructor(fileOperations, manifest) {
|
|
26
|
+
this.fileOperations = fileOperations;
|
|
27
|
+
this.manifest = manifest;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Handle file change event
|
|
31
|
+
* Collects events for batch processing
|
|
32
|
+
*/
|
|
33
|
+
handleFileChange(absolutePath) {
|
|
34
|
+
const relativePath = path.Path.toRelative(absolutePath);
|
|
35
|
+
// Add to pending changes
|
|
36
|
+
this.pendingChanges.add(relativePath);
|
|
37
|
+
// Trigger debounced batch processor
|
|
38
|
+
this.processPendingEvents();
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Handle new file added
|
|
42
|
+
* Collects events for batch processing
|
|
43
|
+
*/
|
|
44
|
+
handleFileAdd(absolutePath) {
|
|
45
|
+
const relativePath = path.Path.toRelative(absolutePath);
|
|
46
|
+
// Add to pending adds
|
|
47
|
+
this.pendingAdds.add(relativePath);
|
|
48
|
+
// Trigger debounced batch processor
|
|
49
|
+
this.processPendingEvents();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Handle file deleted
|
|
53
|
+
* Collects events for batch processing
|
|
54
|
+
*/
|
|
55
|
+
handleFileDelete(absolutePath) {
|
|
56
|
+
const relativePath = path.Path.toRelative(absolutePath);
|
|
57
|
+
// Add to pending deletes
|
|
58
|
+
this.pendingDeletes.add(relativePath);
|
|
59
|
+
// Trigger debounced batch processor
|
|
60
|
+
this.processPendingEvents();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Process all pending events in batch
|
|
64
|
+
*/
|
|
65
|
+
async processBatch() {
|
|
66
|
+
// Get snapshots of pending events
|
|
67
|
+
const changes = Array.from(this.pendingChanges);
|
|
68
|
+
const adds = Array.from(this.pendingAdds);
|
|
69
|
+
const deletes = Array.from(this.pendingDeletes);
|
|
70
|
+
// Clear pending sets
|
|
71
|
+
this.pendingChanges.clear();
|
|
72
|
+
this.pendingAdds.clear();
|
|
73
|
+
this.pendingDeletes.clear();
|
|
74
|
+
// Skip if nothing to process
|
|
75
|
+
if (changes.length === 0 && adds.length === 0 && deletes.length === 0) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
// Silent batch processing
|
|
79
|
+
// Process in order: adds first (so new files are available for import transformation),
|
|
80
|
+
// then changes (can reference newly added files), then deletes
|
|
81
|
+
await this.processBatchAdds(adds);
|
|
82
|
+
await this.processBatchChanges(changes);
|
|
83
|
+
await this.processBatchDeletes(deletes);
|
|
84
|
+
// Update dependency graph and manifest once
|
|
85
|
+
this.fileOperations.updateFileDependents();
|
|
86
|
+
this.fileOperations.syncFilesToManifest();
|
|
87
|
+
await this.manifest.save();
|
|
88
|
+
// Trigger batch completion event (for reload execution)
|
|
89
|
+
events__default.default.trigger("dev-server:batch-complete", {
|
|
90
|
+
added: adds,
|
|
91
|
+
changed: changes,
|
|
92
|
+
deleted: deletes,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Process batch of changed files
|
|
97
|
+
*/
|
|
98
|
+
async processBatchChanges(relativePaths) {
|
|
99
|
+
if (relativePaths.length === 0)
|
|
100
|
+
return;
|
|
101
|
+
const BATCH_SIZE = flags.FILE_PROCESSING_BATCH_SIZE;
|
|
102
|
+
for (let i = 0; i < relativePaths.length; i += BATCH_SIZE) {
|
|
103
|
+
const batch = relativePaths.slice(i, i + BATCH_SIZE);
|
|
104
|
+
await Promise.all(batch.map(async (relativePath) => {
|
|
105
|
+
await this.fileOperations.updateFile(relativePath);
|
|
106
|
+
}));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Process batch of added files
|
|
111
|
+
*/
|
|
112
|
+
async processBatchAdds(relativePaths) {
|
|
113
|
+
if (relativePaths.length === 0)
|
|
114
|
+
return;
|
|
115
|
+
const BATCH_SIZE = flags.FILE_PROCESSING_BATCH_SIZE;
|
|
116
|
+
for (let i = 0; i < relativePaths.length; i += BATCH_SIZE) {
|
|
117
|
+
const batch = relativePaths.slice(i, i + BATCH_SIZE);
|
|
118
|
+
await Promise.all(batch.map(async (relativePath) => {
|
|
119
|
+
try {
|
|
120
|
+
await this.fileOperations.addFile(relativePath);
|
|
121
|
+
devLogger.devLogSuccess(`Added file: ${relativePath}`);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
// File might already exist, ignore
|
|
125
|
+
}
|
|
126
|
+
}));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Process batch of deleted files
|
|
131
|
+
*/
|
|
132
|
+
async processBatchDeletes(relativePaths) {
|
|
133
|
+
if (relativePaths.length === 0)
|
|
134
|
+
return;
|
|
135
|
+
for (const relativePath of relativePaths) {
|
|
136
|
+
await this.fileOperations.deleteFile(relativePath);
|
|
137
|
+
devLogger.devLogSuccess(`Deleted file: ${relativePath}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}exports.FileEventHandler=FileEventHandler;//# sourceMappingURL=file-event-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-event-handler.js","sources":["../../src/dev2-server/file-event-handler.ts"],"sourcesContent":[null],"names":["debounce","Path","events","FILE_PROCESSING_BATCH_SIZE","devLogSuccess"],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { FileManifest, FileState, FileType, LayerType } from "./types";
|
|
2
|
+
export declare class FileManager {
|
|
3
|
+
readonly absolutePath: string;
|
|
4
|
+
files: Map<string, FileManager>;
|
|
5
|
+
/**
|
|
6
|
+
* Relative path to root directory
|
|
7
|
+
*/
|
|
8
|
+
relativePath: string;
|
|
9
|
+
/**
|
|
10
|
+
* Last modified timestamp
|
|
11
|
+
*/
|
|
12
|
+
lastModified: number;
|
|
13
|
+
/**
|
|
14
|
+
* Hash of the file content
|
|
15
|
+
*/
|
|
16
|
+
hash: string;
|
|
17
|
+
/**
|
|
18
|
+
* Source code of the file
|
|
19
|
+
*/
|
|
20
|
+
source: string;
|
|
21
|
+
/**
|
|
22
|
+
* Transpiled code of the file
|
|
23
|
+
*/
|
|
24
|
+
transpiled: string;
|
|
25
|
+
/**
|
|
26
|
+
* Dependencies of the file (relative paths)
|
|
27
|
+
*/
|
|
28
|
+
dependencies: Set<string>;
|
|
29
|
+
/**
|
|
30
|
+
* Import map: original import path -> resolved absolute path
|
|
31
|
+
* Used for import transformation
|
|
32
|
+
*/
|
|
33
|
+
importMap: Map<string, string>;
|
|
34
|
+
/**
|
|
35
|
+
* Dependents of the file
|
|
36
|
+
*/
|
|
37
|
+
dependents: Set<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Version of the file
|
|
40
|
+
*/
|
|
41
|
+
version: number;
|
|
42
|
+
/**
|
|
43
|
+
* Type of the file
|
|
44
|
+
*/
|
|
45
|
+
type: FileType | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Layer of the file
|
|
48
|
+
*/
|
|
49
|
+
layer: LayerType | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Cache path of the file
|
|
52
|
+
*/
|
|
53
|
+
cachePath: string;
|
|
54
|
+
/**
|
|
55
|
+
* Whether imports have been transformed to cache paths
|
|
56
|
+
*/
|
|
57
|
+
importsTransformed: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Whether this file contains only type definitions (no runtime code)
|
|
60
|
+
* Used to exclude from circular dependency detection
|
|
61
|
+
*/
|
|
62
|
+
isTypeOnlyFile: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* File state
|
|
65
|
+
*/
|
|
66
|
+
state: FileState;
|
|
67
|
+
/**
|
|
68
|
+
* Constructor
|
|
69
|
+
*/
|
|
70
|
+
constructor(absolutePath: string, files: Map<string, FileManager>);
|
|
71
|
+
/**
|
|
72
|
+
* Initialize the file manager
|
|
73
|
+
* @param fileManifest Optional manifest data from previous build
|
|
74
|
+
* @param filesMap Optional map of all FileManager instances (for import transformation)
|
|
75
|
+
*/
|
|
76
|
+
init(fileManifest?: Partial<FileManifest>): Promise<void>;
|
|
77
|
+
/**
|
|
78
|
+
* Load file with manifest data (check if changed)
|
|
79
|
+
*/
|
|
80
|
+
protected loadFromManifest(fileManifest: Partial<FileManifest>): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Load file from disk (fresh, no manifest)
|
|
83
|
+
*/
|
|
84
|
+
protected loadFromDisk(): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Process file: parse imports first, then transpile
|
|
87
|
+
*/
|
|
88
|
+
protected processFile(): Promise<void>;
|
|
89
|
+
/**
|
|
90
|
+
* Detect file type and layer based on path
|
|
91
|
+
*/
|
|
92
|
+
protected detectFileTypeAndLayer(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Update file when changed during development
|
|
95
|
+
*/
|
|
96
|
+
update(): Promise<boolean>;
|
|
97
|
+
/**
|
|
98
|
+
* Force reprocess file even if source hasn't changed
|
|
99
|
+
* Useful when dependencies become available (e.g., missing file is added back)
|
|
100
|
+
*/
|
|
101
|
+
forceReprocess(): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Transform imports in transpiled code to use cache paths
|
|
104
|
+
*/
|
|
105
|
+
transformImports(): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* Export file data as manifest entry
|
|
108
|
+
* Note: source and transpiled code are NOT stored in manifest
|
|
109
|
+
* - Source code is in the original file
|
|
110
|
+
* - Transpiled code is in .warlock/cache/
|
|
111
|
+
* - Hash is used to detect changes
|
|
112
|
+
*/
|
|
113
|
+
toManifest(): FileManifest;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=file-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-manager.d.ts","sourceRoot":"","sources":["../../src/dev2-server/file-manager.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAG5E,qBAAa,WAAW;aAsEJ,YAAY,EAAE,MAAM;IAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAtExC;;OAEG;IACI,YAAY,SAAM;IACzB;;OAEG;IACI,YAAY,SAAK;IACxB;;OAEG;IACI,IAAI,SAAM;IACjB;;OAEG;IACI,MAAM,SAAM;IACnB;;OAEG;IACI,UAAU,SAAM;IACvB;;OAEG;IACI,YAAY,cAAqB;IACxC;;;OAGG;IACI,SAAS,sBAA6B;IAC7C;;OAEG;IACI,UAAU,cAAqB;IACtC;;OAEG;IACI,OAAO,SAAK;IACnB;;OAEG;IACI,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAClC;;OAEG;IACI,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACpC;;OAEG;IACI,SAAS,SAAM;IACtB;;OAEG;IACI,kBAAkB,UAAS;IAElC;;;OAGG;IACI,cAAc,UAAS;IAE9B;;OAEG;IACI,KAAK,EAAE,SAAS,CAAU;IAEjC;;OAEG;gBAEe,YAAY,EAAE,MAAM,EAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC;IAGxC;;;;OAIG;IACU,IAAI,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAiBtD;;OAEG;cACa,gBAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,YAAY,CAAC;IA6DpE;;OAEG;cACa,YAAY;IAoB5B;;OAEG;cACa,WAAW;IAmB3B;;OAEG;IACH,SAAS,CAAC,sBAAsB;IA6DhC;;OAEG;IACU,MAAM;IA+BnB;;;OAGG;IACU,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB5C;;OAEG;IACU,gBAAgB;IAsB7B;;;;;;OAMG;IACI,UAAU,IAAI,YAAY;CAclC"}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
'use strict';var events=require('@mongez/events'),fs=require('@mongez/fs'),crypto=require('crypto'),events$1=require('./events.js'),importTransformer=require('./import-transformer.js'),parseImports=require('./parse-imports.js'),path=require('./path.js'),transpileFile=require('./transpile-file.js'),utils=require('./utils.js');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var events__default=/*#__PURE__*/_interopDefault(events);var crypto__default=/*#__PURE__*/_interopDefault(crypto);class FileManager {
|
|
2
|
+
absolutePath;
|
|
3
|
+
files;
|
|
4
|
+
/**
|
|
5
|
+
* Relative path to root directory
|
|
6
|
+
*/
|
|
7
|
+
relativePath = "";
|
|
8
|
+
/**
|
|
9
|
+
* Last modified timestamp
|
|
10
|
+
*/
|
|
11
|
+
lastModified = 0;
|
|
12
|
+
/**
|
|
13
|
+
* Hash of the file content
|
|
14
|
+
*/
|
|
15
|
+
hash = "";
|
|
16
|
+
/**
|
|
17
|
+
* Source code of the file
|
|
18
|
+
*/
|
|
19
|
+
source = "";
|
|
20
|
+
/**
|
|
21
|
+
* Transpiled code of the file
|
|
22
|
+
*/
|
|
23
|
+
transpiled = "";
|
|
24
|
+
/**
|
|
25
|
+
* Dependencies of the file (relative paths)
|
|
26
|
+
*/
|
|
27
|
+
dependencies = new Set();
|
|
28
|
+
/**
|
|
29
|
+
* Import map: original import path -> resolved absolute path
|
|
30
|
+
* Used for import transformation
|
|
31
|
+
*/
|
|
32
|
+
importMap = new Map();
|
|
33
|
+
/**
|
|
34
|
+
* Dependents of the file
|
|
35
|
+
*/
|
|
36
|
+
dependents = new Set();
|
|
37
|
+
/**
|
|
38
|
+
* Version of the file
|
|
39
|
+
*/
|
|
40
|
+
version = 0;
|
|
41
|
+
/**
|
|
42
|
+
* Type of the file
|
|
43
|
+
*/
|
|
44
|
+
type;
|
|
45
|
+
/**
|
|
46
|
+
* Layer of the file
|
|
47
|
+
*/
|
|
48
|
+
layer;
|
|
49
|
+
/**
|
|
50
|
+
* Cache path of the file
|
|
51
|
+
*/
|
|
52
|
+
cachePath = "";
|
|
53
|
+
/**
|
|
54
|
+
* Whether imports have been transformed to cache paths
|
|
55
|
+
*/
|
|
56
|
+
importsTransformed = false;
|
|
57
|
+
/**
|
|
58
|
+
* Whether this file contains only type definitions (no runtime code)
|
|
59
|
+
* Used to exclude from circular dependency detection
|
|
60
|
+
*/
|
|
61
|
+
isTypeOnlyFile = false;
|
|
62
|
+
/**
|
|
63
|
+
* File state
|
|
64
|
+
*/
|
|
65
|
+
state = "idle";
|
|
66
|
+
/**
|
|
67
|
+
* Constructor
|
|
68
|
+
*/
|
|
69
|
+
constructor(absolutePath, files) {
|
|
70
|
+
this.absolutePath = absolutePath;
|
|
71
|
+
this.files = files;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Initialize the file manager
|
|
75
|
+
* @param fileManifest Optional manifest data from previous build
|
|
76
|
+
* @param filesMap Optional map of all FileManager instances (for import transformation)
|
|
77
|
+
*/
|
|
78
|
+
async init(fileManifest) {
|
|
79
|
+
this.state = "loading";
|
|
80
|
+
// No manifest = fresh file, load from disk
|
|
81
|
+
if (!fileManifest) {
|
|
82
|
+
await this.loadFromDisk();
|
|
83
|
+
// Import transformation will happen later in FilesOrchestrator.transformAllImports()
|
|
84
|
+
// after all files are processed and available in the files map
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// Manifest exists = check if file changed since last build
|
|
88
|
+
await this.loadFromManifest(fileManifest);
|
|
89
|
+
// Import transformation will happen later in FilesOrchestrator.transformAllImports()
|
|
90
|
+
// for files that were reprocessed (importsTransformed = false)
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Load file with manifest data (check if changed)
|
|
94
|
+
*/
|
|
95
|
+
async loadFromManifest(fileManifest) {
|
|
96
|
+
// Set basic properties from manifest
|
|
97
|
+
this.relativePath =
|
|
98
|
+
fileManifest.relativePath || path.Path.toRelative(this.absolutePath);
|
|
99
|
+
this.version = fileManifest.version || 0;
|
|
100
|
+
this.type = fileManifest.type;
|
|
101
|
+
this.layer = fileManifest.layer;
|
|
102
|
+
this.cachePath =
|
|
103
|
+
fileManifest.cachePath ||
|
|
104
|
+
this.relativePath.replace(/\//g, "-").replace(/\.(ts|tsx)$/, ".js");
|
|
105
|
+
// Check if file still exists
|
|
106
|
+
try {
|
|
107
|
+
this.source = await fs.getFileAsync(this.absolutePath);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
this.state = "deleted";
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
// Calculate current hash
|
|
114
|
+
const currentHash = crypto__default.default
|
|
115
|
+
.createHash("sha256")
|
|
116
|
+
.update(this.source)
|
|
117
|
+
.digest("hex");
|
|
118
|
+
const currentLastModified = (await fs.lastModifiedAsync(this.absolutePath)).getTime();
|
|
119
|
+
// Compare with manifest data
|
|
120
|
+
const hasChanged = currentHash !== fileManifest.hash;
|
|
121
|
+
if (hasChanged) {
|
|
122
|
+
// File changed - reprocess it
|
|
123
|
+
this.hash = currentHash;
|
|
124
|
+
this.lastModified = currentLastModified;
|
|
125
|
+
this.version++;
|
|
126
|
+
await this.processFile();
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
// File unchanged - load from cache
|
|
130
|
+
this.hash = fileManifest.hash;
|
|
131
|
+
this.lastModified = fileManifest.lastModified;
|
|
132
|
+
this.dependencies = new Set(fileManifest.dependencies || []);
|
|
133
|
+
this.dependents = new Set(fileManifest.dependents || []);
|
|
134
|
+
// Load cached transpiled code
|
|
135
|
+
try {
|
|
136
|
+
this.transpiled = await fs.getFileAsync(utils.warlockCachePath(this.cachePath));
|
|
137
|
+
// Cached files already have transformed imports
|
|
138
|
+
this.importsTransformed = true;
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
// Cache missing - retranspile
|
|
142
|
+
await this.processFile();
|
|
143
|
+
// Will need import transformation
|
|
144
|
+
this.importsTransformed = false;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
this.state = "ready";
|
|
148
|
+
events__default.default.trigger(events$1.DEV_SERVER_EVENTS.FILE_READY, this);
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Load file from disk (fresh, no manifest)
|
|
152
|
+
*/
|
|
153
|
+
async loadFromDisk() {
|
|
154
|
+
this.source = await fs.getFileAsync(this.absolutePath);
|
|
155
|
+
this.hash = crypto__default.default.createHash("sha256").update(this.source).digest("hex");
|
|
156
|
+
this.relativePath = path.Path.toRelative(this.absolutePath);
|
|
157
|
+
this.lastModified = (await fs.lastModifiedAsync(this.absolutePath)).getTime();
|
|
158
|
+
this.version = 0;
|
|
159
|
+
this.detectFileTypeAndLayer();
|
|
160
|
+
// Generate cache path (replace / with - and change extension to .js)
|
|
161
|
+
this.cachePath = this.relativePath
|
|
162
|
+
.replace(/\//g, "-")
|
|
163
|
+
.replace(/\.(ts|tsx)$/, ".js");
|
|
164
|
+
await this.processFile();
|
|
165
|
+
this.state = "ready";
|
|
166
|
+
events__default.default.trigger(events$1.DEV_SERVER_EVENTS.FILE_READY, this);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Process file: parse imports first, then transpile
|
|
170
|
+
*/
|
|
171
|
+
async processFile() {
|
|
172
|
+
// STEP 1: Parse imports from source (must be first to get dependencies)
|
|
173
|
+
const importMap = await parseImports.parseImports(this.source, this.absolutePath);
|
|
174
|
+
// Store dependencies as relative paths
|
|
175
|
+
this.dependencies = new Set(Array.from(importMap.values()).map(absPath => path.Path.toRelative(absPath)));
|
|
176
|
+
// Store import map for later use in import transformation
|
|
177
|
+
this.importMap = importMap;
|
|
178
|
+
// STEP 2: Transpile source code
|
|
179
|
+
this.transpiled = await transpileFile.transpile(this);
|
|
180
|
+
// STEP 3: Save transpiled code to cache
|
|
181
|
+
await fs.putFileAsync(utils.warlockCachePath(this.cachePath), this.transpiled);
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Detect file type and layer based on path
|
|
185
|
+
*/
|
|
186
|
+
detectFileTypeAndLayer() {
|
|
187
|
+
// Main entry files
|
|
188
|
+
if (this.relativePath.includes("main.ts") ||
|
|
189
|
+
this.relativePath.includes("main.tsx")) {
|
|
190
|
+
this.type = "main";
|
|
191
|
+
this.layer = "HMR";
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
// Config files - FSR but handled specially (reload config + restart affected connectors)
|
|
195
|
+
if (this.relativePath.startsWith("src/config/")) {
|
|
196
|
+
this.type = "config";
|
|
197
|
+
this.layer = "HMR";
|
|
198
|
+
return;
|
|
199
|
+
}
|
|
200
|
+
// Routes files
|
|
201
|
+
if (this.relativePath.endsWith("routes.ts") ||
|
|
202
|
+
this.relativePath.endsWith("routes.tsx")) {
|
|
203
|
+
this.type = "route";
|
|
204
|
+
this.layer = "HMR"; // For now FSR, will be HMR with wildcard routing
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
// Event files
|
|
208
|
+
if (this.relativePath.includes("/events/")) {
|
|
209
|
+
this.type = "event";
|
|
210
|
+
this.layer = "HMR";
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
// Controllers
|
|
214
|
+
if (this.relativePath.includes("controller")) {
|
|
215
|
+
this.type = "controller";
|
|
216
|
+
this.layer = "HMR";
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
// Services
|
|
220
|
+
if (this.relativePath.includes("service")) {
|
|
221
|
+
this.type = "service";
|
|
222
|
+
this.layer = "HMR";
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
// Models
|
|
226
|
+
if (this.relativePath.includes("model")) {
|
|
227
|
+
this.type = "model";
|
|
228
|
+
this.layer = "HMR";
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
// Default: other files use HMR
|
|
232
|
+
this.type = "other";
|
|
233
|
+
this.layer = "HMR";
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Update file when changed during development
|
|
237
|
+
*/
|
|
238
|
+
async update() {
|
|
239
|
+
performance.now();
|
|
240
|
+
const newSource = await fs.getFileAsync(this.absolutePath);
|
|
241
|
+
// No change in content
|
|
242
|
+
if (newSource.trim() === this.source.trim()) {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
this.state = "updating";
|
|
246
|
+
this.source = newSource;
|
|
247
|
+
this.version++;
|
|
248
|
+
// Update hash and last modified
|
|
249
|
+
this.hash = crypto__default.default.createHash("sha256").update(this.source).digest("hex");
|
|
250
|
+
this.lastModified = (await fs.lastModifiedAsync(this.absolutePath)).getTime();
|
|
251
|
+
// Reprocess file
|
|
252
|
+
await this.processFile();
|
|
253
|
+
// Transform imports
|
|
254
|
+
if (this.dependencies.size > 0) {
|
|
255
|
+
this.importsTransformed = false;
|
|
256
|
+
await this.transformImports();
|
|
257
|
+
}
|
|
258
|
+
this.state = "ready";
|
|
259
|
+
return true;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Force reprocess file even if source hasn't changed
|
|
263
|
+
* Useful when dependencies become available (e.g., missing file is added back)
|
|
264
|
+
*/
|
|
265
|
+
async forceReprocess() {
|
|
266
|
+
this.state = "updating";
|
|
267
|
+
this.version++;
|
|
268
|
+
// Reprocess file (re-parse imports, retranspile, transform imports)
|
|
269
|
+
await this.processFile();
|
|
270
|
+
// Transform imports
|
|
271
|
+
if (this.dependencies.size > 0) {
|
|
272
|
+
this.importsTransformed = false;
|
|
273
|
+
await this.transformImports();
|
|
274
|
+
}
|
|
275
|
+
this.state = "ready";
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Transform imports in transpiled code to use cache paths
|
|
279
|
+
*/
|
|
280
|
+
async transformImports() {
|
|
281
|
+
if (this.importsTransformed) {
|
|
282
|
+
return; // Already transformed
|
|
283
|
+
}
|
|
284
|
+
try {
|
|
285
|
+
// Transform imports in transpiled code
|
|
286
|
+
const transformedCode = importTransformer.transformImports(this, this.files);
|
|
287
|
+
// Update the transpiled code
|
|
288
|
+
this.transpiled = transformedCode;
|
|
289
|
+
// Save the transformed code back to cache
|
|
290
|
+
await fs.putFileAsync(utils.warlockCachePath(this.cachePath), transformedCode);
|
|
291
|
+
// Mark as transformed
|
|
292
|
+
this.importsTransformed = true;
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
throw error;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Export file data as manifest entry
|
|
300
|
+
* Note: source and transpiled code are NOT stored in manifest
|
|
301
|
+
* - Source code is in the original file
|
|
302
|
+
* - Transpiled code is in .warlock/cache/
|
|
303
|
+
* - Hash is used to detect changes
|
|
304
|
+
*/
|
|
305
|
+
toManifest() {
|
|
306
|
+
return {
|
|
307
|
+
absolutePath: this.absolutePath,
|
|
308
|
+
relativePath: this.relativePath,
|
|
309
|
+
lastModified: this.lastModified,
|
|
310
|
+
hash: this.hash,
|
|
311
|
+
dependencies: Array.from(this.dependencies),
|
|
312
|
+
dependents: Array.from(this.dependents),
|
|
313
|
+
version: this.version,
|
|
314
|
+
type: this.type,
|
|
315
|
+
layer: this.layer,
|
|
316
|
+
cachePath: this.cachePath,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
}exports.FileManager=FileManager;//# sourceMappingURL=file-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-manager.js","sources":["../../src/dev2-server/file-manager.ts"],"sourcesContent":[null],"names":["Path","getFileAsync","crypto","lastModifiedAsync","warlockCachePath","events","DEV_SERVER_EVENTS","parseImports","transpile","putFileAsync","transformImports"],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { DependencyGraph } from "./dependency-graph";
|
|
2
|
+
import { FileManager } from "./file-manager";
|
|
3
|
+
import type { ManifestManager } from "./manifest-manager";
|
|
4
|
+
import type { SpecialFilesCollector } from "./special-files-collector";
|
|
5
|
+
/**
|
|
6
|
+
* FileOperations
|
|
7
|
+
* Handles file lifecycle operations: add, update, delete
|
|
8
|
+
*
|
|
9
|
+
* Responsibilities:
|
|
10
|
+
* - Create/update/delete FileManager instances
|
|
11
|
+
* - Manage cache files
|
|
12
|
+
* - Update dependency graph
|
|
13
|
+
* - Update special files collector
|
|
14
|
+
* - Trigger events
|
|
15
|
+
*/
|
|
16
|
+
export declare class FileOperations {
|
|
17
|
+
private readonly files;
|
|
18
|
+
private readonly dependencyGraph;
|
|
19
|
+
private readonly manifest;
|
|
20
|
+
private readonly specialFilesCollector;
|
|
21
|
+
constructor(files: Map<string, FileManager>, dependencyGraph: DependencyGraph, manifest: ManifestManager, specialFilesCollector: SpecialFilesCollector);
|
|
22
|
+
/**
|
|
23
|
+
* Add a new file to the system
|
|
24
|
+
* @param relativePath - Relative path of the file
|
|
25
|
+
* @returns The created FileManager instance
|
|
26
|
+
*/
|
|
27
|
+
addFile(relativePath: string): Promise<FileManager>;
|
|
28
|
+
/**
|
|
29
|
+
* Reload files that might have been waiting for this dependency
|
|
30
|
+
* When a file is added, check if any existing files have imports
|
|
31
|
+
* that could now resolve to this new file
|
|
32
|
+
*/
|
|
33
|
+
private reloadFilesWaitingForDependency;
|
|
34
|
+
/**
|
|
35
|
+
* Update an existing file
|
|
36
|
+
* @param relativePath - Relative path of the file
|
|
37
|
+
* @returns True if file was changed, false if unchanged
|
|
38
|
+
*/
|
|
39
|
+
updateFile(relativePath: string): Promise<boolean>;
|
|
40
|
+
/**
|
|
41
|
+
* Delete a file from the system
|
|
42
|
+
* @param relativePath - Relative path of the file
|
|
43
|
+
*/
|
|
44
|
+
deleteFile(relativePath: string): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Update dependents in all FileManager instances from dependency graph
|
|
47
|
+
*/
|
|
48
|
+
updateFileDependents(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Sync all FileManager instances to manifest
|
|
51
|
+
*/
|
|
52
|
+
syncFilesToManifest(): void;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=file-operations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-operations.d.ts","sourceRoot":"","sources":["../../src/dev2-server/file-operations.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGvE;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAHrB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EAC/B,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,eAAe,EACzB,qBAAqB,EAAE,qBAAqB;IAG/D;;;;OAIG;IACU,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiChE;;;;OAIG;YACW,+BAA+B;IAiD7C;;;;OAIG;IACU,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwC/D;;;OAGG;IACU,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC5D;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAOnC;;OAEG;IACI,mBAAmB,IAAI,IAAI;CAKnC"}
|