| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { bootstrapWorker, Logger, ProductService, RequestContextService } from '@vendure/core';
- import { devConfig } from './dev-config';
- if (require.main === module) {
- getProductCount()
- .then(() => process.exit(0))
- .catch(err => {
- Logger.error(err);
- process.exit(1);
- });
- }
- async function getProductCount() {
- // This will bootstrap an instance of the Vendure Worker, providing
- // us access to all of the services defined in the Vendure core.
- const { app } = await bootstrapWorker(devConfig);
- // Using `app.get()` we can grab an instance of _any_ provider defined in the
- // Vendure core as well as by our plugins.
- const productService = app.get(ProductService);
- // For most service methods, we'll need to pass a RequestContext object.
- // We can use the RequestContextService to create one.
- const ctx = await app.get(RequestContextService).create({
- apiType: 'admin',
- });
- // We use the `findAll()` method to get the total count. Since we aren't
- // interested in the actual product objects, we can set the `take` option to 0.
- const { totalItems } = await productService.findAll(ctx, { take: 0 });
- Logger.info(
- [
- '\n-----------------------------------------',
- `There are ${totalItems} products in the database`,
- '-----------------------------------------',
- ].join('\n'),
- );
- }
|