viruschidai / validate-vat-ts

A library for validating VAT number
32 stars 13 forks source link

validateVat import is meant to be used as a function but is an Object #46

Open front-depiction opened 8 months ago

front-depiction commented 8 months ago

In the docs validateVat is used as a function

// taken from "/readme.md"
import validateVat, {ViesValidationResponse} from 'validate-vat-ts';

const consumer = async () => {
  try {
    const validationInfo: ViesValidationResponse = await validateVat(CountryCodes.Germany, "12323");
  } catch (e) {
    console.log(e);
  }
}

Running the block of code leads to

TypeError: __vite_ssr_import_5__.default is not a function

Some logging shows that validateVat import is an Object and not a function.

import validateVat from 'validate-vat-ts';
console.log(validateVat);

output:


{
  ViesServerError: [Function: ViesServerError],
  ViesClientError: [Function: ViesClientError],
  VAT_SERVICE_URL: 'https://ec.europa.eu/taxation_customs/vies/services/checkVatService',
  VAT_TEST_SERVICE_URL: 'https://ec.europa.eu/taxation_customs/vies/services/checkVatTestService',
  CountryCodes: {
    Austria: 'AT',
    Belgium: 'BE',
    Bulgaria: 'BG',
    Croatia: 'HR',
    Cyprus: 'CY',
    CzechRepublic: 'CZ',
    Denmark: 'DK',
    Estonia: 'EE',
    Finland: 'FI',
    France: 'FR',
    Germany: 'DE',
    Greece: 'EL',
    Hungary: 'HU',
    Ireland: 'IE',
    Italy: 'IT',
    Latvia: 'LV',
    Lithuania: 'LT',
    Luxembourg: 'LU',
    Malta: 'MT',
    Netherlands: 'NL',
    Poland: 'PL',
    Portugal: 'PT',
    Romania: 'RO',
    Slovakia: 'SK',
    Slovenia: 'SI',
    Spain: 'ES',
    Sweden: 'SE',
    NorthernIreland: 'XI'
  },
  default: [Function: validateVat]
}

to actually use the function as intended, extract the default function from said object


import validateVat, { type ViesValidationResponse } from 'validate-vat-ts';
const validateVatFn: (
    countryCode: CountryCodes,
    vatNumber: string,
    serviceUrl?: string
) => Promise<ViesValidationResponse> = (validateVat as any).default;
console.log(validateVatFn);

output


[Function: validateVat]

VITE v5.0.11 NODE v21.5.0