MCPcopy Index your code
hub / github.com/microsoft/SandDance / serializeSpec

Function serializeSpec

packages/sanddance-explorer/src/dialogs/settings.tsx:85–120  ·  view source on GitHub ↗
(vegaSpec: Spec, datafile: DataFile, dataRefType: DataRefType, transform: Transforms[], scheme: string)

Source from the content-addressed store, hash-verified

83}
84
85function serializeSpec(vegaSpec: Spec, datafile: DataFile, dataRefType: DataRefType, transform: Transforms[], scheme: string) {
86 const scales = cloneScales(vegaSpec);
87 const colorScale = scales.filter(scale => scale.name === SandDance.constants.ScaleNames.Color)[0];
88 if (scheme.indexOf('dual_') >= 0) {
89 (colorScale as ScalesWithRange).range = SandDance.colorSchemes.filter(cs => cs.scheme === scheme)[0].colors;
90 }
91 const clone = cloneData(vegaSpec);
92 const data0 = clone.data[0];
93 if (dataRefType === DataRefType.inline) {
94 const valuesData = data0 as ValuesData;
95 valuesData.format = { parse: 'auto', type: 'json' };
96 valuesData.values = clone.values;
97 } else if (dataRefType === DataRefType.none) {
98 const valuesData = data0 as ValuesData;
99 valuesData.values = [];
100 if (transform) {
101 if (valuesData.transform) {
102 valuesData.transform.push.apply(valuesData.transform, transform);
103 } else {
104 valuesData.transform = transform;
105 }
106 }
107 } else if (dataRefType === DataRefType.url) {
108 const urlData = data0 as UrlData;
109 urlData.url = datafile.dataUrl;
110 urlData.format = { parse: 'auto', type: datafile.type };
111 if (transform) {
112 if (urlData.transform) {
113 urlData.transform.push.apply(urlData.transform, transform);
114 } else {
115 urlData.transform = transform;
116 }
117 }
118 }
119 return { ...vegaSpec, data: clone.data, scales };
120}
121
122function defaultDataRefType(datafile: DataFile) {
123 if (datafile.dataUrl) {

Callers 1

renderMethod · 0.70

Calls 3

cloneScalesFunction · 0.70
cloneDataFunction · 0.70
filterMethod · 0.45

Tested by

no test coverage detected