@platform/react.ssr
Version:
A lightweight SSR (server-side-rendering) system for react apps bundled with ParcelJS and hosted on S3.
117 lines (108 loc) • 2.44 kB
text/typescript
import * as bundle from './cmd.bundle';
import * as pull from './cmd.pull';
import * as push from './cmd.push';
import * as release from './cmd.release';
import * as status from './cmd.status';
import { cli as cliLib } from '@platform/cli';
const cli = cliLib.create('ssr');
cli
/**
* Status.
*/
.command(
['status', 's'],
'Current status of the cloud manifest.',
(yargs) => {
return yargs;
},
async (argv) => status.run({ cli }),
)
/**
* Bundle (and push).
*/
.command(
['bundle', 'b'],
'Prepare, bundle and push javascript.',
(yargs) => {
return yargs
.option('v', {
describe: 'The bundle version to push.',
type: 'string',
})
.option('push', {
alias: 'p',
describe: 'Push the bundle to S3.',
type: 'boolean',
})
.option('manifest', {
alias: 'm',
describe: 'Create the bundle manifest only.',
type: 'boolean',
});
},
async (argv) => {
const version = argv.v as string;
const push = argv.push as boolean;
const manifest = argv.manifest as boolean;
return bundle.run({ cli, version, push, manifest });
},
)
/**
* Push (only).
*/
.command(
['push', 'p'],
'Push bundle or manifest to S3.',
(yargs) => {
return yargs
.option('manifest', {
alias: 'm',
describe: 'Push the local manifest to S3.',
type: 'boolean',
})
.option('bundle', {
alias: 'b',
describe: 'Push a bundle to S3.',
type: 'boolean',
});
},
async (argv) => {
const { bundle, manifest } = argv;
if (bundle) {
await push.run({ cli, type: 'BUNDLE' });
}
if (manifest) {
await push.run({ cli, type: 'MANIFEST' });
}
if (!bundle && !manifest) {
// No options specified, run with prompts.
await push.run({ cli });
}
},
)
/**
* Release version.
*/
.command(
['release', 'r'],
'Change release version of a site.',
(yargs) => {
return yargs;
},
async (argv) => release.run({ cli }),
)
/**
* Pull.
*/
.command(
['pull'],
'Pull the latet version of the manifest locally.',
(yargs) => {
return yargs;
},
async (argv) => pull.run({ cli }),
);
/**
* Run.
*/
cli.run();