prettier-plugin-nginx
TypeScript icon, indicating that this package has built-in type declarations

1.0.3 • Public • Published
Banner

Prettier for NGINX


This TypeScript module is a plugin for Prettier that beautifies NGINX configuration files. It is written in TypeScript, and depends only on Prettier.

Getting Started

Install Prettier, and then install this plugin from npm:

npm install -g prettier-plugin-nginx

This plugin is configured to run on files with the extension .nginx or .nginxconf. For plugin-level configuration, see Configuration.

Modules that extend NGINX to include other languages within configuration files, such as lua-nginx-module, will not work with this formatter.

Example

A messy file like this...

server {
# server definition
listen 443 ssl; listen [::]:443 ssl;
server_name example.com;
location / { proxy_pass http://proxy; proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1000; }
# end server definition
}

...is transformed to this:

server {
  # server definition
  listen      443 ssl;
  listen      [::]:443 ssl;
  server_name example.com;

  location / {
    proxy_pass         http://proxy;
    proxy_set_header   Host $http_host;
    proxy_set_header   X-Real-IP $remote_addr;
    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_read_timeout 1000;
  }
  # end server definition
}

Configuration

This plugin, like Prettier, is opinionated. The following options are available, with defaults modelled after the configuration examples in the NGINX docs.

API Option CLI Option Default Description
printWidth --print-width Same option as in Prettier
tabWidth --tab-width Same option as in Prettier
useTabs --use-tabs Same option as in Prettier
alignDirectives --align-directives true Align directive parameters within a block to the same column.
alignUniversally --align-universally false Align all directive parameters within a file to the same column.
wrapParameters --wrap-parameters true Wrap parameters to new lines to fit print width.
continuationIndent --continuation-indent 2 Additional indentation for wrapped lines.

Contributing

Bug reports and pull requests are welcome on GitHub.

License

The package is available as open source under the terms of the MIT License.

Package Sidebar

Install

npm i prettier-plugin-nginx

Weekly Downloads

2,869

Version

1.0.3

License

MIT

Unpacked Size

50.8 kB

Total Files

9

Last publish

Collaborators

  • joedeandev