@dressed/framework 0.2.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")
@@ -33,15 +33,15 @@ program
33
33
  ${instance || register
34
34
  ? `import { ${[instance && "createServer", register && "registerCommands"].filter(Boolean)} } from "dressed/server";`
35
35
  : ""}
36
- import { serverConfig } from "dressed/utils";
36
+ import { config as dressedConfig } from "dressed/utils";
37
37
  import config from "${configPath ? normalizeImportPath(configPath) : "./dressed.config.mjs"}";
38
- Object.assign(serverConfig, config);
39
- ${[categories.map((c) => c.map(importFileString)), categoryExports(categories)].flat(2).join("")}
38
+ Object.assign(dressedConfig, config);
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();
43
43
  const jsContent = 'export * from "./index.mjs";';
44
- const typeContent = 'import type { ServerConfig } from "@dressed/framework";import type { CommandData, ComponentData, EventData } from "dressed/server";export declare const commands: CommandData[];export declare const components: ComponentData[];export declare const events: EventData[];export declare const config: ServerConfig;';
44
+ const typeContent = 'import type { DressedConfig } from "@dressed/framework";import type { CommandData, ComponentData, EventData } from "dressed/server";export declare const commands: CommandData[];export declare const components: ComponentData[];export declare const events: EventData[];export declare const config: DressedConfig;';
45
45
  writeFileSync(".dressed/tmp/index.ts", outputContent);
46
46
  await bundleFiles(".dressed/tmp/index.ts", ".dressed");
47
47
  writeFileSync(".dressed/index.js", jsContent);
@@ -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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"}
@@ -1,4 +1,4 @@
1
- import type { ServerConfig } from "../types/config.ts";
1
+ import type { DressedConfig } from "../types/config.ts";
2
2
  import bundleFiles from "./bundle.ts";
3
3
  import { parseCommands } from "./parsers/commands.ts";
4
4
  import { parseComponents } from "./parsers/components.ts";
@@ -6,12 +6,12 @@ import { parseEvents } from "./parsers/events.ts";
6
6
  /**
7
7
  * Builds the bot imports and other variables.
8
8
  */
9
- export default function build(config?: ServerConfig, { bundle }?: {
9
+ export default function build(config?: Omit<DressedConfig, "middleware">, { bundle }?: {
10
10
  bundle?: typeof bundleFiles;
11
11
  }): Promise<{
12
12
  commands: ReturnType<typeof parseCommands>;
13
13
  components: ReturnType<typeof parseComponents>;
14
14
  events: ReturnType<typeof parseEvents>;
15
- config: ServerConfig;
15
+ config: DressedConfig;
16
16
  configPath?: string;
17
17
  }>;
@@ -9,12 +9,12 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
9
9
  import { appendFileSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
10
10
  import { basename, extname, resolve } from "node:path";
11
11
  import { getApp } from "dressed";
12
- import { botEnv, logger, serverConfig } from "dressed/utils";
13
- import { categoryExports, crawlDir, importFileString, override } from "../utils.js";
12
+ import { botEnv, config as dressedConfig, logger } from "dressed/utils";
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
  */
@@ -28,7 +28,7 @@ export default async function build(config = {}, { bundle = bundleFiles } = {})
28
28
  await bundle(configPath, ".dressed/tmp");
29
29
  const { default: importedConfig } = await import(__rewriteRelativeImportExtension(resolve(configOutPath)));
30
30
  config = override(importedConfig, config);
31
- Object.assign(serverConfig, override(serverConfig, config));
31
+ Object.assign(dressedConfig, override(dressedConfig, config));
32
32
  }
33
33
  else {
34
34
  writeFileSync(configOutPath, `export default ${JSON.stringify(config)}`);
@@ -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"}
@@ -1,8 +1,6 @@
1
- import type { ServerConfig as CoreServerConfig } from "dressed/server";
2
- /**
3
- * The configuration for the server.
4
- */
5
- export interface ServerConfig extends CoreServerConfig {
1
+ import type { DressedConfig as CoreDressedConfig } from "dressed/utils";
2
+ /** Configuration for various Dressed services. */
3
+ export interface DressedConfig extends CoreDressedConfig {
6
4
  /** Build configuration */
7
5
  build?: {
8
6
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dressed/framework",
3
- "version": "0.2.0",
4
- "description": "A sleek, serverless-ready Discord bot framework.",
3
+ "version": "0.4.0",
4
+ "description": "A framework for creating Discord bots using Dressed.",
5
5
  "scripts": {
6
6
  "dist": "rm -fr dist && tsc",
7
7
  "check-types": "tsc --noEmit",
@@ -11,9 +11,11 @@
11
11
  "dependencies": {
12
12
  "@dressed/matcher": "^1.4.0",
13
13
  "commander": "^14.0.2",
14
- "dressed": "^2.0.0-canary.1",
15
14
  "esbuild": "^0.27.2"
16
15
  },
16
+ "peerDependencies": {
17
+ "dressed": "^2.0.0-canary.2"
18
+ },
17
19
  "exports": {
18
20
  ".": "./dist/index.js",
19
21
  "./build": "./dist/build/index.js"
@@ -31,7 +33,7 @@
31
33
  "framework",
32
34
  "serverless",
33
35
  "dressed",
34
- "discord-bot"
36
+ "discord"
35
37
  ],
36
38
  "license": "MIT",
37
39
  "repository": {
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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"}