// Module included in the following assemblies // // * serverless/functions/serverless-developing-typescript-functions.adoc :_content-type: REFERENCE [id="serverless-typescript-template_{context}"] = TypeScript function template structure When you create a TypeScript function using the Knative (`kn`) CLI, the project directory looks like a typical TypeScript project. The only exception is the additional `func.yaml` file, which is used for configuring the function. Both `http` and `event` trigger functions have the same template structure: .Template structure [source,terminal] ---- . ├── func.yaml <1> ├── package.json <2> ├── package-lock.json ├── README.md ├── src │   └── index.ts <3> ├── test <4> │   ├── integration.ts │   └── unit.ts └── tsconfig.json ---- <1> The `func.yaml` configuration file is used to determine the image name and registry. <2> You are not restricted to the dependencies provided in the template `package.json` file. You can add additional dependencies as you would in any other TypeScript project. + .Example of adding npm dependencies [source,terminal] ---- npm install --save opossum ---- + When the project is built for deployment, these dependencies are included in the created runtime container image. <3> Your project must contain an `src/index.js` file which exports a function named `handle`. <4> Integration and unit test scripts are provided as part of the function template.