Edits history of script submission #311 for ' Fetch data (supabase)'

  • deno
    One script reply has been approved by the moderators
    Ap­pro­ved
    import { refreshAndRetryIfExpired } from "https://deno.land/x/[email protected]/mod.ts";
    
    /**
     * @param token Supabase `access_token` and `refresh_token`. `expires_at` (optional) is a UNIX
     * timestamp in seconds.
     *
     * @param count Count algorithm to use to count rows in the table or view.
     * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the hood.
     * `"planned"`: Approximated but fast count algorithm. Uses the Postgres statistics under the hood.
     * `"estimated"`: Uses exact count for low numbers and planned count for high numbers.
     *
     * @param head When set to `true`, `data` will not be returned.
     * Useful if you only need the count.
     *
     * @param filter Learn more at https://supabase.com/docs/reference/javascript/filter
     *
     * @param order Learn more at https://supabase.com/docs/reference/javascript/order
     *
     * @param limit Learn more at https://supabase.com/docs/reference/javascript/limit
     */
    type Supabase = {
      url: string;
      key: string;
    };
    export async function main(
      auth: Supabase,
      table: string,
      columns?: string,
      token?: {
        access: string;
        refresh: string;
        expires_at?: number;
      },
      count?: "exact" | "planned" | "estimated",
      head?: boolean,
      filter?: {
        column: string;
        operator: string;
        value: any;
      },
      order?: {
        column: string;
        foreignTable: string;
        ascending?: boolean;
        nullsFirst?: boolean;
      },
      limit?: {
        count: number;
        foreignTable?: string;
      },
    ) {
      return await refreshAndRetryIfExpired(auth, token, async (client) => {
        const options = head || count ? { head, count } : undefined;
        let query = client.from(table).select(columns || undefined, options);
        if (filter?.column) {
          query = query.filter(filter.column, filter.operator, filter.value);
        }
        if (order?.column) {
          const { column, ...options } = order;
          query = query.order(column, options);
        }
        if (limit?.count) {
          const { count, foreignTable } = limit;
          query = query.limit(count, foreignTable ? { foreignTable } : undefined);
        }
    
        return query;
      });
    }
    

    Submitted by hugo697 371 days ago

  • deno
    import { refreshAndRetryIfExpired } from "https://deno.land/x/[email protected]/mod.ts";
    
    /**
     * @param token Supabase `access_token` and `refresh_token`. `expires_at` (optional) is a UNIX
     * timestamp in seconds.
     *
     * @param count Count algorithm to use to count rows in the table or view.
     * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the hood.
     * `"planned"`: Approximated but fast count algorithm. Uses the Postgres statistics under the hood.
     * `"estimated"`: Uses exact count for low numbers and planned count for high numbers.
     *
     * @param head When set to `true`, `data` will not be returned.
     * Useful if you only need the count.
     *
     * @param filter Learn more at https://supabase.com/docs/reference/javascript/filter
     *
     * @param order Learn more at https://supabase.com/docs/reference/javascript/order
     *
     * @param limit Learn more at https://supabase.com/docs/reference/javascript/limit
     */
    type Supabase = {
      url: string;
      key: string;
    };
    export async function main(
      auth: Supabase,
      table: string,
      columns?: string,
      token?: {
        access: string;
        refresh: string;
        expires_at?: number;
      },
      count?: "exact" | "planned" | "estimated",
      head?: boolean,
      filter?: {
        column: string;
        operator: string;
        value: any;
      },
      order?: {
        column: string;
        foreignTable: string;
        ascending?: boolean;
        nullsFirst?: boolean;
      },
      limit?: {
        count: number;
        foreignTable?: string;
      },
    ) {
      return await refreshAndRetryIfExpired(auth, token, async (client) => {
        const options = head || count ? { head, count } : undefined;
        let query = client.from(table).select(columns || undefined, options);
        if (filter?.column) {
          query = query.filter(filter.column, filter.operator, filter.value);
        }
        if (order?.column) {
          const { column, ...options } = order;
          query = query.order(column, options);
        }
        if (limit?.count) {
          const { count, foreignTable } = limit;
          query = query.limit(count, foreignTable ? { foreignTable } : undefined);
        }
    
        return query;
      });
    }
    

    Submitted by admin 1003 days ago

  • deno
    import { refreshAndRetryIfExpired } from "https://deno.land/x/[email protected]/mod.ts";
    
    /**
     * @param token Supabase `access_token` and `refresh_token`. `expires_at` (optional) is a UNIX
     * timestamp in seconds.
     * 
     * @param count Count algorithm to use to count rows in the table or view.
     * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the hood.
     * `"planned"`: Approximated but fast count algorithm. Uses the Postgres statistics under the hood.
     * `"estimated"`: Uses exact count for low numbers and planned count for high numbers.
     *
     * @param head When set to `true`, `data` will not be returned.
     * Useful if you only need the count.
     * 
     * @param filter Learn more at https://supabase.com/docs/reference/javascript/filter
     * 
     * @param order Learn more at https://supabase.com/docs/reference/javascript/order
     * 
     * @param limit Learn more at https://supabase.com/docs/reference/javascript/limit
     */
    type Supabase = {
      url: string;
      key: string;
    };
    export async function main(
      auth: Supabase,
      table: string,
      columns?: string,
      token?: {
        access: string;
        refresh: string;
        expires_at?: number;
      },
      count?: "exact" | "planned" | "estimated",
      head?: boolean,
      filter?: {
        column: string;
        operator: string;
        value: any;
      },
      order?: {
        column: string;
        foreignTable: string;
        ascending?: boolean;
        nullsFirst?: boolean;
      },
      limit?: {
        count: number;
        foreignTable?: string;
      },
    ) {
      return await refreshAndRetryIfExpired(auth, token, async (client) => {
        const options = (head || count) ? { head, count } : undefined;
        let query = client.from(table).select(columns || undefined, options);
        if (filter?.column) {
          query = query.filter(filter.column, filter.operator, filter.value);
        }
        if (order?.column) {
          const { column, ...options } = order;
          query = query.order(column, options);
        }
        if (limit?.count) {
          const { count, foreignTable } = limit;
          query = query.limit(count, foreignTable ? { foreignTable } : undefined);
        }
    
        return query;
      })
    }
    

    Submitted by admin 1006 days ago

  • deno
    import { Resource } from "https://deno.land/x/[email protected]/mod.ts";
    import { refreshAndRetryIfExpired } from "https://deno.land/x/[email protected]/mod.ts";
    
    /**
     * @param token Supabase `access_token` and `refresh_token`. `expires_at` (optional) is a UNIX
     * timestamp in seconds.
     * 
     * @param count Count algorithm to use to count rows in the table or view.
     * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the hood.
     * `"planned"`: Approximated but fast count algorithm. Uses the Postgres statistics under the hood.
     * `"estimated"`: Uses exact count for low numbers and planned count for high numbers.
     *
     * @param head When set to `true`, `data` will not be returned.
     * Useful if you only need the count.
     * 
     * @param filter Learn more at https://supabase.com/docs/reference/javascript/filter
     * 
     * @param order Learn more at https://supabase.com/docs/reference/javascript/order
     * 
     * @param limit Learn more at https://supabase.com/docs/reference/javascript/limit
     */
    export async function main(
      auth: Resource<"supabase">,
      table: string,
      columns?: string,
      token?: {
        access: string;
        refresh: string;
        expires_at?: number;
      },
      count?: "exact" | "planned" | "estimated",
      head?: boolean,
      filter?: {
        column: string;
        operator: string;
        value: any;
      },
      order?: {
        column: string;
        foreignTable: string;
        ascending?: boolean;
        nullsFirst?: boolean;
      },
      limit?: {
        count: number;
        foreignTable?: string;
      },
    ) {
      return await refreshAndRetryIfExpired(auth, token, async (client) => {
        const options = (head || count) ? { head, count } : undefined;
        let query = client.from(table).select(columns || undefined, options);
        if (filter?.column) {
          query = query.filter(filter.column, filter.operator, filter.value);
        }
        if (order?.column) {
          const { column, ...options } = order;
          query = query.order(column, options);
        }
        if (limit?.count) {
          const { count, foreignTable } = limit;
          query = query.limit(count, foreignTable ? { foreignTable } : undefined);
        }
    
        return query;
      })
    }
    

    Submitted by adam186 1133 days ago

  • deno
    import { Resource } from "https://deno.land/x/[email protected]/mod.ts";
    import { refreshAndRetryIfExpired } from "https://deno.land/x/[email protected]/mod.ts";
    
    /**
     * @param token Supabase `access_token` and `refresh_token`. `expires_at` (optional) is a UNIX
     * timestamp in seconds.
     * 
     * @param count Count algorithm to use to count rows in the table or view.
     * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the hood.
     * `"planned"`: Approximated but fast count algorithm. Uses the Postgres statistics under the hood.
     * `"estimated"`: Uses exact count for low numbers and planned count for high numbers.
     *
     * @param head When set to `true`, `data` will not be returned.
     * Useful if you only need the count.
     * 
     * @param filter Learn more at https://supabase.com/docs/reference/javascript/filter
     * 
     * @param order Learn more at https://supabase.com/docs/reference/javascript/order
     * 
     * @param limit Learn more at https://supabase.com/docs/reference/javascript/limit
     */
    export async function main(
      auth: Resource<"supabase">,
      table: string,
      columns?: string,
      token?: {
        access: string;
        refresh: string;
        expires_at?: number;
      },
      count?: "exact" | "planned" | "estimated",
      head?: boolean,
      filter?: {
        column: string;
        operator: string;
        value: any;
      },
      order?: {
        column: string;
        foreignTable: string;
        ascending?: boolean;
        nullsFirst?: boolean;
      },
      limit?: {
        count: number;
        foreignTable?: string;
      },
    ) {
      return await refreshAndRetryIfExpired(auth, token, async (client) => {
        const options = (head || count) ? { head, count } : undefined;
        let query = client.from(table).select(columns || undefined, options);
        if (filter?.column) {
          query = query.filter(filter.column, filter.operator, filter.value);
        }
        if (order?.column) {
          const { column, ...options } = order;
          query = query.order(column, options);
        }
        if (limit?.count) {
          const { count, foreignTable } = limit;
          query = query.limit(count, foreignTable ? { foreignTable } : undefined);
        }
    
        return query;
      })
    }
    

    Submitted by adam186 1133 days ago

  • deno
    import { Resource } from "https://deno.land/x/[email protected]/mod.ts";
    import { refreshAndRetryIfExpired } from "https://deno.land/x/[email protected]/mod.ts";
    
    /**
     * @param access_token It is only needed if you have an affecting RLS policy enabled
     * on the table that you want to access.
     * Learn more about RLS here: https://supabase.com/docs/guides/auth/row-level-security
     * 
     * @param count Count algorithm to use to count rows in the table or view.
     * `"exact"`: Exact but slow count algorithm. Performs a `COUNT(*)` under the hood.
     * `"planned"`: Approximated but fast count algorithm. Uses the Postgres statistics under the hood.
     * `"estimated"`: Uses exact count for low numbers and planned count for high numbers.
     *
     * @param head When set to `true`, `data` will not be returned.
     * Useful if you only need the count.
     * 
     * @param filter Learn more at https://supabase.com/docs/reference/javascript/filter
     * 
     * @param order Learn more at https://supabase.com/docs/reference/javascript/order
     * 
     * @param limit Learn more at https://supabase.com/docs/reference/javascript/limit
     */
    export async function main(
      auth: Resource<"supabase">,
      table: string,
      columns?: string,
      token?: {
        access: string;
        refresh: string;
        expires_at?: number;
      },
      count?: "exact" | "planned" | "estimated",
      head?: boolean,
      filter?: {
        column: string;
        operator: string;
        value: any;
      },
      order?: {
        column: string;
        foreignTable: string;
        ascending?: boolean;
        nullsFirst?: boolean;
      },
      limit?: {
        count: number;
        foreignTable?: string;
      },
    ) {
      return await refreshAndRetryIfExpired(auth, token, async (client) => {
        const options = (head || count) ? { head, count } : undefined;
        let query = client.from(table).select(columns || undefined, options);
        if (filter?.column) {
          query = query.filter(filter.column, filter.operator, filter.value);
        }
        if (order?.column) {
          const { column, ...options } = order;
          query = query.order(column, options);
        }
        if (limit?.count) {
          const { count, foreignTable } = limit;
          query = query.limit(count, foreignTable ? { foreignTable } : undefined);
        }
    
        return query;
      })
    }
    

    Submitted by adam186 1133 days ago