1.3.2 • Published 4 months ago

goods-exporter v1.3.2

Weekly downloads
-
License
MIT
Repository
github
Last release
4 months ago

goods-exporter

npm version npm GitHub issues License

A versatile JavaScript library for exporting goods data to various formats such as YML, CSV, and Excel. Simplify data export tasks with ease.

Telegram

Features

  • Export goods data to JSON, YML, CSV, and Excel formats.
  • Easily integrate into your JavaScript projects.
  • Compatible with Node.js version 16 and above.
  • Comprehensive TypeScript type definitions included.
  • Supports streams.

Supported formats

  • YML (Yandex Market Language)
  • JSON
  • SimpleJSON (grouped)
  • CSV
  • Excel
  • TgShop
  • Insales
  • Tilda
  • WooCommerce

Installation

To use goods-exporter in your project, simply add it to your dependencies using npm or yarn:

npm install goods-exporter --save
# or
yarn add goods-exporter

Quick start

import { GoodsExporter, Product, Category, Formatters } from "../src";
import { PassThrough } from "stream";

// Create an instance of the GoodsExporter class.
const exporter = new GoodsExporter();

const products: Product[] = []; // Put your products;
const categories: Category[] = [{ id: 1, name: "Обувь" }];

// Call the data export method.
const stream = new PassThrough();
exporter.setExporter(() => stream);
exporter.setFormatter(new Formatters.YMLFormatter());
exporter.setTransformers([
  (products) => {
    return products.map((product) => ({
      ...product,
      price: product.price + 10000,
      images: product.images?.map((image) => image.replace("image", "pic")),
    }));
  },
]);
await exporter.export(products, categories);

Example

import fs from "fs"; // Import the 'fs' module for file writing.

// Create an instance of the GoodsExporter class.
const exporter = new GoodsExporter();

// Define an object 'transformers' that contains data transformation functions.
const transformers: Transformer[] = [
  (products) =>
    products.map((product) => ({
      ...product,
      price: product.price + 10000,
    })),
  (products) =>
    products.map((product) => ({
      ...product,
      images: product.images?.map((image) => image.replace("image", "pic")),
    })),
];

// Set the formatter for exporting data to YML.
exporter.setFormatter(new Formatters.YMLFormatter()); // or your own Formatter;

// Set transformers based on the specified keys.
exporter.setTransformers(transformers);

// Set an exporter that saves the data to the "output.yml" file.
exporter.setExporter(fs.createWriteStream("output.yml"));
await exporter.export(products, categories);

Supported by PoizonAPI

PoizonAPI

1.2.0

8 months ago

1.2.8

7 months ago

1.2.7

7 months ago

1.2.6

7 months ago

1.2.5

8 months ago

1.2.4

8 months ago

1.2.3

8 months ago

1.2.2

8 months ago

1.2.1

8 months ago

1.2.12

5 months ago

1.2.13

5 months ago

1.2.10

7 months ago

1.2.11

7 months ago

1.3.2

4 months ago

1.3.1

4 months ago

1.2.9

7 months ago

0.5.6

10 months ago

1.1.1

10 months ago

1.1.3

10 months ago

1.1.2

10 months ago

0.5.5

11 months ago

0.5.3

1 year ago

0.5.2

1 year ago

0.5.1

1 year ago

0.4.7

1 year ago

0.4.6

1 year ago

0.4.5

1 year ago

0.4.4

1 year ago

0.4.3

1 year ago

0.4.2

1 year ago

0.3.19

1 year ago

0.4.1

1 year ago

0.3.18

1 year ago

0.3.17

2 years ago

0.3.16

2 years ago

0.3.15

2 years ago

0.3.14

2 years ago

0.3.13

2 years ago

0.3.12

2 years ago

0.3.11

2 years ago

0.3.10

2 years ago

0.3.9

2 years ago

0.3.8

2 years ago

0.3.7

2 years ago

0.3.6

2 years ago

0.3.5

2 years ago

0.3.4

2 years ago

0.3.3

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.0

2 years ago

0.2.8

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago