@jcoreio/toolchain 1.0.0 → 2.0.0
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/scripts/init.cjs +2 -7
- package/scripts/{bootstrap/bootstrapConfigFiles.cjs → migrate/migrateConfigFiles.cjs} +2 -2
- package/scripts/{bootstrap/bootstrapEslintConfigs.cjs → migrate/migrateEslintConfigs.cjs} +2 -2
- package/scripts/{bootstrap/bootstrapGitignore.cjs → migrate/migrateGitignore.cjs} +2 -2
- package/scripts/{bootstrap/bootstrapMoveTypeDefs.cjs → migrate/migrateMoveTypeDefs.cjs} +2 -2
- package/scripts/{bootstrap/bootstrapProjectPackageJson.cjs → migrate/migrateProjectPackageJson.cjs} +4 -4
- package/scripts/migrate.cjs +59 -0
- package/scripts/toolchain.cjs +2 -1
- package/scripts/upgrade.cjs +44 -0
- package/scripts/bootstrap.cjs +0 -52
- /package/scripts/{bootstrap/bootstrapRemoveDevDeps.cjs → migrate/migrateRemoveDevDeps.cjs} +0 -0
- /package/scripts/{bootstrap/bootstrapRemoveFiles.cjs → migrate/migrateRemoveFiles.cjs} +0 -0
package/package.json
CHANGED
package/scripts/init.cjs
CHANGED
|
@@ -38,15 +38,10 @@ async function init(args = []) {
|
|
|
38
38
|
? toolchains.map((t) => t.replace(/@jcoreio\/toolchain-/, '../packages/'))
|
|
39
39
|
: toolchains),
|
|
40
40
|
])
|
|
41
|
-
await execa('tc', ['
|
|
42
|
-
await execa('pnpm', ['i', '--no-frozen-lockfile'])
|
|
43
|
-
await execa('tc', ['format'])
|
|
44
|
-
await execa('tc', ['lint:fix'])
|
|
45
|
-
await execa('tc', ['prepublish'])
|
|
41
|
+
await execa('tc', ['migrate'])
|
|
46
42
|
}
|
|
47
43
|
|
|
48
|
-
exports.description =
|
|
49
|
-
'install toolchains, bootstrap, format, lint:fix and prepublish'
|
|
44
|
+
exports.description = 'install toolchains and migrate'
|
|
50
45
|
exports.run = init
|
|
51
46
|
|
|
52
47
|
if (require.main === module) {
|
|
@@ -3,7 +3,7 @@ const path = require('path')
|
|
|
3
3
|
const getPluginsObjectAsync = require('../../util/getPluginsObjectAsync.cjs')
|
|
4
4
|
const { name } = require('../../package.json')
|
|
5
5
|
|
|
6
|
-
async function
|
|
6
|
+
async function migrateConfigFiles() {
|
|
7
7
|
const files = await getPluginsObjectAsync('getConfigFiles')
|
|
8
8
|
for (const file in files) {
|
|
9
9
|
const value = files[file]
|
|
@@ -30,4 +30,4 @@ async function bootstrapConfigFiles() {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
module.exports =
|
|
33
|
+
module.exports = migrateConfigFiles
|
|
@@ -3,7 +3,7 @@ const Path = require('path')
|
|
|
3
3
|
const JSON5 = require('json5')
|
|
4
4
|
const fs = require('../../util/projectFs.cjs')
|
|
5
5
|
|
|
6
|
-
async function
|
|
6
|
+
async function migrateEslintConfigs() {
|
|
7
7
|
for (const file of await glob(Path.join('**', '.eslintrc{,.json}'))) {
|
|
8
8
|
const content = JSON5.parse(await fs.readFile(file, 'utf8'))
|
|
9
9
|
if (content.extends) {
|
|
@@ -27,4 +27,4 @@ async function bootstrapEslintConfigs() {
|
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
module.exports =
|
|
30
|
+
module.exports = migrateEslintConfigs
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
const execa = require('../../util/execa.cjs')
|
|
2
2
|
const fs = require('../../util/projectFs.cjs')
|
|
3
3
|
|
|
4
|
-
async function
|
|
4
|
+
async function migrateGitignore() {
|
|
5
5
|
const paths = {
|
|
6
6
|
'/dist': 'dist',
|
|
7
7
|
'.nyc_output': '.nyc_output',
|
|
@@ -34,4 +34,4 @@ async function bootstrapGitignore() {
|
|
|
34
34
|
console.error('updated .gitignore')
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
module.exports =
|
|
37
|
+
module.exports = migrateGitignore
|
|
@@ -2,7 +2,7 @@ const glob = require('@jcoreio/toolchain/util/glob.cjs')
|
|
|
2
2
|
const fs = require('@jcoreio/toolchain/util/projectFs.cjs')
|
|
3
3
|
const path = require('path')
|
|
4
4
|
|
|
5
|
-
async function
|
|
5
|
+
async function migrateMoveTypeDefs() {
|
|
6
6
|
for (const src of await glob('*.{d.ts,js.flow}')) {
|
|
7
7
|
const dest = path.join('src', src)
|
|
8
8
|
await fs.move(src, dest)
|
|
@@ -11,4 +11,4 @@ async function bootstrapMoveTypeDefs() {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
module.exports =
|
|
14
|
+
module.exports = migrateMoveTypeDefs
|
package/scripts/{bootstrap/bootstrapProjectPackageJson.cjs → migrate/migrateProjectPackageJson.cjs}
RENAMED
|
@@ -6,14 +6,14 @@ const semver = require('semver')
|
|
|
6
6
|
const isEmpty = require('lodash/isEmpty')
|
|
7
7
|
const pick = require('lodash/pick')
|
|
8
8
|
|
|
9
|
-
async function
|
|
9
|
+
async function migrateProjectPackageJson() {
|
|
10
10
|
const { merge, unset } = require('lodash')
|
|
11
11
|
|
|
12
12
|
const packageJson = await fs.readJson('package.json')
|
|
13
13
|
const devDependencies =
|
|
14
14
|
packageJson.devDependencies || (packageJson.devDependencies = {})
|
|
15
15
|
|
|
16
|
-
await getPluginsAsyncFunction('
|
|
16
|
+
await getPluginsAsyncFunction('migrateProjectPackageJson')(packageJson)
|
|
17
17
|
|
|
18
18
|
for (const path of [
|
|
19
19
|
'commitlint',
|
|
@@ -64,7 +64,7 @@ async function bootstrapProjectPackageJson() {
|
|
|
64
64
|
]) {
|
|
65
65
|
unset(packageJson, path)
|
|
66
66
|
}
|
|
67
|
-
for (const dep of require('./
|
|
67
|
+
for (const dep of require('./migrateRemoveDevDeps.cjs')) {
|
|
68
68
|
delete devDependencies[dep]
|
|
69
69
|
}
|
|
70
70
|
|
|
@@ -114,4 +114,4 @@ async function bootstrapProjectPackageJson() {
|
|
|
114
114
|
console.error('updated package.json')
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
module.exports =
|
|
117
|
+
module.exports = migrateProjectPackageJson
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const fs = require('../util/projectFs.cjs')
|
|
4
|
+
const getPluginsAsyncFunction = require('../util/getPluginsAsyncFunction.cjs')
|
|
5
|
+
|
|
6
|
+
async function migrate(args = []) {
|
|
7
|
+
const execa = require('../util/execa.cjs')
|
|
8
|
+
const installGitHooks = require('./install-git-hooks.cjs')
|
|
9
|
+
const migrateProjectPackageJson = require('./migrate/migrateProjectPackageJson.cjs')
|
|
10
|
+
const migrateEslintConfigs = require('./migrate/migrateEslintConfigs.cjs')
|
|
11
|
+
const migrateConfigFiles = require('./migrate/migrateConfigFiles.cjs')
|
|
12
|
+
const migrateMoveTypeDefs = require('./migrate/migrateMoveTypeDefs.cjs')
|
|
13
|
+
const migrateGitignore = require('./migrate/migrateGitignore.cjs')
|
|
14
|
+
const migrateRemoveFiles = require('./migrate/migrateRemoveFiles.cjs')
|
|
15
|
+
const hasYarnOrNpmLockfile = require('../util/hasYarnOrNpmLockfile.cjs')
|
|
16
|
+
|
|
17
|
+
await execa('git', ['init'])
|
|
18
|
+
await installGitHooks.run()
|
|
19
|
+
await migrateProjectPackageJson()
|
|
20
|
+
if (await hasYarnOrNpmLockfile()) {
|
|
21
|
+
await execa('pnpm', ['import'])
|
|
22
|
+
}
|
|
23
|
+
await Promise.all(
|
|
24
|
+
migrateRemoveFiles.map(async (file) => {
|
|
25
|
+
const exists = await fs.pathExists(file)
|
|
26
|
+
if (exists) {
|
|
27
|
+
await fs.remove(file)
|
|
28
|
+
// eslint-disable-next-line no-console
|
|
29
|
+
console.error('removed', file)
|
|
30
|
+
}
|
|
31
|
+
})
|
|
32
|
+
)
|
|
33
|
+
await migrateConfigFiles()
|
|
34
|
+
await migrateEslintConfigs()
|
|
35
|
+
await migrateMoveTypeDefs()
|
|
36
|
+
await migrateGitignore()
|
|
37
|
+
await getPluginsAsyncFunction('migrate')(args)
|
|
38
|
+
|
|
39
|
+
if (!args.includes('--config-only')) {
|
|
40
|
+
await execa('pnpm', ['i', '--no-frozen-lockfile'])
|
|
41
|
+
await execa('tc', ['lint:fix'])
|
|
42
|
+
await execa('tc', ['format'])
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
exports.description =
|
|
47
|
+
'update dependencies and config, fix lint errors and format'
|
|
48
|
+
exports.run = migrate
|
|
49
|
+
|
|
50
|
+
if (require.main === module) {
|
|
51
|
+
migrate().then(
|
|
52
|
+
() => process.exit(0),
|
|
53
|
+
(error) => {
|
|
54
|
+
// eslint-disable-next-line no-console
|
|
55
|
+
console.error(error.stack)
|
|
56
|
+
process.exit(error.exitCode != null ? error.exitCode : 1)
|
|
57
|
+
}
|
|
58
|
+
)
|
|
59
|
+
}
|
package/scripts/toolchain.cjs
CHANGED
|
@@ -5,7 +5,7 @@ const chalk = require('chalk')
|
|
|
5
5
|
const getPluginsObjectSync = require('../util/getPluginsObjectSync.cjs')
|
|
6
6
|
|
|
7
7
|
const scripts = {
|
|
8
|
-
|
|
8
|
+
migrate: require('./migrate.cjs'),
|
|
9
9
|
build: require('./build.cjs'),
|
|
10
10
|
check: require('./check.cjs'),
|
|
11
11
|
clean: require('./clean.cjs'),
|
|
@@ -16,6 +16,7 @@ const scripts = {
|
|
|
16
16
|
'lint:fix': require('./lint-fix.cjs'),
|
|
17
17
|
'open:coverage': require('./open-coverage.cjs'),
|
|
18
18
|
prepublish: require('./prepublish.cjs'),
|
|
19
|
+
upgrade: require('./upgrade.cjs'),
|
|
19
20
|
version: {
|
|
20
21
|
description: `print version of ${name}`,
|
|
21
22
|
run: () => {
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { packageJson } = require('../util/findUps.cjs')
|
|
4
|
+
const execa = require('../util/execa.cjs')
|
|
5
|
+
|
|
6
|
+
async function upgrade([version] = []) {
|
|
7
|
+
const { devDependencies = {} } = packageJson
|
|
8
|
+
const toolchains = Object.keys(devDependencies).filter((pkg) =>
|
|
9
|
+
pkg.startsWith('@jcoreio/toolchain-')
|
|
10
|
+
)
|
|
11
|
+
const isTest = Boolean(process.env.JCOREIO_TOOLCHAIN_TEST)
|
|
12
|
+
|
|
13
|
+
if (!isTest && !version) {
|
|
14
|
+
version = (
|
|
15
|
+
await execa('npm', ['view', '@jcoreio/toolchain', 'version'], {
|
|
16
|
+
stdio: 'pipe',
|
|
17
|
+
})
|
|
18
|
+
).stdout.trim()
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
await execa('pnpm', [
|
|
22
|
+
'add',
|
|
23
|
+
'-D',
|
|
24
|
+
isTest ? '../packages/base' : `@jcoreio/toolchain@^${version}`,
|
|
25
|
+
...(isTest
|
|
26
|
+
? toolchains.map((t) => t.replace(/@jcoreio\/toolchain-/, '../packages/'))
|
|
27
|
+
: toolchains.map((t) => `${t}@^${version}`)),
|
|
28
|
+
])
|
|
29
|
+
await execa('tc', ['migrate'])
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
exports.description = 'upgrade toolchains and migrate'
|
|
33
|
+
exports.run = upgrade
|
|
34
|
+
|
|
35
|
+
if (require.main === module) {
|
|
36
|
+
upgrade().then(
|
|
37
|
+
() => process.exit(0),
|
|
38
|
+
(error) => {
|
|
39
|
+
// eslint-disable-next-line no-console
|
|
40
|
+
console.error(error.stack)
|
|
41
|
+
process.exit(error.exitCode != null ? error.exitCode : 1)
|
|
42
|
+
}
|
|
43
|
+
)
|
|
44
|
+
}
|
package/scripts/bootstrap.cjs
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const fs = require('../util/projectFs.cjs')
|
|
4
|
-
const getPluginsAsyncFunction = require('../util/getPluginsAsyncFunction.cjs')
|
|
5
|
-
|
|
6
|
-
async function bootstrap(args = []) {
|
|
7
|
-
const execa = require('../util/execa.cjs')
|
|
8
|
-
const installGitHooks = require('./install-git-hooks.cjs')
|
|
9
|
-
const bootstrapProjectPackageJson = require('./bootstrap/bootstrapProjectPackageJson.cjs')
|
|
10
|
-
const bootstrapEslintConfigs = require('./bootstrap/bootstrapEslintConfigs.cjs')
|
|
11
|
-
const bootstrapConfigFiles = require('./bootstrap/bootstrapConfigFiles.cjs')
|
|
12
|
-
const bootstrapMoveTypeDefs = require('./bootstrap/bootstrapMoveTypeDefs.cjs')
|
|
13
|
-
const bootstrapGitignore = require('./bootstrap/bootstrapGitignore.cjs')
|
|
14
|
-
const bootstrapRemoveFiles = require('./bootstrap/bootstrapRemoveFiles.cjs')
|
|
15
|
-
const hasYarnOrNpmLockfile = require('../util/hasYarnOrNpmLockfile.cjs')
|
|
16
|
-
|
|
17
|
-
await execa('git', ['init'])
|
|
18
|
-
await installGitHooks.run()
|
|
19
|
-
await bootstrapProjectPackageJson()
|
|
20
|
-
if (await hasYarnOrNpmLockfile()) {
|
|
21
|
-
await execa('pnpm', ['import'])
|
|
22
|
-
}
|
|
23
|
-
await Promise.all(
|
|
24
|
-
bootstrapRemoveFiles.map(async (file) => {
|
|
25
|
-
const exists = await fs.pathExists(file)
|
|
26
|
-
if (exists) {
|
|
27
|
-
await fs.remove(file)
|
|
28
|
-
// eslint-disable-next-line no-console
|
|
29
|
-
console.error('removed', file)
|
|
30
|
-
}
|
|
31
|
-
})
|
|
32
|
-
)
|
|
33
|
-
await bootstrapConfigFiles()
|
|
34
|
-
await bootstrapEslintConfigs()
|
|
35
|
-
await bootstrapMoveTypeDefs()
|
|
36
|
-
await bootstrapGitignore()
|
|
37
|
-
await getPluginsAsyncFunction('bootstrap')(args)
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
exports.description = 'set up project'
|
|
41
|
-
exports.run = bootstrap
|
|
42
|
-
|
|
43
|
-
if (require.main === module) {
|
|
44
|
-
bootstrap().then(
|
|
45
|
-
() => process.exit(0),
|
|
46
|
-
(error) => {
|
|
47
|
-
// eslint-disable-next-line no-console
|
|
48
|
-
console.error(error.stack)
|
|
49
|
-
process.exit(error.exitCode != null ? error.exitCode : 1)
|
|
50
|
-
}
|
|
51
|
-
)
|
|
52
|
-
}
|
|
File without changes
|
|
File without changes
|