Socket
Socket
Sign inDemoInstall

precinct

Package Overview
Dependencies
Maintainers
1
Versions
73
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

precinct

Unleash the detectives


Version published
Weekly downloads
1.2M
decreased by-7.06%
Maintainers
1
Weekly downloads
 
Created

Package description

What is precinct?

The precinct npm package is used to find dependencies in JavaScript and other file types. It helps in identifying the modules that a given file depends on, which can be useful for various tasks such as dependency analysis, bundling, and more.

What are precinct's main functionalities?

JavaScript Dependency Detection

This feature allows you to detect dependencies in JavaScript files. By passing the content of a JavaScript file to the precinct function, it returns an array of dependencies.

const precinct = require('precinct');
const content = 'const foo = require("foo");';
const dependencies = precinct(content);
console.log(dependencies); // ['foo']

CSS Dependency Detection

This feature allows you to detect dependencies in CSS files. By specifying the type as 'css', precinct can parse and return the dependencies in CSS files.

const precinct = require('precinct');
const content = '@import "foo.css";';
const dependencies = precinct(content, { type: 'css' });
console.log(dependencies); // ['foo.css']

TypeScript Dependency Detection

This feature allows you to detect dependencies in TypeScript files. By specifying the type as 'ts', precinct can parse and return the dependencies in TypeScript files.

const precinct = require('precinct');
const content = 'import foo from "foo";';
const dependencies = precinct(content, { type: 'ts' });
console.log(dependencies); // ['foo']

Other packages similar to precinct

Readme

Source

Precinct CI npm

Unleash the detectives

npm install --save precinct

Uses the appropriate detective to find the dependencies of a file or its AST.

Supports:

  • JavaScript modules: AMD, CommonJS, and ES6.
  • Typescript
  • CSS Preprocessors: Sass, Stylus, and Less
  • CSS (PostCSS)

Usage

const precinct = require('precinct');

const content = fs.readFileSync('myFile.js', 'utf8');

// Pass in a file's content or an AST
const deps = precinct(content);

You may pass options (to individual detectives) based on the module type via an optional second object argument detective(content, options), for example:

Example call: precinct(content, { amd: { skipLazyLoaded: true } });

  • The supported module type prefixes are amd, commonjs, css, es6, less, sass, scss, stylus, ts, tsx

Current options:

  • amd.skipLazyLoaded: tells the AMD detective to omit lazy-loaded dependencies (i.e., inner requires).
  • es6.mixedImports: allows for all dependencies to be fetched from a file that contains both CJS and ES6 imports.
  • Note: This will work for any file format that contains an es6 import.
  • css.url: tells the CSS detective to include url() references to images, fonts, etc.

Finding non-JavaScript (ex: Sass and Stylus) dependencies:

const content = fs.readFileSync('styles.scss', 'utf8');

const deps = precinct(content, { type: 'sass' });
const deps2 = precinct(content, { type: 'stylus' });

Or, if you just want to pass in a filepath and get the dependencies:

const { paperwork } = require('precinct');

const deps = paperwork('myFile.js');
const deps2 = paperwork('styles.scss');
precinct.paperwork(filename, options)

Supported options:

  • includeCore: (default: true) set to false to exclude core Node dependencies from the list of dependencies.
  • fileSystem: (default: undefined) set to an alternative fs implementation that will be used to read the file path.
  • You may also pass detective-specific configuration like you would to precinct(content, options).
CLI

Assumes a global install of npm install -g precinct

precinct [options] path/to/file

  • Run precinct --help to see options

License

MIT

Keywords

FAQs

Package last updated on 19 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc