Skip to content

Commit 011255f

Browse files
committed
build(json-api-nestjs): Create hyprid npm package
create esm and common module for npm
1 parent 5a5bbc8 commit 011255f

File tree

3 files changed

+60
-11
lines changed

3 files changed

+60
-11
lines changed

libs/json-api/json-api-nestjs/project.json

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,51 @@
55
"projectType": "library",
66
"targets": {
77
"build": {
8+
"executor": "nx:run-commands",
9+
"dependsOn": [
10+
{
11+
"target": "build-mjs"
12+
},
13+
{
14+
"target": "build-cjs"
15+
}
16+
],
17+
"options": {
18+
"outputPath": "dist/libs/json-api/json-api-nestjs",
19+
"commands": [
20+
"node tools/scripts/preparation-hybrid-npm-package.mjs json-api-nestjs",
21+
"node tools/scripts/preparation-npm-package.mjs json-api-nestjs"
22+
],
23+
"cwd": "./",
24+
"parallel": false
25+
}
26+
},
27+
"build-cjs": {
828
"executor": "@nx/js:tsc",
929
"outputs": ["{options.outputPath}"],
1030
"options": {
11-
"outputPath": "dist/libs/json-api/json-api-nestjs",
31+
"outputPath": "dist/libs/json-api/json-api-nestjs/cjs",
32+
"main": "libs/json-api/json-api-nestjs/src/index.ts",
1233
"tsConfig": "libs/json-api/json-api-nestjs/tsconfig.lib.json",
13-
"packageJson": "libs/json-api/json-api-nestjs/package.json",
34+
"assets": ["libs/json-api/json-api-nestjs/README.md"],
35+
"external": "none",
36+
"updateBuildableProjectDepsInPackageJson": true,
37+
"buildableProjectDepsInPackageJsonType": "peerDependencies",
38+
"generateExportsField": true
39+
}
40+
},
41+
"build-mjs": {
42+
"executor": "@nx/js:tsc",
43+
"outputs": ["{options.outputPath}"],
44+
"options": {
45+
"outputPath": "dist/libs/json-api/json-api-nestjs/mjs",
1446
"main": "libs/json-api/json-api-nestjs/src/index.ts",
15-
"assets": ["libs/json-api/json-api-nestjs/*.md"],
47+
"tsConfig": "libs/json-api/json-api-nestjs/tsconfig-mjs.lib.json",
48+
"assets": ["libs/json-api/json-api-nestjs/README.md"],
1649
"external": "none",
1750
"updateBuildableProjectDepsInPackageJson": true,
18-
"buildableProjectDepsInPackageJsonType": "peerDependencies"
51+
"buildableProjectDepsInPackageJsonType": "peerDependencies",
52+
"generateExportsField": true
1953
}
2054
},
2155
"publish": {
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"extends": "./tsconfig.json",
3+
"compilerOptions": {
4+
"types": ["node"],
5+
"module": "es2015",
6+
"target": "ES2022",
7+
"removeComments": false,
8+
"declaration": true,
9+
"declarationMap": true
10+
},
11+
"include": ["src/**/*.ts"],
12+
"exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
13+
}

tools/scripts/preparation-hybrid-npm-package.mjs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,15 +60,17 @@ mjsJson.exports['.'] = {
6060
es2015: mjsJson.es2015,
6161
default: mjsJson.es2015,
6262
}
63-
64-
mjsJson.exports[angularModule] = {
65-
types: './mjs/src/json-api-nestjs-sdk.module.d.ts',
66-
node: addTypeToPath(angularPath, 'cjs'),
67-
require: addTypeToPath(angularPath, 'cjs'),
68-
es2015: addTypeToPath(angularPath),
69-
default: addTypeToPath(angularPath),
63+
if (mjsJson.namne === 'json-api-nestjs-sdk') {
64+
mjsJson.exports[angularModule] = {
65+
types: './mjs/src/json-api-nestjs-sdk.module.d.ts',
66+
node: addTypeToPath(angularPath, 'cjs'),
67+
require: addTypeToPath(angularPath, 'cjs'),
68+
es2015: addTypeToPath(angularPath),
69+
default: addTypeToPath(angularPath),
70+
}
7071
}
7172

73+
7274
writeFileSync(`package.json`, JSON.stringify(mjsJson, null, 2));
7375
writeFileSync(
7476
'README.md',

0 commit comments

Comments
 (0)