@impulsedev/chameleon 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2486,7 +2486,7 @@ declare const Colors: {
2486
2486
  };
2487
2487
  declare class EmbedBuilder {
2488
2488
  private data;
2489
- constructor(data?: Partial<Embed> | Record<string, unknown>);
2489
+ constructor(data?: Partial<Embed>);
2490
2490
  setTitle(title: string): this;
2491
2491
  setDescription(description: string): this;
2492
2492
  setColor(color: number): this;
package/dist/index.js CHANGED
@@ -1215,7 +1215,7 @@ var ChameleonGateway = class {
1215
1215
  // package.json
1216
1216
  var package_default = {
1217
1217
  name: "@impulsedev/chameleon",
1218
- version: "1.4.0",
1218
+ version: "1.6.0",
1219
1219
  description: "highly optimized, memory-efficient, and fully type-safe Discord API library",
1220
1220
  main: "dist/index.js",
1221
1221
  types: "dist/index.d.ts",
@@ -1306,59 +1306,9 @@ var Colors = {
1306
1306
  Transparent: 3092790
1307
1307
  };
1308
1308
  var EmbedBuilder = class {
1309
- data;
1309
+ data = {};
1310
1310
  constructor(data) {
1311
- this.data = {};
1312
- if (!data) return;
1313
- if ("title" in data) this.data.title = data.title;
1314
- if ("description" in data) this.data.description = data.description;
1315
- if ("color" in data) this.data.color = data.color;
1316
- if ("url" in data) this.data.url = data.url;
1317
- if ("timestamp" in data && data.timestamp) {
1318
- this.data.timestamp = new Date(data.timestamp).getTime();
1319
- }
1320
- if (data.author) {
1321
- const author = data.author;
1322
- this.data.author = {
1323
- name: author.name,
1324
- url: author.url,
1325
- iconUrl: author.iconUrl ?? author.icon_url,
1326
- proxyIconUrl: author.proxyIconUrl ?? author.proxy_icon_url
1327
- };
1328
- }
1329
- if (data.footer) {
1330
- const footer = data.footer;
1331
- this.data.footer = {
1332
- text: footer.text,
1333
- iconUrl: footer.iconUrl ?? footer.icon_url,
1334
- proxyIconUrl: footer.proxyIconUrl ?? footer.proxy_icon_url
1335
- };
1336
- }
1337
- if (data.image) {
1338
- const image = data.image;
1339
- this.data.image = {
1340
- url: image.url,
1341
- proxyUrl: image.proxyUrl ?? image.proxy_url,
1342
- height: image.height,
1343
- width: image.width
1344
- };
1345
- }
1346
- if (data.thumbnail) {
1347
- const thumbnail = data.thumbnail;
1348
- this.data.thumbnail = {
1349
- url: thumbnail.url,
1350
- proxyUrl: thumbnail.proxyUrl ?? thumbnail.proxy_url,
1351
- height: thumbnail.height,
1352
- width: thumbnail.width
1353
- };
1354
- }
1355
- if (Array.isArray(data.fields)) {
1356
- this.data.fields = data.fields.map((f) => ({
1357
- name: f.name,
1358
- value: f.value,
1359
- inline: f.inline ?? false
1360
- }));
1361
- }
1311
+ if (data) Object.assign(this.data, data);
1362
1312
  }
1363
1313
  setTitle(title) {
1364
1314
  this.data.title = title;
@@ -1376,16 +1326,23 @@ var EmbedBuilder = class {
1376
1326
  this.data.url = url;
1377
1327
  return this;
1378
1328
  }
1379
- setTimestamp(ts) {
1380
- this.data.timestamp = ts instanceof Date ? ts.getTime() : ts ?? Date.now();
1329
+ setTimestamp(ts = Date.now()) {
1330
+ this.data.timestamp = ts instanceof Date ? ts.getTime() : ts;
1381
1331
  return this;
1382
1332
  }
1383
1333
  setFooter(text, iconUrl) {
1384
- this.data.footer = { text, ...iconUrl ? { iconUrl } : {} };
1334
+ this.data.footer = {
1335
+ text,
1336
+ ...iconUrl ? { iconUrl } : {}
1337
+ };
1385
1338
  return this;
1386
1339
  }
1387
1340
  setAuthor(name, iconUrl, url) {
1388
- this.data.author = { name, ...iconUrl ? { iconUrl } : {}, ...url ? { url } : {} };
1341
+ this.data.author = {
1342
+ name,
1343
+ ...iconUrl ? { iconUrl } : {},
1344
+ ...url ? { url } : {}
1345
+ };
1389
1346
  return this;
1390
1347
  }
1391
1348
  setImage(url) {
@@ -1407,44 +1364,50 @@ var EmbedBuilder = class {
1407
1364
  return this;
1408
1365
  }
1409
1366
  build() {
1410
- return { ...this.data };
1367
+ return this.data;
1411
1368
  }
1412
1369
  toJSON() {
1413
- const payload = {
1414
- ...this.data,
1415
- timestamp: this.data.timestamp ? new Date(this.data.timestamp).toISOString() : void 0
1416
- };
1417
- if (this.data.author) {
1370
+ const e = this.data;
1371
+ const payload = {};
1372
+ if (e.title) payload.title = e.title;
1373
+ if (e.description) payload.description = e.description;
1374
+ if (e.color) payload.color = e.color;
1375
+ if (e.url) payload.url = e.url;
1376
+ if (e.timestamp) {
1377
+ payload.timestamp = new Date(e.timestamp).toISOString();
1378
+ }
1379
+ if (e.author) {
1418
1380
  payload.author = {
1419
- name: this.data.author.name,
1420
- url: this.data.author.url,
1421
- icon_url: this.data.author.iconUrl,
1422
- proxy_icon_url: this.data.author.proxyIconUrl
1381
+ name: e.author.name,
1382
+ ...e.author.url ? { url: e.author.url } : {},
1383
+ ...e.author.iconUrl ? { icon_url: e.author.iconUrl } : {},
1384
+ ...e.author.proxyIconUrl ? { proxy_icon_url: e.author.proxyIconUrl } : {}
1423
1385
  };
1424
1386
  }
1425
- if (this.data.footer) {
1387
+ if (e.footer) {
1426
1388
  payload.footer = {
1427
- text: this.data.footer.text,
1428
- icon_url: this.data.footer.iconUrl,
1429
- proxy_icon_url: this.data.footer.proxyIconUrl
1389
+ text: e.footer.text,
1390
+ ...e.footer.iconUrl ? { icon_url: e.footer.iconUrl } : {},
1391
+ ...e.footer.proxyIconUrl ? { proxy_icon_url: e.footer.proxyIconUrl } : {}
1430
1392
  };
1431
1393
  }
1432
- if (this.data.image) {
1394
+ if (e.image?.url) {
1433
1395
  payload.image = {
1434
- url: this.data.image.url,
1435
- proxy_url: this.data.image.proxyUrl,
1436
- height: this.data.image.height,
1437
- width: this.data.image.width
1396
+ url: e.image.url
1438
1397
  };
1439
1398
  }
1440
- if (this.data.thumbnail) {
1399
+ if (e.thumbnail?.url) {
1441
1400
  payload.thumbnail = {
1442
- url: this.data.thumbnail.url,
1443
- proxy_url: this.data.thumbnail.proxyUrl,
1444
- height: this.data.thumbnail.height,
1445
- width: this.data.thumbnail.width
1401
+ url: e.thumbnail.url
1446
1402
  };
1447
1403
  }
1404
+ if (e.fields?.length) {
1405
+ payload.fields = e.fields.map((f) => ({
1406
+ name: f.name,
1407
+ value: f.value,
1408
+ inline: f.inline ?? false
1409
+ }));
1410
+ }
1448
1411
  return payload;
1449
1412
  }
1450
1413
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@impulsedev/chameleon",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "highly optimized, memory-efficient, and fully type-safe Discord API library",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",