| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import path from 'path';
- import { devConfig } from '../../dev-config';
- import { SimpleGraphQLClient } from '../../mock-data/simple-graphql-client';
- import { bootstrap } from '../bootstrap';
- import { setConfig } from '../config/config-helpers';
- import { VendureConfig } from '../config/vendure-config';
- // tslint:disable:no-console
- /**
- * A CLI script which imports products from a CSV file.
- */
- if (require.main === module) {
- // Running from command line
- const csvFile = process.argv[2];
- const csvPath = path.join(__dirname, csvFile);
- getClient()
- .then(client => importProducts(client, csvPath))
- .then(
- () => process.exit(0),
- err => {
- console.log(err);
- process.exit(1);
- },
- );
- }
- async function getClient() {
- const config: VendureConfig = {
- ...devConfig,
- port: 3020,
- authOptions: {
- tokenMethod: 'bearer',
- },
- plugins: [],
- };
- (config.dbConnectionOptions as any).logging = false;
- setConfig(config);
- const app = await bootstrap(config);
- const client = new SimpleGraphQLClient(`http://localhost:${config.port}/${config.apiPath}`);
- client.setChannelToken(devConfig.defaultChannelToken || 'no-default-channel-token');
- await client.asSuperAdmin();
- return client;
- }
- async function importProducts(client: SimpleGraphQLClient, csvFile: string) {
- console.log(`loading data from "${csvFile}"`);
- const result = await client.importProducts(csvFile);
- console.log(result);
- }
|