You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@crosspost/sdk

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@crosspost/sdk - npm Package Compare versions

Comparing version

to
0.2.9

33

dist/index.js

@@ -331,20 +331,21 @@ // src/core/request.ts

if (!query) return {};
const queryObj = query;
const result = {};
Object.keys(queryObj).forEach((key) => {
if (key !== "filter") {
result[key] = queryObj[key];
if (query.limit !== void 0) {
result.limit = query.limit;
}
if (query.offset !== void 0) {
result.offset = query.offset;
}
if (query.filter) {
const filterParams = query.filter;
for (const filterKey in filterParams) {
if (Object.prototype.hasOwnProperty.call(filterParams, filterKey) && filterParams[filterKey] !== void 0) {
const value = filterParams[filterKey];
if (Array.isArray(value)) {
result[`filter[${filterKey}]`] = value.join(",");
} else {
result[`filter[${filterKey}]`] = String(value);
}
}
}
});
if (queryObj.filter) {
const filter = queryObj.filter;
if (filter.platforms && Array.isArray(filter.platforms)) {
result.platforms = filter.platforms.join(",");
}
if (filter.types && Array.isArray(filter.types)) {
result.types = filter.types.join(",");
}
if (filter.timeframe) {
result.timeframe = filter.timeframe;
}
}

@@ -351,0 +352,0 @@ return result;

{
"name": "@crosspost/sdk",
"version": "0.2.8",
"version": "0.2.9",
"description": "SDK for interacting with the Crosspost API",

@@ -5,0 +5,0 @@ "type": "module",

@@ -13,36 +13,40 @@ import type {

/**
* Creates a modified query object with filter properties flattened
* Creates a modified query object with filter properties
* @param query The original query object
* @returns A new query object with filter properties flattened
* @returns A new query object with filter properties formatted as filter[key]=value.
*/
function createFilterQuery<T>(query?: T): Record<string, unknown> {
function createFilterQuery<
T extends { filter?: Record<string, any>; limit?: number; offset?: number },
>(
query?: T,
): Record<string, string | number | boolean> {
if (!query) return {};
const queryObj = query as Record<string, any>;
const result: Record<string, unknown> = {};
const result: Record<string, string | number | boolean> = {};
// Copy non-filter properties
Object.keys(queryObj).forEach((key) => {
if (key !== 'filter') {
result[key] = queryObj[key];
}
});
if (query.limit !== undefined) {
result.limit = query.limit;
}
if (query.offset !== undefined) {
result.offset = query.offset;
}
// Extract and flatten filter properties if they exist
if (queryObj.filter) {
const filter = queryObj.filter;
if (filter.platforms && Array.isArray(filter.platforms)) {
result.platforms = filter.platforms.join(',');
// e.g., query.filter = { timeframe: 'month', platforms: ['twitter'] }
// becomes result['filter[timeframe]'] = 'month', result['filter[platforms]'] = 'twitter'
if (query.filter) {
const filterParams = query.filter;
for (const filterKey in filterParams) {
if (
Object.prototype.hasOwnProperty.call(filterParams, filterKey) &&
filterParams[filterKey] !== undefined
) {
const value = filterParams[filterKey];
if (Array.isArray(value)) {
result[`filter[${filterKey}]`] = value.join(',');
} else {
result[`filter[${filterKey}]`] = String(value);
}
}
}
if (filter.types && Array.isArray(filter.types)) {
result.types = filter.types.join(',');
}
if (filter.timeframe) {
result.timeframe = filter.timeframe;
}
}
return result;

@@ -49,0 +53,0 @@ }

Sorry, the diff of this file is not supported yet