@jcoreio/toolchain 4.6.1 → 4.6.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/package.json +1 -1
- package/plugins/getConfigFiles.cjs +30 -24
- package/scripts/migrate/migrateConfigFiles.cjs +2 -2
- package/scripts/migrate/migrateEslintConfigs.cjs +5 -1
- package/scripts/migrate/migrateGitignore.cjs +1 -1
- package/scripts/migrate/migrateProjectPackageJson.cjs +108 -90
- package/scripts/migrate.cjs +15 -7
- package/scripts/upgrade.cjs +4 -0
- package/util/writeMigratedVersion.cjs +19 -0
- package/scripts/migrate/migrateRemoveFiles.cjs +0 -43
package/package.json
CHANGED
|
@@ -15,7 +15,7 @@ async function getRootEslintConfig() {
|
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
module.exports = [
|
|
18
|
-
async function getConfigFiles() {
|
|
18
|
+
async function getConfigFiles({ fromVersion }) {
|
|
19
19
|
const { env, rules } = (await getRootEslintConfig()) || {}
|
|
20
20
|
const files = {
|
|
21
21
|
...(isMonorepoSubpackage
|
|
@@ -25,12 +25,9 @@ module.exports = [
|
|
|
25
25
|
optional=false
|
|
26
26
|
`,
|
|
27
27
|
}),
|
|
28
|
-
'.eslintrc.cjs': (
|
|
29
|
-
|
|
30
|
-
?
|
|
31
|
-
new RegExp(`${name}/eslint\\.config\\.cjs`, 'g'),
|
|
32
|
-
`${name}/eslintConfig.cjs`
|
|
33
|
-
)
|
|
28
|
+
'.eslintrc.cjs': async (existing) =>
|
|
29
|
+
existing && fromVersion
|
|
30
|
+
? existing
|
|
34
31
|
: dedent`
|
|
35
32
|
/* eslint-env node, es2018 */
|
|
36
33
|
module.exports = {
|
|
@@ -72,7 +69,10 @@ module.exports = [
|
|
|
72
69
|
'lint-staged.config.cjs',
|
|
73
70
|
'prettier.config.cjs',
|
|
74
71
|
]) {
|
|
75
|
-
files[file] =
|
|
72
|
+
files[file] = async (existing) =>
|
|
73
|
+
existing && fromVersion
|
|
74
|
+
? existing
|
|
75
|
+
: dedent`
|
|
76
76
|
/* eslint-env node, es2018 */
|
|
77
77
|
const base = require('${name}/${file}')
|
|
78
78
|
module.exports = {
|
|
@@ -89,24 +89,30 @@ module.exports = [
|
|
|
89
89
|
: await getPluginsArraySync('vscodeLaunch')
|
|
90
90
|
|
|
91
91
|
if (tasks.length) {
|
|
92
|
-
files['.vscode/tasks.json'] =
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
files['.vscode/tasks.json'] = async (existing) =>
|
|
93
|
+
existing && fromVersion
|
|
94
|
+
? existing
|
|
95
|
+
: JSON.stringify(
|
|
96
|
+
{
|
|
97
|
+
version: '2.0.0',
|
|
98
|
+
tasks,
|
|
99
|
+
},
|
|
100
|
+
null,
|
|
101
|
+
2
|
|
102
|
+
)
|
|
100
103
|
}
|
|
101
104
|
if (launch.length) {
|
|
102
|
-
files['.vscode/launch.json'] =
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
105
|
+
files['.vscode/launch.json'] = async (existing) =>
|
|
106
|
+
existing && fromVersion
|
|
107
|
+
? existing
|
|
108
|
+
: JSON.stringify(
|
|
109
|
+
{
|
|
110
|
+
version: '0.2.0',
|
|
111
|
+
configurations: launch,
|
|
112
|
+
},
|
|
113
|
+
null,
|
|
114
|
+
2
|
|
115
|
+
)
|
|
110
116
|
}
|
|
111
117
|
|
|
112
118
|
return files
|
|
@@ -3,8 +3,8 @@ const path = require('path')
|
|
|
3
3
|
const getPluginsObjectAsync = require('../../util/getPluginsObjectAsync.cjs')
|
|
4
4
|
const { name } = require('../../package.json')
|
|
5
5
|
|
|
6
|
-
async function migrateConfigFiles() {
|
|
7
|
-
const files = await getPluginsObjectAsync('getConfigFiles')
|
|
6
|
+
async function migrateConfigFiles({ fromVersion }) {
|
|
7
|
+
const files = await getPluginsObjectAsync('getConfigFiles', { fromVersion })
|
|
8
8
|
for (const file in files) {
|
|
9
9
|
const value = files[file]
|
|
10
10
|
let content, overwrite
|
|
@@ -3,7 +3,11 @@ const Path = require('path')
|
|
|
3
3
|
const JSON5 = require('json5')
|
|
4
4
|
const fs = require('../../util/projectFs.cjs')
|
|
5
5
|
|
|
6
|
-
async function migrateEslintConfigs() {
|
|
6
|
+
async function migrateEslintConfigs({ fromVersion }) {
|
|
7
|
+
if (fromVersion) {
|
|
8
|
+
// only do this migration on init
|
|
9
|
+
return
|
|
10
|
+
}
|
|
7
11
|
for (const file of await glob(Path.join('**', '.eslintrc{,.json}'))) {
|
|
8
12
|
const content = JSON5.parse(await fs.readFile(file, 'utf8'))
|
|
9
13
|
if (content.extends) {
|
|
@@ -12,60 +12,69 @@ const confirm = require('../../util/confirm.cjs')
|
|
|
12
12
|
const unset = require('../../util/unset.cjs')
|
|
13
13
|
const merge = require('../../util/merge.cjs')
|
|
14
14
|
|
|
15
|
-
async function migrateProjectPackageJson() {
|
|
15
|
+
async function migrateProjectPackageJson({ fromVersion }) {
|
|
16
16
|
const packageJson = await fs.readJson('package.json')
|
|
17
17
|
const devDependencies =
|
|
18
18
|
packageJson.devDependencies || (packageJson.devDependencies = {})
|
|
19
19
|
|
|
20
|
-
await getPluginsAsyncFunction('migrateProjectPackageJson')(packageJson
|
|
20
|
+
await getPluginsAsyncFunction('migrateProjectPackageJson')(packageJson, {
|
|
21
|
+
fromVersion,
|
|
22
|
+
})
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
24
|
+
if (!fromVersion) {
|
|
25
|
+
for (const path of [
|
|
26
|
+
'commitlint',
|
|
27
|
+
'config.commitizen',
|
|
28
|
+
'config.eslint',
|
|
29
|
+
'config.lint',
|
|
30
|
+
'config.mocha',
|
|
31
|
+
'config.prettier',
|
|
32
|
+
'eslintConfig',
|
|
33
|
+
'files',
|
|
34
|
+
'husky',
|
|
35
|
+
'husky',
|
|
36
|
+
'lint-staged',
|
|
37
|
+
'nyc',
|
|
38
|
+
'prettier',
|
|
39
|
+
'renovate',
|
|
40
|
+
'scripts.build:cjs',
|
|
41
|
+
'scripts.build:js',
|
|
42
|
+
'scripts.build:mjs',
|
|
43
|
+
'scripts.build:types',
|
|
44
|
+
'scripts.build',
|
|
45
|
+
'scripts.clean',
|
|
46
|
+
'scripts.codecov',
|
|
47
|
+
'scripts.coverage',
|
|
48
|
+
'scripts.commitmsg',
|
|
49
|
+
'scripts.flow:coverage',
|
|
50
|
+
'scripts.flow:watch',
|
|
51
|
+
'scripts.flow',
|
|
52
|
+
'scripts.lint:fix',
|
|
53
|
+
'scripts.lint:watch',
|
|
54
|
+
'scripts.lint',
|
|
55
|
+
'scripts.open:coverage',
|
|
56
|
+
'scripts.precommit',
|
|
57
|
+
'scripts.prepublishOnly',
|
|
58
|
+
'scripts.prepush',
|
|
59
|
+
'scripts.prettier:check',
|
|
60
|
+
'scripts.prettier',
|
|
61
|
+
'scripts.semantic-release',
|
|
62
|
+
'scripts.test:debug',
|
|
63
|
+
'scripts.test:watch',
|
|
64
|
+
'scripts.test',
|
|
65
|
+
'scripts.travis-deploy-once',
|
|
66
|
+
'scripts.tsc:watch',
|
|
67
|
+
'scripts.tsc',
|
|
68
|
+
]) {
|
|
69
|
+
unset(packageJson, path)
|
|
70
|
+
}
|
|
67
71
|
}
|
|
68
|
-
if (
|
|
72
|
+
if (
|
|
73
|
+
!fromVersion &&
|
|
74
|
+
!packageJson.main &&
|
|
75
|
+
!packageJson.exports &&
|
|
76
|
+
!packageJson.module
|
|
77
|
+
) {
|
|
69
78
|
const hasIndexTypes =
|
|
70
79
|
(await fs.pathExists(Path.join('src', 'index.ts'))) ||
|
|
71
80
|
(await fs.pathExists(Path.join('src', 'index.tsx'))) ||
|
|
@@ -79,59 +88,68 @@ async function migrateProjectPackageJson() {
|
|
|
79
88
|
if (hasIndexTypes) {
|
|
80
89
|
packageJson.types = 'dist/index.d.ts'
|
|
81
90
|
}
|
|
82
|
-
}
|
|
83
|
-
for (const dep of require('./migrateRemoveDevDeps.cjs')) {
|
|
84
|
-
delete devDependencies[dep]
|
|
85
|
-
}
|
|
86
91
|
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
for (const dep of require('./migrateRemoveDevDeps.cjs')) {
|
|
93
|
+
delete devDependencies[dep]
|
|
94
|
+
}
|
|
89
95
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
96
|
+
if (
|
|
97
|
+
semver.lt(fromVersion || '0.0.0', '3.0.0') &&
|
|
98
|
+
!packageJson.exports &&
|
|
99
|
+
packageJson.main
|
|
100
|
+
) {
|
|
101
|
+
const relativize = (p) => (p.startsWith('.') ? p : `./${p}`)
|
|
102
|
+
|
|
103
|
+
const dotStar = await confirm({
|
|
104
|
+
type: 'confirm',
|
|
105
|
+
initial: true,
|
|
106
|
+
ifNotInteractive: false,
|
|
107
|
+
message: 'Add ./* exports map to package.json?',
|
|
108
|
+
})
|
|
109
|
+
const outputEsm = await confirmOutputEsm()
|
|
110
|
+
packageJson.exports = {
|
|
111
|
+
'./package.json': './package.json',
|
|
112
|
+
'.': {
|
|
113
|
+
...(packageJson.types
|
|
114
|
+
? { types: relativize(packageJson.types) }
|
|
115
|
+
: {}),
|
|
116
|
+
...(outputEsm !== false && packageJson.module
|
|
117
|
+
? { import: relativize(packageJson.module) }
|
|
118
|
+
: {}),
|
|
119
|
+
default: relativize(packageJson.main),
|
|
120
|
+
},
|
|
121
|
+
...(dotStar
|
|
122
|
+
? {
|
|
123
|
+
'./*': {
|
|
124
|
+
types: './*.d.ts',
|
|
125
|
+
...(outputEsm !== false ? { import: './*.mjs' } : {}),
|
|
126
|
+
default: './*.js',
|
|
127
|
+
},
|
|
128
|
+
}
|
|
103
129
|
: {}),
|
|
104
|
-
|
|
105
|
-
},
|
|
106
|
-
...(dotStar
|
|
107
|
-
? {
|
|
108
|
-
'./*': {
|
|
109
|
-
types: './*.d.ts',
|
|
110
|
-
...(outputEsm !== false ? { import: './*.mjs' } : {}),
|
|
111
|
-
default: './*.js',
|
|
112
|
-
},
|
|
113
|
-
}
|
|
114
|
-
: {}),
|
|
130
|
+
}
|
|
115
131
|
}
|
|
116
132
|
}
|
|
117
133
|
|
|
118
134
|
merge(
|
|
119
135
|
packageJson,
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
136
|
+
fromVersion
|
|
137
|
+
? {}
|
|
138
|
+
: {
|
|
139
|
+
version: '0.0.0-development',
|
|
140
|
+
sideEffects: false,
|
|
141
|
+
scripts: {
|
|
142
|
+
tc: 'toolchain',
|
|
143
|
+
toolchain: 'toolchain',
|
|
144
|
+
test: 'toolchain test',
|
|
145
|
+
prepublishOnly:
|
|
146
|
+
'echo This package is meant to be published by semantic-release from the dist build directory. && exit 1',
|
|
147
|
+
},
|
|
148
|
+
},
|
|
131
149
|
pick(toolchainManaged, 'engines', 'packageManager'),
|
|
132
150
|
pick(packageJson, 'engines')
|
|
133
151
|
)
|
|
134
|
-
if (isEmpty(packageJson.config)) delete packageJson.config
|
|
152
|
+
if (!fromVersion && isEmpty(packageJson.config)) delete packageJson.config
|
|
135
153
|
|
|
136
154
|
const isTest = Boolean(process.env.JCOREIO_TOOLCHAIN_SELF_TEST)
|
|
137
155
|
|
package/scripts/migrate.cjs
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
|
|
3
|
+
const { packageJson } = require('../util/findUps.cjs')
|
|
4
|
+
const { name } = require('../package.json')
|
|
3
5
|
const getPluginsAsyncFunction = require('../util/getPluginsAsyncFunction.cjs')
|
|
4
6
|
|
|
5
7
|
async function migrate(args = []) {
|
|
@@ -16,20 +18,26 @@ async function migrate(args = []) {
|
|
|
16
18
|
const migrateMoveTypeDefs = require('./migrate/migrateMoveTypeDefs.cjs')
|
|
17
19
|
const migrateGitignore = require('./migrate/migrateGitignore.cjs')
|
|
18
20
|
const hasYarnOrNpmLockfile = require('../util/hasYarnOrNpmLockfile.cjs')
|
|
21
|
+
const writeMigratedVersion = require('../util/writeMigratedVersion.cjs')
|
|
19
22
|
|
|
20
|
-
|
|
23
|
+
const fromVersion = packageJson[name]
|
|
24
|
+
? packageJson[name].migratedVersion
|
|
25
|
+
: undefined
|
|
26
|
+
if (!fromVersion && !isMonorepoSubpackage && !findGitDir()) {
|
|
21
27
|
await execa('git', ['init'])
|
|
22
28
|
await installGitHooks.run()
|
|
23
29
|
}
|
|
24
|
-
await migrateProjectPackageJson()
|
|
30
|
+
await migrateProjectPackageJson({ fromVersion })
|
|
25
31
|
if (await hasYarnOrNpmLockfile()) {
|
|
26
32
|
await execa('pnpm', ['import'])
|
|
27
33
|
}
|
|
28
|
-
await migrateConfigFiles()
|
|
29
|
-
await migrateEslintConfigs()
|
|
30
|
-
await migrateMoveTypeDefs()
|
|
31
|
-
await migrateGitignore()
|
|
32
|
-
await getPluginsAsyncFunction('migrate')(args)
|
|
34
|
+
await migrateConfigFiles({ fromVersion })
|
|
35
|
+
await migrateEslintConfigs({ fromVersion })
|
|
36
|
+
if (!fromVersion) await migrateMoveTypeDefs()
|
|
37
|
+
await migrateGitignore({ fromVersion })
|
|
38
|
+
await getPluginsAsyncFunction('migrate')(args, { fromVersion })
|
|
39
|
+
|
|
40
|
+
await writeMigratedVersion()
|
|
33
41
|
|
|
34
42
|
if (!args.includes('--config-only')) {
|
|
35
43
|
await execa('pnpm', [
|
package/scripts/upgrade.cjs
CHANGED
|
@@ -6,6 +6,7 @@ const {
|
|
|
6
6
|
monorepoSubpackageJsons,
|
|
7
7
|
} = require('../util/findUps.cjs')
|
|
8
8
|
const execa = require('../util/execa.cjs')
|
|
9
|
+
const writeMigratedVersion = require('../util/writeMigratedVersion.cjs')
|
|
9
10
|
const { name } = require('../package.json')
|
|
10
11
|
|
|
11
12
|
async function upgrade([version] = []) {
|
|
@@ -16,6 +17,9 @@ async function upgrade([version] = []) {
|
|
|
16
17
|
.filter((pkg) => pkg.startsWith(`${name}-`))
|
|
17
18
|
),
|
|
18
19
|
]
|
|
20
|
+
if (!packageJson[name] || !packageJson[name].migratedVersion) {
|
|
21
|
+
await writeMigratedVersion()
|
|
22
|
+
}
|
|
19
23
|
const isTest = Boolean(process.env.JCOREIO_TOOLCHAIN_SELF_TEST)
|
|
20
24
|
|
|
21
25
|
if (!isTest && !version) {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const fs = require('../util/projectFs.cjs')
|
|
2
|
+
const { name, version: currentVersion } = require('../package.json')
|
|
3
|
+
|
|
4
|
+
module.exports = async function writeMigratedVersion() {
|
|
5
|
+
const packageJson = await fs.readJson('package.json')
|
|
6
|
+
if (packageJson[name] && packageJson[name].migratedVersion === currentVersion)
|
|
7
|
+
return
|
|
8
|
+
await fs.writeJson(
|
|
9
|
+
'package.json',
|
|
10
|
+
{
|
|
11
|
+
...packageJson,
|
|
12
|
+
[name]: {
|
|
13
|
+
...packageJson[name],
|
|
14
|
+
migratedVersion: currentVersion,
|
|
15
|
+
},
|
|
16
|
+
},
|
|
17
|
+
{ spaces: 2 }
|
|
18
|
+
)
|
|
19
|
+
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
module.exports = [
|
|
2
|
-
'.babelrc.js',
|
|
3
|
-
'.babelrc.json',
|
|
4
|
-
'.babelrc.mjs',
|
|
5
|
-
'.babelrc',
|
|
6
|
-
'babel.config.cjs',
|
|
7
|
-
'babel.config.js',
|
|
8
|
-
'babel.config.json',
|
|
9
|
-
'babel.config.mjs',
|
|
10
|
-
'.commitlintrc.js',
|
|
11
|
-
'.commitlintrc.json',
|
|
12
|
-
'.commitlintrc.yml',
|
|
13
|
-
'commitlint.config.js',
|
|
14
|
-
'husky.config.js',
|
|
15
|
-
'.lintstagedrc',
|
|
16
|
-
'lint-staged.config.js',
|
|
17
|
-
'.nycrc.json',
|
|
18
|
-
'.nycrc.yaml',
|
|
19
|
-
'.nycrc.yml',
|
|
20
|
-
'.nycrc',
|
|
21
|
-
'nyc.config.js',
|
|
22
|
-
'.prettierrc.cjs',
|
|
23
|
-
'.prettierrc.js',
|
|
24
|
-
'.prettierrc.json',
|
|
25
|
-
'.prettierrc.json5',
|
|
26
|
-
'.prettierrc.toml',
|
|
27
|
-
'.prettierrc.yaml',
|
|
28
|
-
'.prettierrc.yml',
|
|
29
|
-
'.prettierrc',
|
|
30
|
-
'prettier.config.js',
|
|
31
|
-
'package-lock.json',
|
|
32
|
-
'.github/renovate.json',
|
|
33
|
-
'.github/renovate.json5',
|
|
34
|
-
'.gitlab/renovate.json',
|
|
35
|
-
'.gitlab/renovate.json5',
|
|
36
|
-
'.renovaterc.json',
|
|
37
|
-
'.renovaterc',
|
|
38
|
-
'renovate.json',
|
|
39
|
-
'renovate.json5',
|
|
40
|
-
'solano.yml',
|
|
41
|
-
'.travis.yml',
|
|
42
|
-
'yarn.lock',
|
|
43
|
-
]
|