## Description 1. Move everything related to client from app folder to client folder (`.yarn`, `yarn.lock`, package.json, .gitignore) 2. Move `ast` and `rst` to client packages 3. Fix running scripts in packages 4. Add running unit tests in packages in CI TODO: It is necessary to consider enabling the `nmHoistingLimits: workspaces` option, since now all packages are hoisted to the root, there may be issues with dependencies in workspaces. Also, there is a possibility of implicit use of packages. https://yarnpkg.com/configuration/yarnrc#nmHoistingLimits #### PR fixes following issue(s) Fixes #23333 #### Type of change - Chore (housekeeping or task changes that don't impact user perception) ## Testing #### How Has This Been Tested? - [x] Manual - [x] Jest - [x] Cypress ## Checklist: #### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [ ] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag Co-authored-by: Valera Melnikov <melnikov.vv@greendatasoft.ru>
53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
const { getVersionDir } = require("../node_modules/cypress/lib/tasks/state");
|
|
const chalk = require("chalk");
|
|
const Diff = require("diff");
|
|
const fs = require("fs/promises");
|
|
const path = require("path");
|
|
|
|
async function applyPatches() {
|
|
const patchesDir = path.join(__dirname, "patches");
|
|
const patches = await fs.readdir(patchesDir);
|
|
const installDir = getVersionDir();
|
|
|
|
console.log(`\n> Applying patches on to ${chalk.cyan(installDir)}\n`);
|
|
|
|
for (const filename of patches) {
|
|
if (!filename.endsWith(".patch")) {
|
|
continue;
|
|
}
|
|
const fullpath = path.join(patchesDir, filename);
|
|
const enc = "utf8";
|
|
const patch = await fs.readFile(fullpath, enc);
|
|
const relativeFilename = path.relative(__dirname, fullpath);
|
|
console.log(`>> Applying patch ${chalk.cyan(relativeFilename)}`);
|
|
await Diff.applyPatches(patch, {
|
|
loadFile: (index, callback) => {
|
|
console.debug(`>>> Loading old file: ${chalk.red(index.oldFileName)}`);
|
|
fs.readFile(path.join(installDir, index.oldFileName), enc)
|
|
.then((contents) => {
|
|
callback(null, contents);
|
|
})
|
|
.catch(callback);
|
|
},
|
|
patched: (index, content, callback) => {
|
|
console.debug(
|
|
`>>> Patched new file: ${chalk.green(index.newFileName)}`,
|
|
);
|
|
fs.writeFile(path.join(installDir, index.newFileName), content, enc)
|
|
.then(callback)
|
|
.catch(callback);
|
|
},
|
|
complete: () => {
|
|
console.log(
|
|
`>> Successfully applied patch ${chalk.cyan(relativeFilename)}`,
|
|
);
|
|
},
|
|
});
|
|
}
|
|
}
|
|
|
|
applyPatches().catch((e) => {
|
|
console.error(e);
|
|
process.exit(42);
|
|
});
|