Edits history of script submission #22555 for ' Get all active stripe products from your account (stripe)'

  • bunnative
    One script reply has been approved by the moderators
    Ap­pro­ved
    //native
    
    type Stripe = {
      token: string;
    };
    export async function main(stripeAuth: Stripe) {
      let has_more = true;
      let starting_after = "";
      const products = [];
    
      // if you have a lot of products (> 200), you may want to consider to throttle.
      while (has_more) {
        const res = await getStripeProductsIds(stripeAuth.token, starting_after);
        has_more = res.has_more;
        starting_after = res.data[res.data.length - 1].id;
        products.push(...res.data);
      }
    
      return products;
    }
    
    async function getStripeProductsIds(stripeKey: string, starting_after = "") {
      let url = "https://api.stripe.com/v1/products?limit=10";
      if (starting_after) {
        url += `&starting_after=${starting_after}`;
      }
      const products = await fetch(url, {
        headers: {
          Authorization: `Bearer ${stripeKey}`,
        },
      }).then((res) => res.json());
    
      return products;
    }
    

    Submitted by hugo989 6 days ago