@dressed/framework 0.3.0 → 0.4.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.
@@ -5,7 +5,7 @@ import { Command, InvalidArgumentError } from "commander";
5
5
  import { logger } from "dressed/utils";
6
6
  import build from "../build/build.js";
7
7
  import bundleFiles from "../build/bundle.js";
8
- import { categoryExports, importFileString, normalizeImportPath } from "../utils.js";
8
+ import { generateCategoryExports, generateFileImport, normalizeImportPath } from "../build/utils.js";
9
9
  const program = new Command().name("dressed").description("A sleek, serverless-ready Discord bot framework.");
10
10
  program
11
11
  .command("build")
@@ -36,7 +36,7 @@ ${instance || register
36
36
  import { config as dressedConfig } from "dressed/utils";
37
37
  import config from "${configPath ? normalizeImportPath(configPath) : "./dressed.config.mjs"}";
38
38
  Object.assign(dressedConfig, config);
39
- ${[categories.map((c) => c.map(importFileString)), categoryExports(categories)].flat(2).join("")}
39
+ ${[categories.map((c) => c.map(generateFileImport)), generateCategoryExports(categories)].flat(2).join("")}
40
40
  export { config };
41
41
  ${register ? "registerCommands(commands);" : ""}
42
42
  ${instance ? "createServer(commands, components, events);" : ""}`.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"dressed.js","sourceRoot":"","sources":["../../src/bin/dressed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dressed.js","sourceRoot":"","sources":["../../src/bin/dressed.ts"],"names":[],"mappings":"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"}
@@ -10,11 +10,11 @@ import { appendFileSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
10
10
  import { basename, extname, resolve } from "node:path";
11
11
  import { getApp } from "dressed";
12
12
  import { botEnv, config as dressedConfig, logger } from "dressed/utils";
13
- import { categoryExports, crawlDir, importFileString, override } from "../utils.js";
14
13
  import bundleFiles from "./bundle.js";
15
14
  import { parseCommands } from "./parsers/commands.js";
16
15
  import { parseComponents } from "./parsers/components.js";
17
16
  import { parseEvents } from "./parsers/events.js";
17
+ import { crawlDir, generateCategoryExports, generateFileImport } from "./utils.js";
18
18
  /**
19
19
  * Builds the bot imports and other variables.
20
20
  */
@@ -37,7 +37,7 @@ export default async function build(config = {}, { bundle = bundleFiles } = {})
37
37
  const categories = ["commands", "components", "events"];
38
38
  const files = await Promise.all(categories.map((d) => { var _a; return crawlDir(root, d, (_a = config.build) === null || _a === void 0 ? void 0 : _a.extensions); }));
39
39
  const entriesPath = ".dressed/tmp/entries.ts";
40
- writeFileSync(entriesPath, [files.map((c) => c.map(importFileString)), categoryExports(files)].flat(2).join(""));
40
+ writeFileSync(entriesPath, [files.map((c) => c.map(generateFileImport)), generateCategoryExports(files)].flat(2).join(""));
41
41
  logger.defer("Bundling handlers");
42
42
  await bundle(entriesPath, ".dressed/tmp");
43
43
  const { commands, components, events } = await import(__rewriteRelativeImportExtension(resolve(entriesPath.replace(".ts", ".mjs"))));
@@ -85,4 +85,20 @@ async function fetchMissingVars() {
85
85
  logger.error("Failed to fetch missing variables");
86
86
  }
87
87
  }
88
+ /** Deep merges two objects, producing a new object where values from {@link b} override those from {@link a}. */
89
+ function override(a, b) {
90
+ const result = { ...a };
91
+ for (const key in b) {
92
+ const k = key;
93
+ const bv = b[k];
94
+ const av = a[k];
95
+ if (bv !== undefined && typeof bv === "object" && bv !== null && !Array.isArray(bv)) {
96
+ result[k] = override(av !== null && av !== void 0 ? av : {}, bv);
97
+ }
98
+ else if (bv !== undefined) {
99
+ result[k] = bv;
100
+ }
101
+ }
102
+ return result;
103
+ }
88
104
  //# sourceMappingURL=build.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/build/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/build/build.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * This separation is intended to shield esbuild from bundling, as Next.js especially seems to freak out when it's referenced
3
- *
4
3
  * @module
5
4
  */
6
5
  export { default } from "./build.ts";
@@ -8,3 +7,4 @@ export * from "./parsers/commands.ts";
8
7
  export * from "./parsers/components.ts";
9
8
  export * from "./parsers/events.ts";
10
9
  export * from "./parsers/index.ts";
10
+ export * from "./utils.ts";
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * This separation is intended to shield esbuild from bundling, as Next.js especially seems to freak out when it's referenced
3
- *
4
3
  * @module
5
4
  */
6
5
  export { default } from "./build.js";
@@ -8,4 +7,5 @@ export * from "./parsers/commands.js";
8
7
  export * from "./parsers/components.js";
9
8
  export * from "./parsers/events.js";
10
9
  export * from "./parsers/index.js";
10
+ export * from "./utils.js";
11
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/build/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/build/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { WalkEntry } from "../types/walk.ts";
2
+ /** @returns Import string-able {@link path} relative to the `.dressed` folder */
3
+ export declare function normalizeImportPath(path: string): string;
4
+ export declare function generateFileImport(file: WalkEntry): `import * as h${string} from "${string}";`;
5
+ /** @returns ESM exports for the input {@link categories} */
6
+ export declare function generateCategoryExports(categories: WalkEntry[][]): string[];
7
+ /** Recursively check for files */
8
+ export declare function crawlDir(root: string, dir: string, extensions?: string[]): Promise<WalkEntry[]>;
@@ -5,32 +5,18 @@ import { basename, extname, join, relative, resolve } from "node:path";
5
5
  import { cwd } from "node:process";
6
6
  import { logger } from "dressed/utils";
7
7
  const hash = (v) => createHash("sha1").update(v).digest("hex");
8
- export const normalizeImportPath = (path) => relative(".dressed/tmp", path).replace(/\\/g, "/");
9
- export function importFileString(file) {
10
- return `import * as h${hash(file.path)} from "${normalizeImportPath(file.path)}";`;
8
+ /** @returns Import string-able {@link path} relative to the `.dressed` folder */
9
+ export function normalizeImportPath(path) {
10
+ return relative(".dressed/tmp", path).replace(/\\/g, "/");
11
11
  }
12
- export function categoryExports(categories) {
13
- return categories.map((c, i) => `export const ${["commands", "components", "events"][i]} = [${c.map((f) => {
14
- const exportKey = `"exports":h${hash(f.path)}`;
15
- return JSON.stringify({ ...f, exports: null }).replace('"exports":null', exportKey);
16
- })}];`);
12
+ export function generateFileImport(file) {
13
+ return `import * as h${hash(file.path)} from "${normalizeImportPath(file.path)}";`;
17
14
  }
18
- /** Deep merges two objects, producing a new object where values from `b` override those from `a`. */
19
- export function override(a, b) {
20
- const result = { ...a };
21
- for (const key in b) {
22
- const k = key;
23
- const bv = b[k];
24
- const av = a[k];
25
- if (bv !== undefined && typeof bv === "object" && bv !== null && !Array.isArray(bv)) {
26
- result[k] = override(av !== null && av !== void 0 ? av : {}, bv);
27
- }
28
- else if (bv !== undefined) {
29
- result[k] = bv;
30
- }
31
- }
32
- return result;
15
+ /** @returns ESM exports for the input {@link categories} */
16
+ export function generateCategoryExports(categories) {
17
+ return categories.map((c, i) => `export const ${["commands", "components", "events"][i]} = [${c.map((f) => JSON.stringify({ ...f, exports: null }).replace('"exports":null', `"exports":h${hash(f.path)}`))}];`);
33
18
  }
19
+ /** Recursively check for files */
34
20
  export async function crawlDir(root, dir, extensions = ["js", "ts", "mjs"]) {
35
21
  const dirPath = resolve(root, dir);
36
22
  if (!existsSync(dirPath)) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/build/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEvE,iFAAiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAe;IAChD,OAAO,gBAAgB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAa,CAAC;AAC9F,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,uBAAuB,CAAC,UAAyB;IAC/D,OAAO,UAAU,CAAC,GAAG,CACnB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,gBAAgB,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACxE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAChG,IAAI,CACR,CAAC;AACJ,CAAC;AAED,kCAAkC;AAClC,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,GAAW,EAAE,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC;IACxF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAEnC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;QACnF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,OAAO,OAAO;SACX,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SACvD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACvD,CAAC,CAAC,CAAC;AACP,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dressed/framework",
3
- "version": "0.3.0",
3
+ "version": "0.4.0",
4
4
  "description": "A framework for creating Discord bots using Dressed.",
5
5
  "scripts": {
6
6
  "dist": "rm -fr dist && tsc",
@@ -14,7 +14,7 @@
14
14
  "esbuild": "^0.27.2"
15
15
  },
16
16
  "peerDependencies": {
17
- "dressed": "^2.0.0-canary.1"
17
+ "dressed": "^2.0.0-canary.2"
18
18
  },
19
19
  "exports": {
20
20
  ".": "./dist/index.js",
package/dist/utils.d.ts DELETED
@@ -1,7 +0,0 @@
1
- import type { WalkEntry } from "./types/walk.ts";
2
- export declare const normalizeImportPath: (path: string) => string;
3
- export declare function importFileString(file: WalkEntry): string;
4
- export declare function categoryExports(categories: WalkEntry[][]): string[];
5
- /** Deep merges two objects, producing a new object where values from `b` override those from `a`. */
6
- export declare function override<T>(a: Partial<T>, b: Partial<T>): Partial<T>;
7
- export declare function crawlDir(root: string, dir: string, extensions?: string[]): Promise<WalkEntry[]>;
package/dist/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}