<%- t.getFirstLineBanner('html') %>
<%- t.readme.banner %>

# <%= t.package.name %> v<%= t.package.version %> [![TypeScript](https://badgen.net/badge/-/TypeScript?icon=typescript&label&labelColor=blue&color=555555)](https://www.typescriptlang.org/) [![Vovk.ts](https://badgen.net/badge/Built%20with/Vovk.ts/333333?icon=https://vovk.dev/icon-white.svg)](https://vovk.dev)

<%- t.readme.description ?? (`${t.package.description ? `> ${t.package.description}` : ''}`) %>

<%- t.package.license ? `License: **${t.package.license}**` : '' %>

```bash
# Install the package
<%= t.readme.installCommand ?? `npm install ${t.package.name}` %>
```

<% Object.entries(t.schema.segments).forEach(([segmentName, segment]) => {
    Object.values(segment.controllers).forEach((controllerSchema) => { %>

## <%= controllerSchema.rpcModuleName %>
        <% Object.entries(controllerSchema.handlers).forEach(([handlerName, handlerSchema]) => { %>
### <%= controllerSchema.rpcModuleName %>.<%= handlerName %>
<%- handlerSchema.operationObject?.summary ? `> ${handlerSchema.operationObject.summary}` : '' %>

<%- handlerSchema.operationObject?.description ? `${handlerSchema.operationObject.description}` : '' %>

<% const forceApiRoot = t.segmentMeta[segment.segmentName].forceApiRoot ?? controllerSchema.forceApiRoot; %>
`<%= handlerSchema.httpMethod %> <%= [...(forceApiRoot ? [forceApiRoot] : [t.apiRoot, segmentName]), controllerSchema.prefix, handlerSchema.path].map((part, i) => i > 0 ? t._.trim(part, '/') : part).filter(Boolean).join('/') %>`

```ts
<%- t.createCodeSamples({
    handlerSchema,
    handlerName,
    controllerSchema,
    package: t.package,
    config: t.samples,
}).ts %>
```
        <% }) %>
    <% }) %>
<% }) %>
