Socket
Socket
Sign inDemoInstall

@jsenv/import-map

Package Overview
Dependencies
0
Maintainers
2
Versions
41
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    @jsenv/import-map

Helpers to implement importMap


Version published
Weekly downloads
113
increased by43.04%
Maintainers
2
Created
Weekly downloads
 

Readme

Source

jsenv-import-map

github package npm package github ci codecov coverage

Helpers to implement importMap

Table of contents

Presentation

@jsenv/import-map can be used to implement the behaviour of importMap as described in the specification. It is written using es modules and is compatible with Node.js.

— see importMap spec

Usage

@jsenv/import-map exports are documented in this section.

composeTwoImportMaps

composeTwoImportMaps takes two importMap and return a single importMap being the composition of the two.
Implemented by src/composeTwoImportMaps.js

import { composeTwoImportMaps } from "@jsenv/import-map"

const importMap = composeTwoImportMaps(
  {
    imports: {
      foo: "bar",
    },
  },
  {
    imports: {
      foo: "whatever",
    },
  },
)

console.log(JSON.stringify(importMap, null, "  "))
{
  "imports": {
    "foo": "whatever"
  }
}

normalizeImportMap

normalizeImportMap returns an importMap resolved against an url and sorted.
Implemented by src/normalizeImportMap.js

import { normalizeImportMap } from "@jsenv/import-map"

const importMap = normalizeImportMap(
  {
    imports: {
      foo: "./bar",
      "./ding.js": "./dong.js"
    },
  },
  "http://your-domain.com",
)

console.log(JSON.stringify(importMap, null, '  ')
{
  "imports": {
    "foo": "http://your-domain.com/bar",
    "http://your-domain.com/ding.js": "http://your-domain.com/dong.js"
  }
}

resolveImport

resolveImport returns an import url applying an importMap to specifier and importer.
Implemented by src/resolveImport.js

import { resolveImport } from "@jsenv/import-map"

const importUrl = resolveImport({
  specifier: "../index.js",
  importer: "http://domain.com/folder/file.js",
  importMap: {
    imports: {
      "http://domain.com/index.js": "http://domain.com/main.js",
    },
  },
})

console.log(importUrl)
http://domain.com/main.js

The provided importMap must be resolved and sorted to work as expected. You can use normalizeImportMap to do that.

Installation

If you never installed a jsenv package, read Installing a jsenv package before going further.

This documentation is up-to-date with a specific version so prefer any of the following commands

npm install --save-dev @jsenv/import-map@6.2.0
yarn add --dev @jsenv/import-map@6.2.0

FAQs

Last updated on 06 Dec 2019

Did you know?

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

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc