mirror of
https://github.com/hcengineering/platform.git
synced 2026-08-17 18:05:42 +02:00
QFIX: Skip communication apply-templates (#9341)
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
+46
-16
@@ -1,5 +1,14 @@
|
||||
const { join } = require("path")
|
||||
const { readFileSync, writeFileSync, existsSync, readdirSync, lstatSync, copyFileSync, mkdirSync, rmSync } = require('fs')
|
||||
const { join } = require('path')
|
||||
const {
|
||||
readFileSync,
|
||||
writeFileSync,
|
||||
existsSync,
|
||||
readdirSync,
|
||||
lstatSync,
|
||||
copyFileSync,
|
||||
mkdirSync,
|
||||
rmSync
|
||||
} = require('fs')
|
||||
const { spawnSync } = require('child_process')
|
||||
|
||||
/**
|
||||
@@ -123,23 +132,35 @@ function updatePackage(packageRoot, templates) {
|
||||
}
|
||||
}
|
||||
|
||||
const preferedOrder = ['name', 'version', 'main', 'svelte', 'types', 'files', 'author', 'template', 'license', 'scripts', 'devDependencies', 'dependencies', 'repository', 'publishConfig']
|
||||
const preferedOrder = [
|
||||
'name',
|
||||
'version',
|
||||
'main',
|
||||
'svelte',
|
||||
'types',
|
||||
'files',
|
||||
'author',
|
||||
'template',
|
||||
'license',
|
||||
'scripts',
|
||||
'devDependencies',
|
||||
'dependencies',
|
||||
'repository',
|
||||
'publishConfig'
|
||||
]
|
||||
|
||||
Object.keys(currentPackage).forEach(it => {
|
||||
Object.keys(currentPackage).forEach((it) => {
|
||||
if (!preferedOrder.includes(it)) {
|
||||
preferedOrder.push(it)
|
||||
}
|
||||
})
|
||||
|
||||
const ordered = preferedOrder.reduce(
|
||||
(obj, key) => {
|
||||
const ordered = preferedOrder.reduce((obj, key) => {
|
||||
if (currentPackage[key] !== undefined) {
|
||||
obj[key] = currentPackage[key]
|
||||
}
|
||||
return obj
|
||||
},
|
||||
{}
|
||||
)
|
||||
}, {})
|
||||
|
||||
const newPackage = JSON.stringify(ordered, undefined, 2)
|
||||
|
||||
@@ -153,10 +174,14 @@ function updatePackage(packageRoot, templates) {
|
||||
// We need to remove #ignores from replaces
|
||||
|
||||
if (currentPackage['#ignore'] !== undefined) {
|
||||
replaces = replaces.filter(f =>!currentPackage['#ignore'].includes(f))
|
||||
replaces = replaces.filter((f) => !currentPackage['#ignore'].includes(f))
|
||||
}
|
||||
|
||||
copyFiles(template.root, packageRoot, replaces.map(f => join(packageRoot, f)) )
|
||||
copyFiles(
|
||||
template.root,
|
||||
packageRoot,
|
||||
replaces.map((f) => join(packageRoot, f))
|
||||
)
|
||||
|
||||
// Clean some folders
|
||||
for (const p of template.package['#removes'] ?? []) {
|
||||
@@ -166,24 +191,29 @@ function updatePackage(packageRoot, templates) {
|
||||
}
|
||||
}
|
||||
|
||||
const ignoreRoots = ['communication']
|
||||
|
||||
function listPackages() {
|
||||
const out = spawnSync('rush', ['list', '--json'], { encoding: 'utf8' }).stdout
|
||||
const projects = JSON.parse(out)
|
||||
return projects.projects.map(it => it.fullPath)
|
||||
return projects.projects.map((it) => it.fullPath).filter((it) => !ignoreRoots.some((qt) => it.includes(qt)))
|
||||
}
|
||||
|
||||
console.log('running at:', __dirname)
|
||||
|
||||
const templates = readdirSync(__dirname)
|
||||
.map(d => join(__dirname, d))
|
||||
.filter(d => lstatSync(d).isDirectory() && existsSync(join(d, 'package.json')) )
|
||||
.map(d => ({
|
||||
.map((d) => join(__dirname, d))
|
||||
.filter((d) => lstatSync(d).isDirectory() && existsSync(join(d, 'package.json')))
|
||||
.map((d) => ({
|
||||
root: d,
|
||||
isDefault: d.endsWith('default'),
|
||||
package: JSON.parse(readFileSync(join(d, 'package.json')))
|
||||
}))
|
||||
|
||||
console.log('Detected templates:', templates.map(t => (t.package.name + ':' + t.package.version)))
|
||||
console.log(
|
||||
'Detected templates:',
|
||||
templates.map((t) => t.package.name + ':' + t.package.version)
|
||||
)
|
||||
|
||||
const projects = listPackages()
|
||||
for (const p of projects) {
|
||||
|
||||
Reference in New Issue
Block a user