New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

cjs-faker

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cjs-faker

Fakes commonJS boilerplate to allow importing legacy code as an ES6 module

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
7
increased by40%
Maintainers
1
Weekly downloads
 
Created
Source

cjs-faker fakes commonJS and AMD boilerplate to allow importing legacy code via ES6 modules.

This is implemented by providing fake exports/module.exports, require() and define() calls that are used by the commonJS or AMD code being included. You must shim all modules that you depend on.

Rationale

This approach is mostly a thought experiment in evaluating legacy code at runtime, rather than requiring a build step (as require() and define() are not supported natively by browsers).

For most practical purposes, you'll be better off using Rollup with its commonJS plugin. Using Rollup requires a build step before you can import legacy code as an ES6 module, but doesn't require a shim per module in the dependency tree.

Usage

Usage requires providing a shim around all commonJS or AMD modules:

// wrap_base64.js
import faker from './node_modules/cjs-faker/cjs-faker.js';
import 'https://cdn.rawgit.com/mathiasbynens/base64/a8d7cabd/base64.js';
export default faker('base64');

Now you can just use the base64 module inside ES6:

import base64 from './wrap_base64.js';
console.info(base64.encode('Hello!'));

// or use require() itself for already wrapped modules
const base64 = require('base64');

No build steps are required.

Dependency Tree

If you depend on commonJS module A, which depends on commonJS module B etc, you must provide the shim for B first, then A. The default faker method in the examples fills a registry that is available via the global require() call, so B has to be shimmed first for A's require('a') call to succeed.

See file B:

// wrap_b.js
import faker from './node_modules/cjs-faker/cjs-faker.js';
import './path/to/b.js';
export default faker('b');

And file A:

// wrap_a.js
import faker from './node_modules/cjs-faker/cjs-faker.js';
import './path/to/a.js';
export default faker('a');

FAQs

Package last updated on 10 Sep 2017

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

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc