PromucFlow_constructor/app/client/src/widgets/TableWidgetV2/widget/parseDerivedProperties.ts

37 lines
992 B
TypeScript
Raw Normal View History

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
//@ts-ignore
import widgetPropertyFns from "!!raw-loader!./derived.js";
// TODO(abhinav):
// Add unit test cases
// Handle edge cases
// Error out on wrong values
const derivedProperties: any = {};
// const regex = /(\w+):\s?\(props\)\s?=>\s?{([\w\W]*?)},/gim;
const regex = /(\w+):\s?\(props, moment, _\)\s?=>\s?{([\w\W\n]*?)},\n?\s+?\/\//gim;
let m;
while ((m = regex.exec((widgetPropertyFns as unknown) as string)) !== null) {
// This is necessary to avoid infinite loops with zero-width matches
if (m.index === regex.lastIndex) {
regex.lastIndex++;
}
let key = "";
// The result can be accessed through the `m`-variable.
m.forEach((match, groupIndex) => {
if (groupIndex === 1) {
key = match;
}
if (groupIndex === 2) {
derivedProperties[key] = match
.trim()
.replace(/\n/g, "")
.replace(/props\./g, "this.");
}
});
}
export default derivedProperties;