rename: client -> frontend
This commit is contained in:
68
packages/frontend/src/scripts/collect-page-vars.ts
Normal file
68
packages/frontend/src/scripts/collect-page-vars.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
interface StringPageVar {
|
||||
name: string,
|
||||
type: 'string',
|
||||
value: string
|
||||
}
|
||||
|
||||
interface NumberPageVar {
|
||||
name: string,
|
||||
type: 'number',
|
||||
value: number
|
||||
}
|
||||
|
||||
interface BooleanPageVar {
|
||||
name: string,
|
||||
type: 'boolean',
|
||||
value: boolean
|
||||
}
|
||||
|
||||
type PageVar = StringPageVar | NumberPageVar | BooleanPageVar;
|
||||
|
||||
export function collectPageVars(content): PageVar[] {
|
||||
const pageVars: PageVar[] = [];
|
||||
const collect = (xs: any[]): void => {
|
||||
for (const x of xs) {
|
||||
if (x.type === 'textInput') {
|
||||
pageVars.push({
|
||||
name: x.name,
|
||||
type: 'string',
|
||||
value: x.default || '',
|
||||
});
|
||||
} else if (x.type === 'textareaInput') {
|
||||
pageVars.push({
|
||||
name: x.name,
|
||||
type: 'string',
|
||||
value: x.default || '',
|
||||
});
|
||||
} else if (x.type === 'numberInput') {
|
||||
pageVars.push({
|
||||
name: x.name,
|
||||
type: 'number',
|
||||
value: x.default || 0,
|
||||
});
|
||||
} else if (x.type === 'switch') {
|
||||
pageVars.push({
|
||||
name: x.name,
|
||||
type: 'boolean',
|
||||
value: x.default || false,
|
||||
});
|
||||
} else if (x.type === 'counter') {
|
||||
pageVars.push({
|
||||
name: x.name,
|
||||
type: 'number',
|
||||
value: 0,
|
||||
});
|
||||
} else if (x.type === 'radioButton') {
|
||||
pageVars.push({
|
||||
name: x.name,
|
||||
type: 'string',
|
||||
value: x.default || '',
|
||||
});
|
||||
} else if (x.children) {
|
||||
collect(x.children);
|
||||
}
|
||||
}
|
||||
};
|
||||
collect(content);
|
||||
return pageVars;
|
||||
}
|
Reference in New Issue
Block a user