# Function assemble

- assemble(config: Configuration, components: Components): Promise<Program>

- Build a Webnative Program based on a given set of `Components`. These are various customisable components that determine how a Webnative app works. Use `program` to work with a default, or partial, set of components.

  Additionally this does a few other things:

  - Checks if the browser is supported.
  - Restores a session if one was made before and loads the user's file system if needed.
  - Attempts to collect capabilities if the configuration has permissions.
  - Provides shorthands to functions so you don't have to pass in components.
  - Ensure backwards compatibility with older Webnative clients.

  See `loadFileSystem` if you want to load the user's file system yourself.

  #### Parameters

  - ##### config: Configuration

  - ##### components: Components

  #### Returns Promise<Program>

  - Defined in index.ts:326

Generated using TypeDoc