MCPcopy
hub / github.com/microsoft/SandDance / build

Function build

packages/sanddance-specs/src/build.ts:10–61  ·  view source on GitHub ↗
(specContext: SpecContext, currData: object[])

Source from the content-addressed store, hash-verified

8import { SpecBuilder } from './specBuilder';
9
10export function build(specContext: SpecContext, currData: object[]): SpecResult {
11 const { specColumns } = specContext;
12 const columns = [
13 specColumns.color,
14 specColumns.facet,
15 specColumns.facetV,
16 specColumns.group,
17 specColumns.size,
18 specColumns.sort,
19 specColumns.x,
20 specColumns.y,
21 specColumns.z,
22 ];
23 inferAll(columns, currData);
24
25 const specBuilderProps = getSpecBuilderPropsForChart(specContext);
26 const specBuilder = new SpecBuilder(specBuilderProps, specContext);
27 let specResult: SpecResult;
28
29 if (specBuilder) {
30 try {
31 const errors = specBuilder.validate();
32 if (errors.length) {
33 specResult = {
34 errors,
35 specCapabilities: specBuilderProps.specCapabilities,
36 vegaSpec: null,
37 };
38 } else {
39 specResult = specBuilder.build();
40 }
41 }
42 catch (e) {
43 specResult = {
44 specCapabilities: null,
45 vegaSpec: null,
46 errors: [e.stack],
47 };
48 }
49 if (!specResult.errors) {
50 const data0 = specResult.vegaSpec.data[0] as ValuesData;
51 data0.values = currData;
52 }
53 } else {
54 specResult = {
55 specCapabilities: null,
56 vegaSpec: null,
57 errors: [`could not build spec for ${specContext.insight.chart}`],
58 };
59 }
60 return specResult;
61}

Callers 4

renderNewLayoutMethod · 0.90
demo.jsFile · 0.50
runFunction · 0.50
renderFunction · 0.50

Calls 4

validateMethod · 0.95
buildMethod · 0.95
inferAllFunction · 0.90

Tested by

no test coverage detected