mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-07 08:26:11 +00:00
Lands the authoritative data model and constants for the pure scope-based resolution RFC (#909) as Ring 1, part 1. No runtime behavior changes — types + constants only. New in gitnexus-shared/src/scope-resolution/: - types.ts — Scope, ScopeKind, ScopeId, DefId, Range, Capture, BindingRef, ImportEdge, TypeRef, Resolution, ResolutionEvidence, Reference, ReferenceIndex, LookupParams, RegistryContributor - evidence-weights.ts — EvidenceWeights constant map + typeBindingWeightAtDepth (RFC Appendix A) - origin-priority.ts — ORIGIN_PRIORITY constant map for deterministic tie-breaks (RFC Appendix B) - language-classification.ts — LanguageClassification type + LanguageClassifications map (production × 14, experimental × 2 for vue/cobol; governs Ring 4 DAG-retirement gate) - symbol-definition.ts — SymbolDefinition moved from gitnexus/src/core/ingestion/model/symbol-table.ts so scope-resolution types can reference it from the shared package Consumer updates: - symbol-table.ts: removes local SymbolDefinition declaration; imports from gitnexus-shared - model/index.ts: drops SymbolDefinition from barrel re-export per "direct imports from gitnexus-shared" convention (see gitnexus-shared feedback in project memory) - 9 source files + 5 test files: import SymbolDefinition directly from 'gitnexus-shared' Verification: - gitnexus-shared builds clean (tsc) - gitnexus builds clean (scripts/build.js) - 131/132 unit test files pass; 3767 tests green - Zero behavior changes; SymbolDefinition shape unchanged Blocks: #911 (LanguageProvider hook interface extensions) and all of Ring 2 (#912-#925). Closes part of #909.
27 lines
834 B
TypeScript
27 lines
834 B
TypeScript
/**
|
|
* Shared test helpers for the model/ unit tests.
|
|
*
|
|
* Keep this file minimal — just the factory functions that every
|
|
* registry/table test needs. Anything domain-specific belongs in the
|
|
* test file that uses it.
|
|
*/
|
|
|
|
import type { SymbolDefinition } from 'gitnexus-shared';
|
|
|
|
/**
|
|
* Build a {@link SymbolDefinition} with sensible defaults. Every field
|
|
* is overridable. Defaults produce a Method-typed def so the caller
|
|
* only has to override for other shapes.
|
|
*/
|
|
export const makeDef = (overrides: Partial<SymbolDefinition> = {}): SymbolDefinition => ({
|
|
nodeId: 'def:test',
|
|
filePath: 'src/test.ts',
|
|
type: 'Method',
|
|
...overrides,
|
|
});
|
|
|
|
/**
|
|
* Alias for {@link makeDef} kept for readability in method-registry
|
|
* tests where "makeMethod" reads more naturally at the call site.
|
|
*/
|
|
export const makeMethod = makeDef;
|