npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

litespeed-conf

v2.0.7

Published

Module for interacting with LiteSpeed config file

Downloads

18

Readme

litespeed-conf

Module for interacting with LiteSpeed config.

npm install litespeed-conf

Usage

const { LiteSpeedConf } = require('litespeed-conf');

const config = `docRoot                   $VH_ROOT/client

errorlog /var/log/lsws/vhost_main/error.log {
  useServer               0
  logLevel                ERROR
  rollingSize             10M
  keepDays                30
  compressArchive         1
}

accesslog /var/log/lsws/vhost_main/access.log {
  useServer               0
  rollingSize             10M
  keepDays                30
  compressArchive         1
}

context /foo {
  location                $DOC_ROOT/foo/prod
  allowBrowse             1

  rewrite  {
    enable                1

  }
  addDefaultCharset       off

  phpIniOverride  {

  }
}

rewrite  {
  enable                  1
  autoLoadHtaccess        1
}
`;

const litespeed = new LiteSpeedConf(config);

litespeed.conf.add('context', '/baz', {
  location: '$DOC_ROOT/baz/prod',
  allowBrowse: 1,
  rewrite: {
    enable: 1,
  },
  addDefaultCharset: 'off',
  phpIniOverride: {},
  nested: {
    foo: 'baz',
  },
});

console.log(litespeed.toString());

It will output:


docRoot $VH_ROOT/client
errorlog /var/log/lsws/vhost_main/error.log {
  useServer 0
  logLevel ERROR
  rollingSize 10M
  keepDays 30
  compressArchive 1
}
accesslog /var/log/lsws/vhost_main/access.log {
  useServer 0
  rollingSize 10M
  keepDays 30
  compressArchive 1
}
context /foo {
  location $DOC_ROOT/foo/prod
  allowBrowse 1
  rewrite {
   enable 1
  }
  addDefaultCharset off
  phpIniOverride {}
}
rewrite {
  enable 1
  autoLoadHtaccess 1
}
context /baz {
  location $DOC_ROOT/baz/prod
  allowBrowse 1
  rewrite {
   enable 1
  }
  addDefaultCharset off
  phpIniOverride {}
  nested {
   foo baz
  }
}

Yes that newline in the first line is a bug. I'll fix it, maybe.

Add node

Add key value pair

litespeed.conf.add('foo', 'bar');

This new line will be added in the config string:

foo bar

Add new block

litespeed.conf.add('context', '/foo', {
  rewrite: {
    enable: 1,
  },
  phpIniOverride: {},
});

This new block will be added in the config string:

context /foo {
  rewrite {
    enable 1
  }
  phpIniOverride {}
}

Set node value

You can set the value of a node by using set.

Config:

context /foo {
  rewrite {
    enable 1
  }
  phpIniOverride {}
}

We can set the inner enable by writing:

litespeed.conf.get('context').get('rewrite').get('enable').set('0');

The config will look like this:

context /foo {
  rewrite {
    enable 0
  }
  phpIniOverride {}
}

Remove node

Config:

context /foo {
  rewrite {
    enable 1
  }
  phpIniOverride {}
}
litespeed.conf.get('context').remove('phpIniOverride');

Output:

context /foo {
  rewrite {
    enable 1
  }
}

You can remove the referenced node by:

litespeed.conf.get('context').get('rewrite').remove();

This will remove rewrite inside context.