Skip to content

Commit cc85d67

Browse files
author
DavidQ
committed
Remove shared index barrel exports in favor of direct imports - PR_26140_065-remove-shared-index-barrels
1 parent 5497efb commit cc85d67

80 files changed

Lines changed: 120 additions & 171 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# PR_26140_065 Shared Index Barrel Removal Report
2+
3+
## Summary
4+
- Removed the remaining `src/shared/**/index.js` barrel files.
5+
- Replaced imports from shared folder indexes with direct canonical file imports.
6+
- Preserved behavior by changing only module specifiers and deleting now-unused barrel files.
7+
- No replacement pass-through files or root shared exports were created.
8+
9+
## Shared Barrels Removed
10+
- `src/shared/contracts/index.js`
11+
- `src/shared/id/index.js`
12+
- `src/shared/math/index.js`
13+
- `src/shared/number/index.js`
14+
- `src/shared/state/index.js`
15+
- `src/shared/string/index.js`
16+
17+
## Direct Import Decisions
18+
- String helpers now import from `src/shared/string/strings.js`.
19+
- Number helpers now import from `src/shared/number/numbers.js`.
20+
- Promotion state consumers now import `getPromotionState` from `src/shared/state/getState.js`.
21+
- Replay contract consumers now import replay constants from `src/shared/contracts/replayContracts.js`.
22+
- Existing imports that already targeted canonical files were left unchanged.
23+
24+
## Guardrail Checks
25+
- PASS: no active imports remain from `src/shared/**/index.js`.
26+
- PASS: no `src/shared/**/index.js` files remain.
27+
- PASS: no sample JSON files were modified.
28+
- PASS: no replacement pass-through files were created under `src/shared`.
29+
- Required exception: none.
30+
31+
## Validation
32+
- PASS: targeted syntax validation for 71 changed JavaScript files.
33+
- PASS: targeted import-target validation for 71 changed JavaScript files.
34+
- PASS: `npm run test:workspace-v2` with 59 passed.
35+
- PASS: `git diff --check` completed with Git CRLF normalization warnings only.
36+
37+
## Coverage Guardrail
38+
- Playwright generated the advisory V8 coverage report at `docs/dev/reports/coverage_changed_js_guardrail.txt`.
39+
- Missing or low coverage entries are WARN-only per project instructions.
40+
41+
## Full Samples Smoke Test
42+
- Skipped. The PR is scoped to shared import-path normalization and the requested targeted validation plus Workspace V2 test gate passed.
43+
44+
## Manual Validation
45+
1. Review `docs/dev/reports/codex_review.diff` and confirm all shared index imports now point at canonical files.
46+
2. Confirm `src/shared` contains no `index.js` files in any nested folder.
47+
3. Launch Workspace Manager V2 and confirm tool/game flows still load normally.

games/Asteroids/debug/asteroidsShowcaseDebug.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ asteroidsShowcaseDebug.js
66
*/
77

88
import { asArray, asObject } from "/src/engine/debug/inspectors/shared/inspectorUtils.js";
9-
import { sanitizeText } from "/src/shared/string/index.js";
9+
import { sanitizeText } from "/src/shared/string/strings.js";
1010

1111
function formatNumber(value, defaultValue = 0) {
1212
return Number.isFinite(value) ? Number(value) : defaultValue;

games/Asteroids/game/AsteroidsGameScene.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ AsteroidsGameScene.js
66
*/
77
import { AttractModeController, Scene } from '/src/engine/scene/index.js';
88
import { ParticleSystem } from '/src/engine/fx/index.js';
9-
import { asPositiveInteger } from '/src/shared/number/index.js';
9+
import { asPositiveInteger } from '/src/shared/number/numbers.js';
1010
import AsteroidsSession from './AsteroidsSession.js';
1111
import AsteroidsWorld from './AsteroidsWorld.js';
1212
import AsteroidsAudio from '../systems/AsteroidsAudio.js';

games/Asteroids/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { ObjectVectorRuntimeAssetService } from "/src/engine/rendering/index.js"
88
import { Theme, ThemeTokens } from "/src/engine/theme/index.js";
99
import { resolveDebugConfig } from "/src/shared/debug/config.js";
1010
import { createNoopDevConsoleIntegration } from "/src/shared/debug/noopDevConsoleIntegration.js";
11-
import { asPositiveInteger } from "/src/shared/number/index.js";
11+
import { asPositiveInteger } from "/src/shared/number/numbers.js";
1212
import AsteroidsGameScene from "./game/AsteroidsGameScene.js";
1313
import { loadAsteroidsObjectGeometryFromManifest } from "./game/asteroidsObjectGeometryManifest.js";
1414
import { preloadWorkspaceGameAssetCatalog } from "../shared/workspaceGameAssetCatalog.js";

games/SolarSystem/game/SolarSystemWorld.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ David Quesenberry
55
SolarSystemWorld.js
66
*/
77
import { toObject } from '/src/shared/object/objects.js';
8-
import { toFiniteNumber } from '/src/shared/number/index.js';
8+
import { toFiniteNumber } from '/src/shared/number/numbers.js';
99

1010
const MAX_STEP_SECONDS = 1 / 60;
1111

games/bouncing-ball/game/BouncingBallWorld.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ BouncingBallWorld.js
66
*/
77
import { clamp } from '/src/shared/math/scalars.js';
88
import { toObject } from '/src/shared/object/objects.js';
9-
import { toFiniteNumber } from '/src/shared/number/index.js';
9+
import { toFiniteNumber } from '/src/shared/number/numbers.js';
1010

1111
const MAX_STEP_SECONDS = 1 / 120;
1212
const DEFAULT_BOUNCING_BALL_WORLD_SKIN = Object.freeze({

games/breakout/game/BreakoutWorld.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ BreakoutWorld.js
66
*/
77
import { clamp } from '/src/shared/math/scalars.js';
88
import { toObject } from '/src/shared/object/objects.js';
9-
import { toFiniteNumber } from '/src/shared/number/index.js';
9+
import { toFiniteNumber } from '/src/shared/number/numbers.js';
1010

1111
const MAX_STEP_SECONDS = 1 / 120;
1212

games/breakout/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { InputService } from '/src/engine/input/index.js';
99
import { Theme, ThemeTokens } from '/src/engine/theme/index.js';
1010
import { resolveDebugConfig } from '../../src/shared/debug/config.js';
1111
import { createNoopDevConsoleIntegration } from '../../src/shared/debug/noopDevConsoleIntegration.js';
12-
import { sanitizeText } from '../../src/shared/string/index.js';
12+
import { sanitizeText } from '../../src/shared/string/strings.js';
1313
import BreakoutScene from './game/BreakoutScene.js';
1414

1515
const theme = new Theme(ThemeTokens);

games/index.render.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { asArray } from '../src/shared/array/arrays.js';
22
import { getToolRegistry } from "../tools/toolRegistry.js";
33
import { resolveGamePreviewMap } from "./shared/gameManifestPreviewResolver.js";
4-
import { normalizeText, normalizeToken } from "../src/shared/string/index.js";
4+
import { normalizeText, normalizeToken } from "../src/shared/string/strings.js";
55
import { launchWithExternalToolWorkspaceReset, resolveGameWorkspaceLaunchHref } from "../tools/shared/toolLaunchSSoT.js";
66

77
const METADATA_PATH = "./metadata/games.index.metadata.json";

games/pong/game/PongScene.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import PongAudio from './PongAudio.js';
1010
import { getPongModes } from './PongModeConfig.js';
1111
import { wrapTextByCharacterCount } from '/src/shared/string/textWrap.js';
1212
import { toObject } from '/src/shared/object/objects.js';
13-
import { toFiniteNumber } from '/src/shared/number/index.js';
13+
import { toFiniteNumber } from '/src/shared/number/numbers.js';
1414

1515
const COURT = {
1616
width: 960,

0 commit comments

Comments
 (0)