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

to-source

v3.1.3

Published

Convert your objects back to text.

Downloads

112

Readme

to-source Build

Turns code back into source! Doesn't support functions (but you can override that) or comments though.

This is currently used for code generation, hence why you have more control over how the output is going to look like.

Parameters

  • any data This is the javascript value to convert back into source text.
  • object options The options object is also optional, See below for the options to modify the output along with the defaults.

Options

  • number tabDepth Is the indentation level that the value is starting at.
  • boolean enclose If false, the object output won't have the openeing and closing brackets. This is useful is you want to insert the output into an existing object.
  • string tabChar specifies what to use for the height character. By default this will use a single tab character. You can specify two, three, four spaces instead if you want (or whatever you want).
  • function functionFormatter If you want to parse functions, you will need to specify this argument. The function will feed the tab height and the function object to the formatter, from there you will need to source it and change the format to preference. If this argument is not specified the default will be an empty function.
  • string quoteChar This will specify what kind of character to use to escape keys in objects and what to use for strings. By default, this is a single quote.
  • boolean trailingComma If true, will add a trailing comma to objects and arrays. Defaults to false.

Overriding the default function serializer

You can override the default formatter globally. A utility function is provided which can make a decent serializer that should indent things properly for most use cases.

var toSource = require('to-source');

// By default mkFnFormatter will use tabs, but you can specify what kind of
// character you want to use for a single indentation level.
toSource.defaultFnFormatter = toSource.mkFnFormatter();

var example = function() {
	return 'foobar';
};

toSource(example); // -> outputs the whole function!

Preferably, you should use a proper code formatter like beautify-js to format the function block. This is why you can specify your own formatter.