metapak-nfroidure 11.2.1 → 12.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +34 -0
- package/README.md +0 -1
- package/package.json +4 -4
- package/src/babel/__snapshots__/package.test.js.snap +5 -5
- package/src/config.js +2 -2
- package/src/eslint/package.js +6 -3
- package/src/ghactions/assets/_dot_github/workflows/test.yml +27 -0
- package/src/ghactions/assets.js +30 -0
- package/src/ghactions/assets.test.js +81 -0
- package/src/jest/package.js +27 -2
- package/src/jsarch/package.js +4 -1
- package/src/jsdocs/package.js +3 -1
- package/src/main/__snapshots__/package.test.js.snap +4 -4
- package/src/travis/__snapshots__/assets.test.js.snap +4 -4
- package/src/tsesm/assets/_dot_vscode/settings.json +3 -0
- package/src/tsesm/assets/tsconfig.json +18 -0
- package/src/tsesm/assets.js +25 -0
- package/src/tsesm/package.js +66 -0
- package/src/tsesm/package.test.js +41 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,37 @@
|
|
|
1
|
+
## [12.0.2](https://github.com/nfroidure/metapak-nfroidure/compare/v12.0.1...v12.0.2) (2022-06-06)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **tsesm:** fix vscode file presence for monorepos ([a2bc240](https://github.com/nfroidure/metapak-nfroidure/commit/a2bc240595be3a964339caa7812f01d710334cfb))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
## [12.0.1](https://github.com/nfroidure/metapak-nfroidure/compare/v12.0.0...v12.0.1) (2022-05-29)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* **tsesm:** fix TypeScript + Jest configuration ([b7c6768](https://github.com/nfroidure/metapak-nfroidure/commit/b7c67688a494acc8cc918a61e75054d2c1ac7d80))
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# [12.0.0](https://github.com/nfroidure/metapak-nfroidure/compare/v11.2.1...v12.0.0) (2022-05-27)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **ci:** fix CI Config ([aea9263](https://github.com/nfroidure/metapak-nfroidure/commit/aea92638c3a579306b4060e62c7c22447a9ccc16))
|
|
25
|
+
* **configs:** fix GH Actions file name ([2c5d8af](https://github.com/nfroidure/metapak-nfroidure/commit/2c5d8af959a9a1755ef6754799f776ea8af016a6))
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* **configs:** add GH Actions instead of TravisCI ([bf679d6](https://github.com/nfroidure/metapak-nfroidure/commit/bf679d68dd4bf2209adeced107014743d33b487c)), closes [#19](https://github.com/nfroidure/metapak-nfroidure/issues/19)
|
|
31
|
+
* **configs:** add TypeScript+ESM build configuration ([145c9ba](https://github.com/nfroidure/metapak-nfroidure/commit/145c9ba57cb3f9e86bdd9a0b08ea4050f27aaa53)), closes [#31](https://github.com/nfroidure/metapak-nfroidure/issues/31)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
1
35
|
## [11.2.1](https://github.com/nfroidure/metapak-nfroidure/compare/v11.2.0...v11.2.1) (2022-05-25)
|
|
2
36
|
|
|
3
37
|
|
package/README.md
CHANGED
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
> A metapak module for my open source projects.
|
|
9
9
|
|
|
10
10
|
[](https://github.com/nfroidure/metapak-nfroidure/blob/master/LICENSE)
|
|
11
|
-
[](https://travis-ci.com/github/nfroidure/metapak-nfroidure)
|
|
12
11
|
[](https://coveralls.io/github/nfroidure/metapak-nfroidure?branch=master)
|
|
13
12
|
|
|
14
13
|
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "metapak-nfroidure",
|
|
3
3
|
"description": "A metapak module for my open source projects.",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "12.0.2",
|
|
5
5
|
"metapak": {
|
|
6
6
|
"configs": [
|
|
7
7
|
"main",
|
|
8
8
|
"readme",
|
|
9
9
|
"jest",
|
|
10
10
|
"eslint",
|
|
11
|
-
"
|
|
11
|
+
"ghactions",
|
|
12
12
|
"codeclimate"
|
|
13
13
|
],
|
|
14
14
|
"data": {
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"metapak": "^3.1.5"
|
|
49
49
|
},
|
|
50
50
|
"engines": {
|
|
51
|
-
"node": ">=
|
|
51
|
+
"node": ">=16.15.0"
|
|
52
52
|
},
|
|
53
53
|
"bugs": {
|
|
54
54
|
"url": "https://github.com/nfroidure/metapak-nfroidure/issues"
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
"eslint": "^8.16.0",
|
|
63
63
|
"eslint-plugin-prettier": "^4.0.0",
|
|
64
64
|
"jest": "^28.1.0",
|
|
65
|
-
"metapak": "^4.0.
|
|
65
|
+
"metapak": "^4.0.4",
|
|
66
66
|
"prettier": "^2.6.2"
|
|
67
67
|
},
|
|
68
68
|
"config": {
|
|
@@ -41,7 +41,7 @@ Object {
|
|
|
41
41
|
"@babel/env",
|
|
42
42
|
Object {
|
|
43
43
|
"targets": Object {
|
|
44
|
-
"node": "
|
|
44
|
+
"node": "16.15.0",
|
|
45
45
|
},
|
|
46
46
|
},
|
|
47
47
|
],
|
|
@@ -116,7 +116,7 @@ Object {
|
|
|
116
116
|
"@babel/env",
|
|
117
117
|
Object {
|
|
118
118
|
"targets": Object {
|
|
119
|
-
"node": "
|
|
119
|
+
"node": "16.15.0",
|
|
120
120
|
},
|
|
121
121
|
},
|
|
122
122
|
],
|
|
@@ -216,7 +216,7 @@ Object {
|
|
|
216
216
|
"@babel/env",
|
|
217
217
|
Object {
|
|
218
218
|
"targets": Object {
|
|
219
|
-
"node": "
|
|
219
|
+
"node": "16.15.0",
|
|
220
220
|
},
|
|
221
221
|
},
|
|
222
222
|
],
|
|
@@ -307,7 +307,7 @@ Object {
|
|
|
307
307
|
"@babel/env",
|
|
308
308
|
Object {
|
|
309
309
|
"targets": Object {
|
|
310
|
-
"node": "
|
|
310
|
+
"node": "16.15.0",
|
|
311
311
|
},
|
|
312
312
|
},
|
|
313
313
|
],
|
|
@@ -397,7 +397,7 @@ Object {
|
|
|
397
397
|
"@babel/env",
|
|
398
398
|
Object {
|
|
399
399
|
"targets": Object {
|
|
400
|
-
"node": "
|
|
400
|
+
"node": "16.15.0",
|
|
401
401
|
},
|
|
402
402
|
},
|
|
403
403
|
],
|
package/src/config.js
CHANGED
package/src/eslint/package.js
CHANGED
|
@@ -53,7 +53,7 @@ module.exports = (packageConf) => {
|
|
|
53
53
|
};
|
|
54
54
|
|
|
55
55
|
// Special configuration for TypeScript
|
|
56
|
-
if (configs.includes('typescript')) {
|
|
56
|
+
if (configs.includes('typescript') || configs.includes('tsesm')) {
|
|
57
57
|
packageConf.devDependencies['@typescript-eslint/eslint-plugin'] = '^5.26.0';
|
|
58
58
|
packageConf.devDependencies['@typescript-eslint/parser'] = '^5.26.0';
|
|
59
59
|
packageConf.eslintConfig.parser = '@typescript-eslint/parser';
|
|
@@ -75,8 +75,11 @@ module.exports = (packageConf) => {
|
|
|
75
75
|
)
|
|
76
76
|
.concat(['eslint', 'eslint-config-prettier', 'prettier'])
|
|
77
77
|
.concat(
|
|
78
|
-
configs.includes('typescript')
|
|
79
|
-
? [
|
|
78
|
+
configs.includes('typescript') || configs.includes('tsesm')
|
|
79
|
+
? [
|
|
80
|
+
'@typescript-eslint/eslint-plugin',
|
|
81
|
+
'@typescript-eslint/parser',
|
|
82
|
+
]
|
|
80
83
|
: []
|
|
81
84
|
)
|
|
82
85
|
),
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Node.js CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [master]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [master]
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
build:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
strategy:
|
|
14
|
+
matrix:
|
|
15
|
+
node-version: [16.x, 18.x]
|
|
16
|
+
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v3
|
|
19
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
20
|
+
uses: actions/setup-node@v3
|
|
21
|
+
with:
|
|
22
|
+
node-version: ${{ matrix.node-version }}
|
|
23
|
+
cache: "npm"
|
|
24
|
+
- name: Install dependencies
|
|
25
|
+
run: npm ci
|
|
26
|
+
- name: Run pre-commit tests
|
|
27
|
+
run: npm run precz
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const config = require('../config.js');
|
|
4
|
+
|
|
5
|
+
module.exports = (file) => {
|
|
6
|
+
if ('.github/workflows/test.yml' === file.name) {
|
|
7
|
+
const lastNodeLTSMajorPart = parseInt(config.lastNodeLTS.split('.')[0], 10);
|
|
8
|
+
const lastNodeMajorPart = parseInt(config.lastNode.split('.')[0], 10);
|
|
9
|
+
const versions = [];
|
|
10
|
+
|
|
11
|
+
for (let i = 0; i <= lastNodeMajorPart - lastNodeLTSMajorPart; i++) {
|
|
12
|
+
if (0 === i) {
|
|
13
|
+
versions.push(lastNodeLTSMajorPart);
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const isANodeStableVersion = i % 2 === 0;
|
|
18
|
+
|
|
19
|
+
if (isANodeStableVersion) {
|
|
20
|
+
versions.push(lastNodeLTSMajorPart + i);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
file.data = file.data.replace(
|
|
24
|
+
'node-version: []',
|
|
25
|
+
`node-version: [${versions.map((version) => version + '.x').join(', ')}]`
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return file;
|
|
30
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const fs = require('fs');
|
|
4
|
+
const path = require('path');
|
|
5
|
+
const assert = require('assert');
|
|
6
|
+
const assetsTransformer = require('./assets');
|
|
7
|
+
|
|
8
|
+
describe('GHActions', () => {
|
|
9
|
+
describe('Assets transformer', () => {
|
|
10
|
+
it('should fill the manifest', () => {
|
|
11
|
+
expect(
|
|
12
|
+
assetsTransformer(
|
|
13
|
+
{
|
|
14
|
+
name: '.github/workflows/test.yml',
|
|
15
|
+
data: fs.readFileSync(
|
|
16
|
+
path.join(
|
|
17
|
+
__dirname,
|
|
18
|
+
'assets',
|
|
19
|
+
'_dot_github',
|
|
20
|
+
'workflows',
|
|
21
|
+
'test.yml'
|
|
22
|
+
),
|
|
23
|
+
|
|
24
|
+
'utf-8'
|
|
25
|
+
),
|
|
26
|
+
},
|
|
27
|
+
|
|
28
|
+
{}
|
|
29
|
+
)
|
|
30
|
+
).toMatchInlineSnapshot(`
|
|
31
|
+
Object {
|
|
32
|
+
"data": "name: Node.js CI
|
|
33
|
+
|
|
34
|
+
on:
|
|
35
|
+
push:
|
|
36
|
+
branches: [master]
|
|
37
|
+
pull_request:
|
|
38
|
+
branches: [master]
|
|
39
|
+
|
|
40
|
+
jobs:
|
|
41
|
+
build:
|
|
42
|
+
runs-on: ubuntu-latest
|
|
43
|
+
|
|
44
|
+
strategy:
|
|
45
|
+
matrix:
|
|
46
|
+
node-version: [16.x, 18.x]
|
|
47
|
+
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v3
|
|
50
|
+
- name: Use Node.js \${{ matrix.node-version }}
|
|
51
|
+
uses: actions/setup-node@v3
|
|
52
|
+
with:
|
|
53
|
+
node-version: \${{ matrix.node-version }}
|
|
54
|
+
cache: \\"npm\\"
|
|
55
|
+
- name: Install dependencies
|
|
56
|
+
run: npm ci
|
|
57
|
+
- name: Run pre-commit tests
|
|
58
|
+
run: npm run precz
|
|
59
|
+
",
|
|
60
|
+
"name": ".github/workflows/test.yml",
|
|
61
|
+
}
|
|
62
|
+
`);
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
it('should let pass other files', () => {
|
|
66
|
+
assert.deepEqual(
|
|
67
|
+
assetsTransformer(
|
|
68
|
+
{
|
|
69
|
+
name: 'YOLO',
|
|
70
|
+
data: 'Carpe diem\n',
|
|
71
|
+
},
|
|
72
|
+
{}
|
|
73
|
+
),
|
|
74
|
+
{
|
|
75
|
+
name: 'YOLO',
|
|
76
|
+
data: 'Carpe diem\n',
|
|
77
|
+
}
|
|
78
|
+
);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
});
|
package/src/jest/package.js
CHANGED
|
@@ -40,13 +40,35 @@ module.exports = (packageConf) => {
|
|
|
40
40
|
transform: {}.undef,
|
|
41
41
|
}
|
|
42
42
|
: {},
|
|
43
|
+
// Add ts esm necessary conf
|
|
44
|
+
configs.includes('tsesm')
|
|
45
|
+
? {
|
|
46
|
+
preset: 'ts-jest',
|
|
47
|
+
testEnvironment: 'node',
|
|
48
|
+
transform: {
|
|
49
|
+
'\\.[jt]sx?$': 'ts-jest',
|
|
50
|
+
},
|
|
51
|
+
globals: {
|
|
52
|
+
'ts-jest': {
|
|
53
|
+
useESM: true,
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
moduleNameMapper: {
|
|
57
|
+
'(.+)\\.js': '$1',
|
|
58
|
+
},
|
|
59
|
+
extensionsToTreatAsEsm: ['.ts'],
|
|
60
|
+
}
|
|
61
|
+
: {},
|
|
43
62
|
|
|
44
63
|
packageConf.jest
|
|
45
64
|
);
|
|
46
65
|
// Special configuration for TypeScript
|
|
47
|
-
if (configs.includes('typescript')) {
|
|
66
|
+
if (configs.includes('typescript') || configs.includes('tsesm')) {
|
|
48
67
|
packageConf.devDependencies['@types/jest'] = '^27.0.2';
|
|
49
68
|
}
|
|
69
|
+
if (configs.includes('tsesm')) {
|
|
70
|
+
packageConf.devDependencies['ts-jest'] = '^28.0.3';
|
|
71
|
+
}
|
|
50
72
|
|
|
51
73
|
if (configs.includes('typescript')) {
|
|
52
74
|
delete packageConf.devDependencies['ts-jest'];
|
|
@@ -61,7 +83,10 @@ module.exports = (packageConf) => {
|
|
|
61
83
|
: []
|
|
62
84
|
)
|
|
63
85
|
.concat(['jest', 'coveralls'])
|
|
64
|
-
.filter(
|
|
86
|
+
.filter(
|
|
87
|
+
(packageName) =>
|
|
88
|
+
packageName !== 'ts-jest' || configs.includes('tsesm')
|
|
89
|
+
)
|
|
65
90
|
),
|
|
66
91
|
],
|
|
67
92
|
};
|
package/src/jsarch/package.js
CHANGED
|
@@ -24,7 +24,10 @@ module.exports = (packageConf) => {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
// Special configuration for TypeScript
|
|
27
|
-
if (
|
|
27
|
+
if (
|
|
28
|
+
(configs.includes('typescript') || configs.includes('tsesm')) &&
|
|
29
|
+
!packageConf.jsarch
|
|
30
|
+
) {
|
|
28
31
|
packageConf.jsarch = {
|
|
29
32
|
parserOptions: {
|
|
30
33
|
plugins: ['typescript'],
|
package/src/jsdocs/package.js
CHANGED
|
@@ -13,7 +13,9 @@ module.exports = (packageConf) => {
|
|
|
13
13
|
packageConf.scripts.doc = data.rootPackage
|
|
14
14
|
? 'lerna run doc'
|
|
15
15
|
: `echo "# API" > ${apiPath}; jsdoc2md ${
|
|
16
|
-
configs.includes('typescript')
|
|
16
|
+
configs.includes('typescript') || configs.includes('tsesm')
|
|
17
|
+
? data.distFiles
|
|
18
|
+
: data.files
|
|
17
19
|
} >> ${apiPath} && git add ${apiPath}`;
|
|
18
20
|
|
|
19
21
|
if (!data.childPackage) {
|
|
@@ -9,7 +9,7 @@ Object {
|
|
|
9
9
|
},
|
|
10
10
|
"contributors": Array [],
|
|
11
11
|
"engines": Object {
|
|
12
|
-
"node": ">=
|
|
12
|
+
"node": ">=16.15.0",
|
|
13
13
|
},
|
|
14
14
|
"files": Array [
|
|
15
15
|
"src",
|
|
@@ -41,7 +41,7 @@ Object {
|
|
|
41
41
|
},
|
|
42
42
|
"contributors": Array [],
|
|
43
43
|
"engines": Object {
|
|
44
|
-
"node": ">=
|
|
44
|
+
"node": ">=16.15.0",
|
|
45
45
|
},
|
|
46
46
|
"files": Array [
|
|
47
47
|
"src",
|
|
@@ -83,7 +83,7 @@ Object {
|
|
|
83
83
|
"cz-conventional-changelog": "^3.3.0",
|
|
84
84
|
},
|
|
85
85
|
"engines": Object {
|
|
86
|
-
"node": ">=
|
|
86
|
+
"node": ">=16.15.0",
|
|
87
87
|
},
|
|
88
88
|
"files": Array [
|
|
89
89
|
"src",
|
|
@@ -136,7 +136,7 @@ Object {
|
|
|
136
136
|
"cz-conventional-changelog": "^3.3.0",
|
|
137
137
|
},
|
|
138
138
|
"engines": Object {
|
|
139
|
-
"node": ">=
|
|
139
|
+
"node": ">=16.15.0",
|
|
140
140
|
},
|
|
141
141
|
"files": Array [
|
|
142
142
|
"src",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"module": "Node16",
|
|
4
|
+
"moduleResolution": "Node16",
|
|
5
|
+
"target": "es2022",
|
|
6
|
+
"noImplicitAny": false,
|
|
7
|
+
"removeComments": false,
|
|
8
|
+
"preserveConstEnums": true,
|
|
9
|
+
"allowSyntheticDefaultImports": true,
|
|
10
|
+
"esModuleInterop": true,
|
|
11
|
+
"strict": true,
|
|
12
|
+
"declaration": true,
|
|
13
|
+
"outDir": "dist",
|
|
14
|
+
"sourceMap": true
|
|
15
|
+
},
|
|
16
|
+
"include": ["src/**/*.ts"],
|
|
17
|
+
"exclude": ["node_modules"]
|
|
18
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { getMetapakInfos } = require('../lib.js');
|
|
4
|
+
|
|
5
|
+
module.exports = (file, packageConf) => {
|
|
6
|
+
const { data } = getMetapakInfos(packageConf);
|
|
7
|
+
|
|
8
|
+
// Set types in ts config
|
|
9
|
+
if ('tsconfig.json' === file.name) {
|
|
10
|
+
let contents = JSON.parse(file.data);
|
|
11
|
+
|
|
12
|
+
if (data.typesFiles) {
|
|
13
|
+
contents = Object.assign({}, contents, {
|
|
14
|
+
include: [data.typesFiles],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
file.data = JSON.stringify(contents, null, 2);
|
|
18
|
+
}
|
|
19
|
+
if ('.vscode/settings.json' === file.name) {
|
|
20
|
+
if (data.childPackage) {
|
|
21
|
+
file.data = '';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return file;
|
|
25
|
+
};
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const { ensureScript, getMetapakInfos } = require('../lib.js');
|
|
4
|
+
const BUILD_COMMAND = 'npm run build';
|
|
5
|
+
|
|
6
|
+
module.exports = (packageConf) => {
|
|
7
|
+
const { data } = getMetapakInfos(packageConf);
|
|
8
|
+
|
|
9
|
+
// Declare an ESM module
|
|
10
|
+
packageConf.type = 'module';
|
|
11
|
+
packageConf.main = 'dist/index.js';
|
|
12
|
+
packageConf.types = 'dist/index.d.ts';
|
|
13
|
+
|
|
14
|
+
// Add the dev dependencies
|
|
15
|
+
packageConf.devDependencies = packageConf.devDependencies || {};
|
|
16
|
+
packageConf.devDependencies.typescript = '^4.7.2';
|
|
17
|
+
packageConf.devDependencies.rimraf = '^3.0.2';
|
|
18
|
+
|
|
19
|
+
packageConf.scripts = packageConf.scripts || {};
|
|
20
|
+
packageConf.scripts.build = data.rootPackage
|
|
21
|
+
? 'lerna run build'
|
|
22
|
+
: "rimraf -f 'dist' && tsc --outDir dist";
|
|
23
|
+
|
|
24
|
+
// Install mandatory scripts
|
|
25
|
+
if (!data.childPackage) {
|
|
26
|
+
packageConf.scripts.precz = ensureScript(
|
|
27
|
+
packageConf.scripts.precz,
|
|
28
|
+
BUILD_COMMAND
|
|
29
|
+
);
|
|
30
|
+
packageConf.scripts.preversion = ensureScript(
|
|
31
|
+
packageConf.scripts.preversion,
|
|
32
|
+
BUILD_COMMAND
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Remove eventual old dependencies
|
|
37
|
+
delete packageConf.devDependencies['babel-plugin-knifecycle'];
|
|
38
|
+
Object.keys(packageConf.devDependencies || {}).forEach((key) => {
|
|
39
|
+
if (key.startsWith('@babel')) {
|
|
40
|
+
delete packageConf.devDependencies[key];
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Remove eventual old configurations
|
|
45
|
+
delete packageConf.module;
|
|
46
|
+
delete packageConf.scripts.compile;
|
|
47
|
+
delete packageConf.scripts['compile:cjs'];
|
|
48
|
+
delete packageConf.scripts['compile:mjs'];
|
|
49
|
+
delete packageConf.scripts.types;
|
|
50
|
+
|
|
51
|
+
// Avoid GreenKeeper to update automatically added modules
|
|
52
|
+
if ('metapak-nfroidure' !== packageConf.name && !data.childPackage) {
|
|
53
|
+
packageConf.greenkeeper = {
|
|
54
|
+
ignore: [
|
|
55
|
+
...new Set(
|
|
56
|
+
(packageConf.greenkeeper && packageConf.greenkeeper.ignore
|
|
57
|
+
? packageConf.greenkeeper.ignore
|
|
58
|
+
: []
|
|
59
|
+
).concat(['typescript', 'rimraf'])
|
|
60
|
+
),
|
|
61
|
+
],
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return packageConf;
|
|
66
|
+
};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const packageTransformer = require('./package');
|
|
4
|
+
|
|
5
|
+
describe('private', () => {
|
|
6
|
+
describe('Package transformer', () => {
|
|
7
|
+
it('should work', () => {
|
|
8
|
+
expect(
|
|
9
|
+
packageTransformer({
|
|
10
|
+
metapak: {
|
|
11
|
+
data: {},
|
|
12
|
+
},
|
|
13
|
+
})
|
|
14
|
+
).toMatchInlineSnapshot(`
|
|
15
|
+
Object {
|
|
16
|
+
"devDependencies": Object {
|
|
17
|
+
"rimraf": "^3.0.2",
|
|
18
|
+
"typescript": "^4.7.2",
|
|
19
|
+
},
|
|
20
|
+
"greenkeeper": Object {
|
|
21
|
+
"ignore": Array [
|
|
22
|
+
"typescript",
|
|
23
|
+
"rimraf",
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
"main": "dist/index.js",
|
|
27
|
+
"metapak": Object {
|
|
28
|
+
"data": Object {},
|
|
29
|
+
},
|
|
30
|
+
"scripts": Object {
|
|
31
|
+
"build": "rimraf -f 'dist' && tsc --outDir dist",
|
|
32
|
+
"precz": "npm run build",
|
|
33
|
+
"preversion": "npm run build",
|
|
34
|
+
},
|
|
35
|
+
"type": "module",
|
|
36
|
+
"types": "dist/index.d.ts",
|
|
37
|
+
}
|
|
38
|
+
`);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
});
|