Skip to content

Commit 3aeef76

Browse files
authored
Merge pull request #17 from jsenv/import-map-extension
importmap extension + custom import map file
2 parents ee56d50 + 10e7c79 commit 3aeef76

File tree

197 files changed

+994
-2509
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

197 files changed

+994
-2509
lines changed

.eslintrc.cjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ const { createEslintConfig } = require("@jsenv/eslint-config")
22

33
const config = createEslintConfig({
44
projectDirectoryUrl: __dirname,
5+
importMapFileRelativeUrl: "./import-map.importmap",
56
importResolutionMethod: "import-map",
67
})
78

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
strategy:
1414
matrix:
1515
os: [windows-latest, ubuntu-latest]
16-
node: [13.12.0]
16+
node: [14.5.0]
1717
runs-on: ${{ matrix.os }}
1818
name: test on ${{ matrix.os }} and node ${{ matrix.node }}
1919
env:
@@ -49,7 +49,7 @@ jobs:
4949
- uses: actions/checkout@v2
5050
- uses: actions/setup-node@v1
5151
with:
52-
node-version: "13.x"
52+
node-version: "14.x"
5353
- name: npm install
5454
run: |
5555
npm config set //npm.pkg.github.com/:_authToken ${{ secrets.GITHUB_TOKEN }}

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
/docs/basic-project/package-lock.json
66
/docs/basic-project/yarn.lock
77
/node_modules/
8+
/test/generateImportMapForProject/**/*.importmap
9+
/import-map.importmap
810
/jsconfig.json
911
/package-lock.json
1012
/secrets.json

.npmrc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
1-
save-exact=true
2-
@jsenv:registry=https://npm.pkg.github.com
1+
save-exact=true

.prettierignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22
/coverage/
33
/dist/
44
/docs/basic-project/node_modules/
5-
/docs/basic-project/importMap.json
65
/docs/basic-project/package-lock.json
76
/node_modules/
8-
/importMap.json
97
/jsconfig.json
108
/package-lock.json
119
/package.json

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"request": "launch",
88
"protocol": "inspector",
99
"program": "${file}",
10-
"runtimeVersion": "14.5.0",
10+
// "runtimeVersion": "14.5.0",
1111
"runtimeArgs": [
1212
"--unhandled-rejections=strict",
1313
"--experimental-json-modules",

docs/advanced.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Table of contents
2+
3+
- [generateImportMapForProject](#generateImportMapForProject)
4+
- [importMapFile](#importMapFile)
5+
- [importMapFileRelativeUrl](#importMapFileRelativeUrl)
6+
- [importMapFileLog](#importMapFileLog)
7+
- [getImportMapFromFile](#getImportMapFromFile)
8+
- [importMapFileUrl](#importMapFileUrl)
9+
10+
# generateImportMapForProject
11+
12+
`generateImportMapForProject` is an async function receiving an array of promise resolving to importmaps. It awaits for every importmap, compose them into one and write it into a file.
13+
14+
> This function is meant to be responsible of generating the final importMap file that a project uses.
15+
16+
For example code below will generate an import map from node_modules + a file + an inline importmap.
17+
18+
```js
19+
import {
20+
getImportMapFromNodeModules,
21+
getImportMapFromFile,
22+
generateImportMapForProject,
23+
} from "@jsenv/node-module-import-map"
24+
25+
const projectDirectoryUrl = new URL("./", import.meta.url)
26+
const customImportMapFileUrl = new URL("./import-map-custom.importmap", projectDirectoryUrl)
27+
28+
await generateImportMapForProject(
29+
[
30+
getImportMapFromNodeModules({
31+
projectDirectoryUrl,
32+
projectPackageDevDependenciesIncluded: true,
33+
}),
34+
getImportMapFromFile(customImportMapFileUrl),
35+
{
36+
imports: {
37+
foo: "./bar.js",
38+
},
39+
},
40+
],
41+
{
42+
projectDirectoryUrl,
43+
importMapFileRelativeUrl: "./import-map.importmap",
44+
},
45+
)
46+
```
47+
48+
— source code at [src/generateImportMapForProject.js](../src/generateImportMapForProject.js).
49+
50+
## importMapFile
51+
52+
`importMapFile` parameter is a boolean controling if importMap is written to a file. This parameters is optional and enabled by default.
53+
54+
## importMapFileRelativeUrl
55+
56+
`importMapFileRelativeUrl` parameter is a string controlling where importMap file is written. This parameter is optional and by default it's `"./import-map.importmap"`.
57+
58+
## importMapFileLog
59+
60+
`importMapFileLog` parameter a boolean controlling if there is log in the terminal when importMap file is written. This parameter is optional and by default it's enabled.
61+
62+
# getImportMapFromFile
63+
64+
`getImportMapFromFile` is an async function reading importmap from a file.
65+
66+
```js
67+
import { getImportMapFromFile } from "@jsenv/node-module-import-map"
68+
69+
const importMapFileUrl = new URL("./import-map.importmap", import.meta.url)
70+
const importMap = await getImportMapFromFile(importMapFileUrl)
71+
```
72+
73+
— source code at [src/getImportMapFromFile.js](../src/getImportMapFromFile.js).
74+
75+
## importMapFileUrl
76+
77+
`importMapFileUrl` parameter a string or an url leading to the importmap file. This parameter is **required**.

docs/api.md

Lines changed: 0 additions & 123 deletions
This file was deleted.
Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
const { generateImportMapForProjectPackage } = require("@jsenv/node-module-import-map")
1+
import { getImportMapFromNodeModules } from "@jsenv/node-module-import-map"
22

3-
generateImportMapForProjectPackage({
3+
const importMap = await getImportMapFromNodeModules({
44
projectDirectoryUrl: __dirname,
5-
includeDevDependencies: true,
6-
importMapFile: true,
7-
importMapFileRelativeUrl: "./importMap.json",
5+
projectPackageDevDependenciesIncluded: true,
6+
importMapFileRelativeUrl: "./import-map.importmap",
87
})
8+
9+
console.log(importMap)

docs/basic-project/package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,14 @@
22
"name": "whatever",
33
"version": "0.0.1",
44
"license": "MIT",
5+
"type": "module",
6+
"engines": {
7+
"node": ">=14.0.0"
8+
},
59
"scripts": {
610
"generate-import-map": "node ./generate-import-map.js"
711
},
812
"devDependencies": {
9-
"@jsenv/node-module-import-map": "10.1.0"
13+
"@jsenv/node-module-import-map": "12.0.0-alpha.0"
1014
}
1115
}

0 commit comments

Comments
 (0)