mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
71 lines
2.2 KiB
71 lines
2.2 KiB
import execa from 'execa';
|
|
import fse from 'fs-extra';
|
|
|
|
class FileCopy {
|
|
src: string;
|
|
dest: string;
|
|
options?: fse.CopyOptions;
|
|
|
|
constructor(filecopyOrSrc: FileCopy | string) {
|
|
if (typeof filecopyOrSrc === 'string') {
|
|
this.src = filecopyOrSrc;
|
|
this.dest = filecopyOrSrc;
|
|
} else {
|
|
this.src = filecopyOrSrc.src;
|
|
this.dest = filecopyOrSrc.dest;
|
|
this.options = filecopyOrSrc.options;
|
|
}
|
|
}
|
|
}
|
|
|
|
const PACKAGE_TO_BUILD = 'schematics';
|
|
const FILES_TO_COPY_AFTER_BUILD: (FileCopy | string)[] = [
|
|
{ src: 'src/commands/proxy-add/schema.json', dest: 'commands/proxy-add/schema.json' },
|
|
{ src: 'src/commands/proxy-index/schema.json', dest: 'commands/proxy-index/schema.json' },
|
|
{ src: 'src/commands/proxy-refresh/schema.json', dest: 'commands/proxy-refresh/schema.json' },
|
|
{ src: 'src/commands/proxy-remove/schema.json', dest: 'commands/proxy-remove/schema.json' },
|
|
{ src: 'src/commands/api/files-enum', dest: 'commands/api/files-enum' },
|
|
{ src: 'src/commands/api/files-model', dest: 'commands/api/files-model' },
|
|
{ src: 'src/commands/api/files-service', dest: 'commands/api/files-service' },
|
|
{ src: 'src/commands/api/schema.json', dest: 'commands/api/schema.json' },
|
|
{ src: 'src/collection.json', dest: 'collection.json' },
|
|
'package.json',
|
|
'README.md',
|
|
];
|
|
|
|
async function* copyPackageFile(packageName: string, filecopy: FileCopy | string) {
|
|
filecopy = new FileCopy(filecopy);
|
|
const { src, dest, options = { overwrite: true } } = filecopy;
|
|
|
|
await fse.copy(`../packages/${packageName}/${src}`, `../dist/${packageName}/${dest}`, options);
|
|
|
|
yield filecopy;
|
|
}
|
|
|
|
async function* copyPackageFiles(packageName: string) {
|
|
for (const filecopy of FILES_TO_COPY_AFTER_BUILD) {
|
|
yield* copyPackageFile(packageName, filecopy);
|
|
}
|
|
}
|
|
|
|
(async () => {
|
|
try {
|
|
await fse.remove(`../dist/${PACKAGE_TO_BUILD}`);
|
|
|
|
await execa(
|
|
'tsc',
|
|
['-p', `packages/${PACKAGE_TO_BUILD}/tsconfig.json`, '--outDir', `dist/${PACKAGE_TO_BUILD}`],
|
|
{
|
|
stdout: 'inherit',
|
|
cwd: '../',
|
|
},
|
|
);
|
|
|
|
for await (const filecopy of copyPackageFiles(PACKAGE_TO_BUILD)) {
|
|
// do nothing
|
|
}
|
|
} catch (error) {
|
|
process.exit(1);
|
|
}
|
|
})();
|