export function extractStack()

in src/runtime/loader.ts [61:85]


export function extractStack(
  module,
  endpoints: Record<string, ManifestEndpoint>,
  requiredAPIs: ManifestRequiredAPI[],
  prefix = ''
) {
  for (const [name, val] of Object.entries(module)) {
    if (
      typeof val === 'function' &&
      val['__endpoint'] &&
      typeof val['__endpoint'] === 'object'
    ) {
      const funcName = prefix + name;
      endpoints[funcName] = {
        ...val['__endpoint'],
        entryPoint: funcName.replace(/-/g, '.'),
      };
      if (val['__requiredAPIs'] && Array.isArray(val['__requiredAPIs'])) {
        requiredAPIs.push(...val['__requiredAPIs']);
      }
    } else if (typeof val === 'object' && val !== null) {
      extractStack(val, endpoints, requiredAPIs, prefix + name + '-');
    }
  }
}