da6f1bbef3
## Summary Rename "Serverless Function" to "Logic Function" across the codebase for clearer naming. ### Environment Variable Changes | Old | New | |-----|-----| | `SERVERLESS_TYPE` | `LOGIC_FUNCTION_TYPE` | | `SERVERLESS_LAMBDA_REGION` | `LOGIC_FUNCTION_LAMBDA_REGION` | | `SERVERLESS_LAMBDA_ROLE` | `LOGIC_FUNCTION_LAMBDA_ROLE` | | `SERVERLESS_LAMBDA_SUBHOSTING_URL` | `LOGIC_FUNCTION_LAMBDA_SUBHOSTING_URL` | | `SERVERLESS_LAMBDA_ACCESS_KEY_ID` | `LOGIC_FUNCTION_LAMBDA_ACCESS_KEY_ID` | | `SERVERLESS_LAMBDA_SECRET_ACCESS_KEY` | `LOGIC_FUNCTION_LAMBDA_SECRET_ACCESS_KEY` | ### Breaking Changes - Environment variables must be updated in production deployments - Database migration renames `serverlessFunction` → `logicFunction` tables
29 lines
766 B
TypeScript
29 lines
766 B
TypeScript
// IA Generated
|
|
import { type Sources } from 'twenty-shared/types';
|
|
|
|
type FlatSource = { path: string; content: string };
|
|
|
|
export const flattenSources = (
|
|
sources: Sources,
|
|
basePath = '',
|
|
): FlatSource[] => {
|
|
const out: FlatSource[] = [];
|
|
|
|
const join = (a: string, b: string) => (a ? `${a}/${b}` : b);
|
|
|
|
const walk = (node: Sources, prefix: string) => {
|
|
for (const [name, value] of Object.entries(node)) {
|
|
if (typeof value === 'string') {
|
|
out.push({ path: join(prefix, name), content: value });
|
|
} else if (value && typeof value === 'object') {
|
|
walk(value as Sources, join(prefix, name));
|
|
}
|
|
}
|
|
};
|
|
|
|
walk(sources, basePath);
|
|
|
|
out.sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0));
|
|
return out;
|
|
};
|