-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: add
preferStatic
type to config (#443)
**Which problem is this pull request solving?** Adds a new `preferStatic` type to the functions config. Also, makes the `path` and `schedule` properties mutually exclusive. Finally, it adds some JSDoc comments to each property.
- Loading branch information
1 parent
d558f36
commit 9abc987
Showing
1 changed file
with
37 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,45 @@ | ||
export type { Context } from '@netlify/serverless-functions-api' | ||
|
||
type Path = `/${string}` | ||
|
||
type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | ||
|
||
type CronSchedule = string | ||
|
||
export interface Config { | ||
path?: Path | Path[] | ||
interface BaseConfig { | ||
/** | ||
* Configures the function to serve any static files that match the request | ||
* URL and render the function only if no matching files exist. | ||
*/ | ||
preferStatic?: boolean | ||
|
||
/** | ||
* Limits the HTTP methods for which the function will run. If not set, the | ||
* function will run for all supported methods. | ||
*/ | ||
method?: HTTPMethod | HTTPMethod[] | ||
schedule?: CronSchedule | ||
} | ||
|
||
interface ConfigWithPath extends BaseConfig { | ||
/** | ||
* One or more URL paths for which the function will run. Paths must begin | ||
* with a forward slash. | ||
* | ||
* {@link} https://ntl.fyi/func-routing | ||
*/ | ||
path?: Path | Path[] | ||
|
||
schedule?: never | ||
} | ||
|
||
interface ConfigWithSchedule extends BaseConfig { | ||
path?: never | ||
|
||
/** | ||
* Cron expression representing the schedule at which the function will be | ||
* automatically invoked. | ||
* | ||
* {@link} https://ntl.fyi/sched-func | ||
*/ | ||
schedule: CronSchedule | ||
} | ||
|
||
export type Config = ConfigWithPath | ConfigWithSchedule |