@soda-gql/builder 0.10.2 → 0.11.1
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/README.md +3 -3
- package/dist/index.cjs +137 -3849
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +34 -436
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +34 -436
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +122 -3806
- package/dist/index.mjs.map +1 -1
- package/dist/plugin-support.cjs +263 -0
- package/dist/plugin-support.cjs.map +1 -0
- package/dist/plugin-support.d.cts +308 -0
- package/dist/plugin-support.d.cts.map +1 -0
- package/dist/plugin-support.d.mts +308 -0
- package/dist/plugin-support.d.mts.map +1 -0
- package/dist/plugin-support.mjs +247 -0
- package/dist/plugin-support.mjs.map +1 -0
- package/dist/service-BIDYnmeU.d.cts +471 -0
- package/dist/service-BIDYnmeU.d.cts.map +1 -0
- package/dist/service-DdFZ_WpI.d.mts +471 -0
- package/dist/service-DdFZ_WpI.d.mts.map +1 -0
- package/dist/service-UG-_oJSl.mjs +4227 -0
- package/dist/service-UG-_oJSl.mjs.map +1 -0
- package/dist/service-nHDX5qIj.cjs +4384 -0
- package/dist/service-nHDX5qIj.cjs.map +1 -0
- package/package.json +12 -6
|
@@ -0,0 +1,471 @@
|
|
|
1
|
+
import { Result } from "neverthrow";
|
|
2
|
+
import { Script } from "node:vm";
|
|
3
|
+
import { CanonicalId, EffectGenerator } from "@soda-gql/common";
|
|
4
|
+
import { AnyFragment, AnyOperation } from "@soda-gql/core";
|
|
5
|
+
import { RuntimeFragmentInput, RuntimeOperationInput } from "@soda-gql/core/runtime";
|
|
6
|
+
import { ResolvedSodaGqlConfig } from "@soda-gql/config";
|
|
7
|
+
|
|
8
|
+
//#region packages/builder/src/internal/graphql-system.d.ts
|
|
9
|
+
type GraphqlSystemIdentifyHelper = {
|
|
10
|
+
readonly isGraphqlSystemFile: (input: {
|
|
11
|
+
filePath: string;
|
|
12
|
+
}) => boolean;
|
|
13
|
+
readonly isGraphqlSystemImportSpecifier: (input: {
|
|
14
|
+
filePath: string;
|
|
15
|
+
specifier: string;
|
|
16
|
+
}) => boolean;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Create a GraphqlSystemIdentifyHelper from the resolved config.
|
|
20
|
+
* Uses canonical path comparison to handle casing, symlinks, and aliases.
|
|
21
|
+
*/
|
|
22
|
+
declare const createGraphqlSystemIdentifyHelper: (config: ResolvedSodaGqlConfig) => GraphqlSystemIdentifyHelper;
|
|
23
|
+
//#endregion
|
|
24
|
+
//#region packages/builder/src/errors.d.ts
|
|
25
|
+
/**
|
|
26
|
+
* Comprehensive error code taxonomy for Builder operations.
|
|
27
|
+
*/
|
|
28
|
+
type BuilderErrorCode = "ENTRY_NOT_FOUND" | "CONFIG_NOT_FOUND" | "CONFIG_INVALID" | "DISCOVERY_IO_ERROR" | "FINGERPRINT_FAILED" | "UNSUPPORTED_ANALYZER" | "CANONICAL_PATH_INVALID" | "CANONICAL_SCOPE_MISMATCH" | "GRAPH_CIRCULAR_DEPENDENCY" | "GRAPH_MISSING_IMPORT" | "DOC_DUPLICATE" | "WRITE_FAILED" | "CACHE_CORRUPTED" | "RUNTIME_MODULE_LOAD_FAILED" | "ARTIFACT_REGISTRATION_FAILED" | "ELEMENT_EVALUATION_FAILED" | "INTERNAL_INVARIANT" | "SCHEMA_NOT_FOUND";
|
|
29
|
+
/**
|
|
30
|
+
* Structured error type for all Builder operations.
|
|
31
|
+
*/
|
|
32
|
+
type BuilderError = {
|
|
33
|
+
readonly code: "ENTRY_NOT_FOUND";
|
|
34
|
+
readonly message: string;
|
|
35
|
+
readonly entry: string;
|
|
36
|
+
} | {
|
|
37
|
+
readonly code: "CONFIG_NOT_FOUND";
|
|
38
|
+
readonly message: string;
|
|
39
|
+
readonly path: string;
|
|
40
|
+
} | {
|
|
41
|
+
readonly code: "CONFIG_INVALID";
|
|
42
|
+
readonly message: string;
|
|
43
|
+
readonly path: string;
|
|
44
|
+
readonly cause?: unknown;
|
|
45
|
+
} | {
|
|
46
|
+
readonly code: "DISCOVERY_IO_ERROR";
|
|
47
|
+
readonly message: string;
|
|
48
|
+
readonly path: string;
|
|
49
|
+
readonly errno?: string | number;
|
|
50
|
+
readonly cause?: unknown;
|
|
51
|
+
} | {
|
|
52
|
+
readonly code: "FINGERPRINT_FAILED";
|
|
53
|
+
readonly message: string;
|
|
54
|
+
readonly filePath: string;
|
|
55
|
+
readonly cause?: unknown;
|
|
56
|
+
} | {
|
|
57
|
+
readonly code: "UNSUPPORTED_ANALYZER";
|
|
58
|
+
readonly message: string;
|
|
59
|
+
readonly analyzer: string;
|
|
60
|
+
} | {
|
|
61
|
+
readonly code: "CANONICAL_PATH_INVALID";
|
|
62
|
+
readonly message: string;
|
|
63
|
+
readonly path: string;
|
|
64
|
+
readonly reason?: string;
|
|
65
|
+
} | {
|
|
66
|
+
readonly code: "CANONICAL_SCOPE_MISMATCH";
|
|
67
|
+
readonly message: string;
|
|
68
|
+
readonly expected: string;
|
|
69
|
+
readonly actual: string;
|
|
70
|
+
} | {
|
|
71
|
+
readonly code: "GRAPH_CIRCULAR_DEPENDENCY";
|
|
72
|
+
readonly message: string;
|
|
73
|
+
readonly chain: readonly string[];
|
|
74
|
+
} | {
|
|
75
|
+
readonly code: "GRAPH_MISSING_IMPORT";
|
|
76
|
+
readonly message: string;
|
|
77
|
+
readonly importer: string;
|
|
78
|
+
readonly importee: string;
|
|
79
|
+
} | {
|
|
80
|
+
readonly code: "DOC_DUPLICATE";
|
|
81
|
+
readonly message: string;
|
|
82
|
+
readonly name: string;
|
|
83
|
+
readonly sources: readonly string[];
|
|
84
|
+
} | {
|
|
85
|
+
readonly code: "WRITE_FAILED";
|
|
86
|
+
readonly message: string;
|
|
87
|
+
readonly outPath: string;
|
|
88
|
+
readonly cause?: unknown;
|
|
89
|
+
} | {
|
|
90
|
+
readonly code: "CACHE_CORRUPTED";
|
|
91
|
+
readonly message: string;
|
|
92
|
+
readonly cachePath?: string;
|
|
93
|
+
readonly cause?: unknown;
|
|
94
|
+
} | {
|
|
95
|
+
readonly code: "RUNTIME_MODULE_LOAD_FAILED";
|
|
96
|
+
readonly message: string;
|
|
97
|
+
readonly filePath: string;
|
|
98
|
+
readonly astPath: string;
|
|
99
|
+
readonly cause?: unknown;
|
|
100
|
+
} | {
|
|
101
|
+
readonly code: "ARTIFACT_REGISTRATION_FAILED";
|
|
102
|
+
readonly message: string;
|
|
103
|
+
readonly elementId: string;
|
|
104
|
+
readonly reason: string;
|
|
105
|
+
} | {
|
|
106
|
+
readonly code: "ELEMENT_EVALUATION_FAILED";
|
|
107
|
+
readonly message: string;
|
|
108
|
+
readonly modulePath: string;
|
|
109
|
+
readonly astPath: string;
|
|
110
|
+
readonly cause?: unknown;
|
|
111
|
+
} | {
|
|
112
|
+
readonly code: "INTERNAL_INVARIANT";
|
|
113
|
+
readonly message: string;
|
|
114
|
+
readonly context?: string;
|
|
115
|
+
readonly cause?: unknown;
|
|
116
|
+
} | {
|
|
117
|
+
readonly code: "SCHEMA_NOT_FOUND";
|
|
118
|
+
readonly message: string;
|
|
119
|
+
readonly schemaLabel: string;
|
|
120
|
+
readonly canonicalId: string;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Helper type for Builder operation results.
|
|
124
|
+
*/
|
|
125
|
+
type BuilderResult<T> = Result<T, BuilderError>;
|
|
126
|
+
/**
|
|
127
|
+
* Error constructor helpers for concise error creation.
|
|
128
|
+
*/
|
|
129
|
+
declare const builderErrors: {
|
|
130
|
+
readonly entryNotFound: (entry: string, message?: string) => BuilderError;
|
|
131
|
+
readonly configNotFound: (path: string, message?: string) => BuilderError;
|
|
132
|
+
readonly configInvalid: (path: string, message: string, cause?: unknown) => BuilderError;
|
|
133
|
+
readonly discoveryIOError: (path: string, message: string, errno?: string | number, cause?: unknown) => BuilderError;
|
|
134
|
+
readonly fingerprintFailed: (filePath: string, message: string, cause?: unknown) => BuilderError;
|
|
135
|
+
readonly unsupportedAnalyzer: (analyzer: string, message?: string) => BuilderError;
|
|
136
|
+
readonly canonicalPathInvalid: (path: string, reason?: string) => BuilderError;
|
|
137
|
+
readonly canonicalScopeMismatch: (expected: string, actual: string) => BuilderError;
|
|
138
|
+
readonly graphCircularDependency: (chain: readonly string[]) => BuilderError;
|
|
139
|
+
readonly graphMissingImport: (importer: string, importee: string) => BuilderError;
|
|
140
|
+
readonly docDuplicate: (name: string, sources: readonly string[]) => BuilderError;
|
|
141
|
+
readonly writeFailed: (outPath: string, message: string, cause?: unknown) => BuilderError;
|
|
142
|
+
readonly cacheCorrupted: (message: string, cachePath?: string, cause?: unknown) => BuilderError;
|
|
143
|
+
readonly runtimeModuleLoadFailed: (filePath: string, astPath: string, message: string, cause?: unknown) => BuilderError;
|
|
144
|
+
readonly artifactRegistrationFailed: (elementId: string, reason: string) => BuilderError;
|
|
145
|
+
readonly elementEvaluationFailed: (modulePath: string, astPath: string, message: string, cause?: unknown) => BuilderError;
|
|
146
|
+
readonly internalInvariant: (message: string, context?: string, cause?: unknown) => BuilderError;
|
|
147
|
+
readonly schemaNotFound: (schemaLabel: string, canonicalId: string) => BuilderError;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Convenience helper to create an err Result from BuilderError.
|
|
151
|
+
*/
|
|
152
|
+
declare const builderErr: <T = never>(error: BuilderError) => BuilderResult<T>;
|
|
153
|
+
/**
|
|
154
|
+
* Type guard for BuilderError.
|
|
155
|
+
*/
|
|
156
|
+
declare const isBuilderError: (error: unknown) => error is BuilderError;
|
|
157
|
+
/**
|
|
158
|
+
* Format BuilderError for console output (human-readable).
|
|
159
|
+
*/
|
|
160
|
+
declare const formatBuilderError: (error: BuilderError) => string;
|
|
161
|
+
/**
|
|
162
|
+
* Assert unreachable code path (for exhaustiveness checks).
|
|
163
|
+
* This is the ONLY acceptable throw in builder code.
|
|
164
|
+
*/
|
|
165
|
+
declare const assertUnreachable: (value: never, context?: string) => never;
|
|
166
|
+
//#endregion
|
|
167
|
+
//#region packages/builder/src/types.d.ts
|
|
168
|
+
type BuilderMode = "runtime" | "zero-runtime";
|
|
169
|
+
type BuilderFormat = "json" | "human";
|
|
170
|
+
type BuilderAnalyzer = "ts" | "swc";
|
|
171
|
+
type BuilderInput = Record<string, never>;
|
|
172
|
+
type BuilderOptions = BuilderInput & {
|
|
173
|
+
readonly outPath: string;
|
|
174
|
+
readonly format: BuilderFormat;
|
|
175
|
+
};
|
|
176
|
+
//#endregion
|
|
177
|
+
//#region packages/builder/src/ast/types.d.ts
|
|
178
|
+
/**
|
|
179
|
+
* Diagnostic codes for invalid patterns detected during analysis.
|
|
180
|
+
*/
|
|
181
|
+
type DiagnosticCode = "RENAMED_IMPORT" | "STAR_IMPORT" | "DEFAULT_IMPORT" | "MISSING_ARGUMENT" | "INVALID_ARGUMENT_TYPE" | "NON_MEMBER_CALLEE" | "COMPUTED_PROPERTY" | "DYNAMIC_CALLEE" | "OPTIONAL_CHAINING" | "EXTRA_ARGUMENTS" | "SPREAD_ARGUMENT" | "CLASS_PROPERTY";
|
|
182
|
+
/**
|
|
183
|
+
* Severity level for diagnostics.
|
|
184
|
+
*/
|
|
185
|
+
type DiagnosticSeverity = "error" | "warning";
|
|
186
|
+
/**
|
|
187
|
+
* Location information for a diagnostic.
|
|
188
|
+
*/
|
|
189
|
+
type DiagnosticLocation = {
|
|
190
|
+
readonly start: number;
|
|
191
|
+
readonly end: number;
|
|
192
|
+
readonly line?: number;
|
|
193
|
+
readonly column?: number;
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* A single diagnostic message from analysis.
|
|
197
|
+
*/
|
|
198
|
+
type ModuleDiagnostic = {
|
|
199
|
+
readonly code: DiagnosticCode;
|
|
200
|
+
readonly severity: DiagnosticSeverity;
|
|
201
|
+
readonly message: string;
|
|
202
|
+
readonly location: DiagnosticLocation;
|
|
203
|
+
/** Additional context for some diagnostics */
|
|
204
|
+
readonly context?: Readonly<Record<string, string>>;
|
|
205
|
+
};
|
|
206
|
+
type ModuleDefinition = {
|
|
207
|
+
readonly canonicalId: CanonicalId;
|
|
208
|
+
/** AST-derived path uniquely identifying this definition's location (e.g., "MyComponent.useQuery.def") */
|
|
209
|
+
readonly astPath: string;
|
|
210
|
+
/**
|
|
211
|
+
* Whether this definition is at the top level of the module (stack.length === 1 during AST traversal).
|
|
212
|
+
* Invariant: if isExported is true, isTopLevel must also be true.
|
|
213
|
+
*/
|
|
214
|
+
readonly isTopLevel: boolean;
|
|
215
|
+
/**
|
|
216
|
+
* Whether this definition is exported from the module.
|
|
217
|
+
* Invariant: isExported can only be true when isTopLevel is true.
|
|
218
|
+
*/
|
|
219
|
+
readonly isExported: boolean;
|
|
220
|
+
/** The export binding name if this definition is exported */
|
|
221
|
+
readonly exportBinding?: string;
|
|
222
|
+
readonly expression: string;
|
|
223
|
+
};
|
|
224
|
+
type ModuleImport = {
|
|
225
|
+
readonly source: string;
|
|
226
|
+
readonly local: string;
|
|
227
|
+
readonly kind: "named" | "namespace" | "default";
|
|
228
|
+
readonly isTypeOnly: boolean;
|
|
229
|
+
};
|
|
230
|
+
type ModuleExport = {
|
|
231
|
+
readonly kind: "named";
|
|
232
|
+
readonly exported: string;
|
|
233
|
+
readonly local: string;
|
|
234
|
+
readonly source?: undefined;
|
|
235
|
+
readonly isTypeOnly: boolean;
|
|
236
|
+
} | {
|
|
237
|
+
readonly kind: "reexport";
|
|
238
|
+
readonly exported: string;
|
|
239
|
+
readonly source: string;
|
|
240
|
+
readonly local?: string;
|
|
241
|
+
readonly isTypeOnly: boolean;
|
|
242
|
+
};
|
|
243
|
+
type ModuleAnalysis = {
|
|
244
|
+
readonly filePath: string;
|
|
245
|
+
readonly signature: string;
|
|
246
|
+
readonly definitions: readonly ModuleDefinition[];
|
|
247
|
+
readonly imports: readonly ModuleImport[];
|
|
248
|
+
readonly exports: readonly ModuleExport[];
|
|
249
|
+
readonly diagnostics: readonly ModuleDiagnostic[];
|
|
250
|
+
};
|
|
251
|
+
type AnalyzeModuleInput = {
|
|
252
|
+
readonly filePath: string;
|
|
253
|
+
readonly source: string;
|
|
254
|
+
};
|
|
255
|
+
//#endregion
|
|
256
|
+
//#region packages/builder/src/ast/index.d.ts
|
|
257
|
+
declare const createAstAnalyzer: ({
|
|
258
|
+
analyzer,
|
|
259
|
+
graphqlHelper
|
|
260
|
+
}: {
|
|
261
|
+
readonly analyzer: BuilderAnalyzer;
|
|
262
|
+
readonly graphqlHelper: GraphqlSystemIdentifyHelper;
|
|
263
|
+
}) => {
|
|
264
|
+
type: BuilderAnalyzer;
|
|
265
|
+
analyze: (input: AnalyzeModuleInput) => ModuleAnalysis;
|
|
266
|
+
};
|
|
267
|
+
//#endregion
|
|
268
|
+
//#region packages/builder/src/intermediate-module/types.d.ts
|
|
269
|
+
/**
|
|
270
|
+
* Request type yielded by module generators to import dependencies.
|
|
271
|
+
*/
|
|
272
|
+
type EvaluationRequest = {
|
|
273
|
+
readonly kind: "import";
|
|
274
|
+
readonly filePath: string;
|
|
275
|
+
};
|
|
276
|
+
type IntermediateModule = {
|
|
277
|
+
readonly filePath: string;
|
|
278
|
+
readonly canonicalIds: readonly string[];
|
|
279
|
+
readonly sourceCode: string;
|
|
280
|
+
readonly transpiledCode: string;
|
|
281
|
+
readonly contentHash: string;
|
|
282
|
+
readonly script: Script;
|
|
283
|
+
};
|
|
284
|
+
type IntermediateArtifactElement = {
|
|
285
|
+
readonly type: "fragment";
|
|
286
|
+
readonly element: AnyFragment;
|
|
287
|
+
} | {
|
|
288
|
+
readonly type: "operation";
|
|
289
|
+
readonly element: AnyOperation;
|
|
290
|
+
};
|
|
291
|
+
//#endregion
|
|
292
|
+
//#region packages/builder/src/intermediate-module/evaluation.d.ts
|
|
293
|
+
type BuildIntermediateModulesInput = {
|
|
294
|
+
readonly analyses: Map<string, ModuleAnalysis>;
|
|
295
|
+
readonly targetFiles: Set<string>;
|
|
296
|
+
readonly graphqlSystemPath: string;
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* Clear the cached gql module.
|
|
300
|
+
* Call this between test runs to ensure clean state.
|
|
301
|
+
* @internal - exported for testing purposes only
|
|
302
|
+
*/
|
|
303
|
+
declare const __clearGqlCache: () => void;
|
|
304
|
+
/**
|
|
305
|
+
* Build intermediate modules from dependency graph.
|
|
306
|
+
* Each intermediate module corresponds to one source file.
|
|
307
|
+
*/
|
|
308
|
+
declare const generateIntermediateModules: ({
|
|
309
|
+
analyses,
|
|
310
|
+
targetFiles,
|
|
311
|
+
graphqlSystemPath
|
|
312
|
+
}: BuildIntermediateModulesInput) => Generator<IntermediateModule, void, undefined>;
|
|
313
|
+
type EvaluateIntermediateModulesInput = {
|
|
314
|
+
intermediateModules: Map<string, IntermediateModule>;
|
|
315
|
+
graphqlSystemPath: string;
|
|
316
|
+
analyses: Map<string, ModuleAnalysis>;
|
|
317
|
+
};
|
|
318
|
+
/**
|
|
319
|
+
* Synchronous evaluation of intermediate modules.
|
|
320
|
+
* Throws if any element requires async operations (e.g., async metadata factory).
|
|
321
|
+
*/
|
|
322
|
+
declare const evaluateIntermediateModules: (input: EvaluateIntermediateModulesInput) => Record<string, IntermediateArtifactElement>;
|
|
323
|
+
/**
|
|
324
|
+
* Asynchronous evaluation of intermediate modules.
|
|
325
|
+
* Supports async metadata factories and other async operations.
|
|
326
|
+
*/
|
|
327
|
+
declare const evaluateIntermediateModulesAsync: (input: EvaluateIntermediateModulesInput) => Promise<Record<string, IntermediateArtifactElement>>;
|
|
328
|
+
/**
|
|
329
|
+
* Generator version of evaluateIntermediateModules for external scheduler control.
|
|
330
|
+
* Yields effects for element evaluation, enabling unified scheduler at the root level.
|
|
331
|
+
*
|
|
332
|
+
* This function:
|
|
333
|
+
* 1. Sets up the VM context and runs intermediate module scripts
|
|
334
|
+
* 2. Runs synchronous module evaluation (trampoline - no I/O)
|
|
335
|
+
* 3. Yields element evaluation effects via ParallelEffect
|
|
336
|
+
* 4. Returns the artifacts record
|
|
337
|
+
*/
|
|
338
|
+
declare function evaluateIntermediateModulesGen(input: EvaluateIntermediateModulesInput): EffectGenerator<Record<string, IntermediateArtifactElement>>;
|
|
339
|
+
//#endregion
|
|
340
|
+
//#region packages/builder/src/artifact/types.d.ts
|
|
341
|
+
type IntermediateElements = Record<CanonicalId, IntermediateArtifactElement>;
|
|
342
|
+
type BuilderArtifactElementMetadata = {
|
|
343
|
+
readonly sourcePath: string;
|
|
344
|
+
readonly contentHash: string;
|
|
345
|
+
};
|
|
346
|
+
type BuilderArtifactElementBase = {
|
|
347
|
+
readonly id: CanonicalId;
|
|
348
|
+
readonly metadata: BuilderArtifactElementMetadata;
|
|
349
|
+
};
|
|
350
|
+
type BuilderArtifactOperation = BuilderArtifactElementBase & {
|
|
351
|
+
readonly type: "operation";
|
|
352
|
+
readonly prebuild: RuntimeOperationInput["prebuild"];
|
|
353
|
+
};
|
|
354
|
+
type BuilderArtifactFragment = BuilderArtifactElementBase & {
|
|
355
|
+
readonly type: "fragment";
|
|
356
|
+
readonly prebuild: RuntimeFragmentInput["prebuild"];
|
|
357
|
+
};
|
|
358
|
+
type BuilderArtifactElement = BuilderArtifactOperation | BuilderArtifactFragment;
|
|
359
|
+
/**
|
|
360
|
+
* Metadata for pre-built artifacts.
|
|
361
|
+
* Contains version and creation timestamp for compatibility checks.
|
|
362
|
+
*/
|
|
363
|
+
type BuilderArtifactMeta = {
|
|
364
|
+
readonly version: string;
|
|
365
|
+
readonly createdAt: string;
|
|
366
|
+
};
|
|
367
|
+
type BuilderArtifact = {
|
|
368
|
+
/**
|
|
369
|
+
* Artifact metadata. Present in pre-built artifacts for version tracking.
|
|
370
|
+
*/
|
|
371
|
+
readonly meta?: BuilderArtifactMeta;
|
|
372
|
+
readonly elements: Record<CanonicalId, BuilderArtifactElement>;
|
|
373
|
+
readonly report: {
|
|
374
|
+
readonly durationMs: number;
|
|
375
|
+
readonly warnings: readonly string[];
|
|
376
|
+
readonly stats: {
|
|
377
|
+
readonly hits: number;
|
|
378
|
+
readonly misses: number;
|
|
379
|
+
readonly skips: number;
|
|
380
|
+
};
|
|
381
|
+
};
|
|
382
|
+
};
|
|
383
|
+
//#endregion
|
|
384
|
+
//#region packages/builder/src/service.d.ts
|
|
385
|
+
/**
|
|
386
|
+
* Configuration for BuilderService.
|
|
387
|
+
* Mirrors BuilderInput shape.
|
|
388
|
+
*/
|
|
389
|
+
type BuilderServiceConfig = {
|
|
390
|
+
readonly config: ResolvedSodaGqlConfig;
|
|
391
|
+
readonly entrypointsOverride?: readonly string[] | ReadonlySet<string>;
|
|
392
|
+
};
|
|
393
|
+
/**
|
|
394
|
+
* Builder service interface providing artifact generation.
|
|
395
|
+
*/
|
|
396
|
+
interface BuilderService {
|
|
397
|
+
/**
|
|
398
|
+
* Generate artifacts from configured entry points (synchronous).
|
|
399
|
+
*
|
|
400
|
+
* The service automatically detects file changes using an internal file tracker.
|
|
401
|
+
* On first call, performs full build. Subsequent calls perform incremental builds
|
|
402
|
+
* based on detected file changes (added/updated/removed).
|
|
403
|
+
*
|
|
404
|
+
* Throws if any element requires async operations (e.g., async metadata factory).
|
|
405
|
+
*
|
|
406
|
+
* @param options - Optional build options
|
|
407
|
+
* @param options.force - If true, bypass change detection and force full rebuild
|
|
408
|
+
* @returns Result containing BuilderArtifact on success or BuilderError on failure.
|
|
409
|
+
*/
|
|
410
|
+
build(options?: {
|
|
411
|
+
force?: boolean;
|
|
412
|
+
}): Result<BuilderArtifact, BuilderError>;
|
|
413
|
+
/**
|
|
414
|
+
* Generate artifacts from configured entry points (asynchronous).
|
|
415
|
+
*
|
|
416
|
+
* The service automatically detects file changes using an internal file tracker.
|
|
417
|
+
* On first call, performs full build. Subsequent calls perform incremental builds
|
|
418
|
+
* based on detected file changes (added/updated/removed).
|
|
419
|
+
*
|
|
420
|
+
* Supports async metadata factories and parallel element evaluation.
|
|
421
|
+
*
|
|
422
|
+
* @param options - Optional build options
|
|
423
|
+
* @param options.force - If true, bypass change detection and force full rebuild
|
|
424
|
+
* @returns Promise of Result containing BuilderArtifact on success or BuilderError on failure.
|
|
425
|
+
*/
|
|
426
|
+
buildAsync(options?: {
|
|
427
|
+
force?: boolean;
|
|
428
|
+
}): Promise<Result<BuilderArtifact, BuilderError>>;
|
|
429
|
+
/**
|
|
430
|
+
* Get the current generation number of the artifact.
|
|
431
|
+
* Increments on each successful build.
|
|
432
|
+
* Returns 0 if no artifact has been built yet.
|
|
433
|
+
*/
|
|
434
|
+
getGeneration(): number;
|
|
435
|
+
/**
|
|
436
|
+
* Get the most recent artifact without triggering a new build.
|
|
437
|
+
* Returns null if no artifact has been built yet.
|
|
438
|
+
*/
|
|
439
|
+
getCurrentArtifact(): BuilderArtifact | null;
|
|
440
|
+
/**
|
|
441
|
+
* Get the intermediate elements from the most recent build.
|
|
442
|
+
* Returns null if no build has been performed yet.
|
|
443
|
+
* Used by typegen to extract field selections for prebuilt type generation.
|
|
444
|
+
*/
|
|
445
|
+
getIntermediateElements(): Record<string, IntermediateArtifactElement> | null;
|
|
446
|
+
/**
|
|
447
|
+
* Dispose the service and save cache to disk.
|
|
448
|
+
* Should be called when the service is no longer needed.
|
|
449
|
+
*/
|
|
450
|
+
dispose(): void;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Create a builder service instance with session support.
|
|
454
|
+
*
|
|
455
|
+
* The service maintains a long-lived session for incremental builds.
|
|
456
|
+
* File changes are automatically detected using an internal file tracker.
|
|
457
|
+
* First build() call initializes the session, subsequent calls perform
|
|
458
|
+
* incremental builds based on detected file changes.
|
|
459
|
+
*
|
|
460
|
+
* Note: Empty entry arrays will produce ENTRY_NOT_FOUND errors at build time.
|
|
461
|
+
*
|
|
462
|
+
* @param config - Builder configuration including entry patterns, analyzer, mode, and optional debugDir
|
|
463
|
+
* @returns BuilderService instance
|
|
464
|
+
*/
|
|
465
|
+
declare const createBuilderService: ({
|
|
466
|
+
config,
|
|
467
|
+
entrypointsOverride
|
|
468
|
+
}: BuilderServiceConfig) => BuilderService;
|
|
469
|
+
//#endregion
|
|
470
|
+
export { BuilderOptions as C, builderErrors as D, BuilderResult as E, GraphqlSystemIdentifyHelper as O, BuilderMode as S, BuilderErrorCode as T, ModuleAnalysis as _, BuilderArtifactElement as a, BuilderFormat as b, BuilderArtifactMeta as c, __clearGqlCache as d, IntermediateArtifactElement as f, DiagnosticSeverity as g, DiagnosticLocation as h, BuilderArtifact as i, createGraphqlSystemIdentifyHelper as k, BuilderArtifactOperation as l, DiagnosticCode as m, BuilderServiceConfig as n, BuilderArtifactElementMetadata as o, createAstAnalyzer as p, createBuilderService as r, BuilderArtifactFragment as s, BuilderService as t, IntermediateElements as u, ModuleDiagnostic as v, BuilderError as w, BuilderInput as x, BuilderAnalyzer as y };
|
|
471
|
+
//# sourceMappingURL=service-DdFZ_WpI.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-DdFZ_WpI.d.mts","names":[],"sources":["../src/internal/graphql-system.ts","../src/errors.ts","../src/types.ts","../src/ast/types.ts","../src/ast/index.ts","../src/intermediate-module/types.ts","../src/intermediate-module/evaluation.ts","../src/artifact/types.ts","../src/service.ts"],"sourcesContent":[],"mappings":"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"}
|