diff --git a/src/manifest.ts b/src/manifest.ts index d7601cdba..a05543031 100644 --- a/src/manifest.ts +++ b/src/manifest.ts @@ -4,11 +4,29 @@ import { arch, platform } from 'process' import { FunctionResult } from './utils/format_result' import { writeFile } from './utils/fs' +interface ManifestFunction { + mainFile: string + name: string + path: string + runtime: string + schedule?: string +} + +interface Manifest { + functions: ManifestFunction[] + system: { + arch: string + platform: string + } + timestamp: number + version: number +} + const MANIFEST_VERSION = 1 const createManifest = async ({ functions, path }: { functions: FunctionResult[]; path: string }) => { const formattedFunctions = functions.map(formatFunctionForManifest) - const payload = { + const payload: Manifest = { functions: formattedFunctions, system: { arch, platform }, timestamp: Date.now(), @@ -18,7 +36,7 @@ const createManifest = async ({ functions, path }: { functions: FunctionResult[] await writeFile(path, JSON.stringify(payload)) } -const formatFunctionForManifest = ({ config, mainFile, name, path, runtime }: FunctionResult) => ({ +const formatFunctionForManifest = ({ config, mainFile, name, path, runtime }: FunctionResult): ManifestFunction => ({ mainFile, name, path: resolve(path), @@ -27,3 +45,4 @@ const formatFunctionForManifest = ({ config, mainFile, name, path, runtime }: Fu }) export { createManifest } +export type { Manifest }