dnscontrol/docs/_functions/global/require.md
2020-03-10 11:46:09 -04:00

1.4 KiB

name parameters
require
path

require(...) behaves similarly to its equivalent in node.js. You can use it to split your configuration across multiple files. If the path starts with a ., it is calculated relative to the current file. For example:

{% include startExample.html %} {% highlight js %}

// dnsconfig.js require('kubernetes/clusters.js');

D("mydomain.net", REG, PROVIDER, IncludeKubernetes() );

{%endhighlight%}

{% highlight js %}

// kubernetes/clusters.js require('./clusters/prod.js'); require('./clusters/dev.js');

function IncludeKubernetes() { return [includeK8Sprod(), includeK8Sdev()]; }

{%endhighlight%}

{% highlight js %}

// kubernetes/clusters/prod.js function includeK8Sprod() { return [ /* ... */ ]; }

{%endhighlight%}

{% highlight js %}

// kubernetes/clusters/dev.js function includeK8Sdev() { return [ /* ... */ ]; }

{%endhighlight%} {% include endExample.html %}

You can also use it to require json files and initialize variables with it: For Example:

{% include startExample.html %} {% highlight js %}

// dnsconfig.js var domains = require('./domain-ip-map.json')

for (var domain in domains) { D(domain, REG, PROVIDER, A("@", domains[domain]) ); }

{%endhighlight%}

{%highlight js %} // domain-ip-map.json { "mydomain.net": "1.1.1.1", "myotherdomain.org": "5.5.5.5" } {%endhighlight} {% include endExample.html %}