71 lines
1.7 KiB
TypeScript
71 lines
1.7 KiB
TypeScript
|
import * as plugins from './plugins.js';
|
||
|
import * as interfaces from '../interfaces/index.js';
|
||
|
import { logger } from '../tsbundle.logging.js';
|
||
|
|
||
|
export class TsBundleProcess {
|
||
|
|
||
|
constructor() {
|
||
|
// Nothing here
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* creates a bundle for the test enviroment
|
||
|
*/
|
||
|
public async buildTest (
|
||
|
fromArg: string,
|
||
|
toArg: string,
|
||
|
argvArg: any
|
||
|
) {
|
||
|
const parsedPath = plugins.path.parse(toArg);
|
||
|
const parcelInstance = new plugins.smartparcel.Parcel(
|
||
|
fromArg,
|
||
|
parsedPath.dir,
|
||
|
parsedPath.base
|
||
|
);
|
||
|
await parcelInstance.build();
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* creates a bundle for the production environment
|
||
|
*/
|
||
|
public async buildProduction (
|
||
|
fromArg: string,
|
||
|
toArg: string,
|
||
|
argvArg: any
|
||
|
) {
|
||
|
// create a bundle
|
||
|
const parsedPath = plugins.path.parse(toArg);
|
||
|
const parcelInstance = new plugins.smartparcel.Parcel(
|
||
|
fromArg,
|
||
|
parsedPath.dir,
|
||
|
parsedPath.base
|
||
|
);
|
||
|
await parcelInstance.build();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
const run = async () => {
|
||
|
console.log('running spawned compilation process');
|
||
|
const transportOptions: interfaces.IEnvTransportOptions = JSON.parse(process.env.transportOptions);
|
||
|
console.log('bundling with parcel:');
|
||
|
console.log(transportOptions);
|
||
|
process.chdir(transportOptions.cwd);
|
||
|
console.log(`switched to ${process.cwd()}`);
|
||
|
const tsbundleProcessInstance = new TsBundleProcess();
|
||
|
if (transportOptions.mode === 'test') {
|
||
|
tsbundleProcessInstance.buildTest(
|
||
|
transportOptions.from,
|
||
|
transportOptions.to,
|
||
|
transportOptions.argv
|
||
|
);
|
||
|
} else {
|
||
|
tsbundleProcessInstance.buildProduction(
|
||
|
transportOptions.from,
|
||
|
transportOptions.to,
|
||
|
transportOptions.argv
|
||
|
);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
run();
|