create-taserjs 0.1.11 → 0.2.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/README.md +8 -44
- package/dist/cli-9fkoNOJg.js +1237 -0
- package/dist/cli-9fkoNOJg.js.map +1 -0
- package/dist/cli-DkZddFtU.cjs +1398 -0
- package/dist/cli.cjs +4 -0
- package/dist/cli.d.cts +4 -0
- package/dist/cli.d.cts.map +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +3 -0
- package/dist/index.cjs +25 -0
- package/dist/index.d.cts +119 -0
- package/dist/index.d.cts.map +1 -0
- package/dist/index.d.ts +119 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/package.json +39 -9
- package/src/addons/drizzle/index.ts +37 -40
- package/src/addons/kysely/index.ts +19 -22
- package/src/addons/pino/index.ts +2 -2
- package/src/addons/prisma/index.ts +18 -22
- package/src/addons/registry.ts +37 -73
- package/src/addons/types.ts +12 -13
- package/src/addons/validators.ts +22 -23
- package/src/addons/winston/index.ts +3 -3
- package/src/cli.ts +96 -56
- package/src/commands/create.ts +118 -249
- package/src/core/package-manager.ts +36 -55
- package/src/core/scaffold-engine.ts +100 -75
- package/src/core/targets.ts +20 -56
- package/src/core/types.ts +18 -53
- package/src/index.ts +8 -0
- package/src/templates/base.ts +139 -51
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +0 -23
- package/dist/cjs/addons/arktype/index.cjs +0 -6
- package/dist/cjs/addons/arktype/index.cjs.map +0 -1
- package/dist/cjs/addons/arktype/index.d.cts +0 -1
- package/dist/cjs/addons/drizzle/index.cjs +0 -131
- package/dist/cjs/addons/drizzle/index.cjs.map +0 -1
- package/dist/cjs/addons/drizzle/index.d.cts +0 -2
- package/dist/cjs/addons/kysely/index.cjs +0 -103
- package/dist/cjs/addons/kysely/index.cjs.map +0 -1
- package/dist/cjs/addons/kysely/index.d.cts +0 -2
- package/dist/cjs/addons/pino/index.cjs +0 -30
- package/dist/cjs/addons/pino/index.cjs.map +0 -1
- package/dist/cjs/addons/pino/index.d.cts +0 -2
- package/dist/cjs/addons/prisma/index.cjs +0 -133
- package/dist/cjs/addons/prisma/index.cjs.map +0 -1
- package/dist/cjs/addons/prisma/index.d.cts +0 -2
- package/dist/cjs/addons/registry.cjs +0 -65
- package/dist/cjs/addons/registry.cjs.map +0 -1
- package/dist/cjs/addons/registry.d.cts +0 -5
- package/dist/cjs/addons/types.d.cts +0 -16
- package/dist/cjs/addons/valibot/index.cjs +0 -6
- package/dist/cjs/addons/valibot/index.cjs.map +0 -1
- package/dist/cjs/addons/valibot/index.d.cts +0 -1
- package/dist/cjs/addons/validators.cjs +0 -38
- package/dist/cjs/addons/validators.cjs.map +0 -1
- package/dist/cjs/addons/validators.d.cts +0 -5
- package/dist/cjs/addons/winston/index.cjs +0 -34
- package/dist/cjs/addons/winston/index.cjs.map +0 -1
- package/dist/cjs/addons/winston/index.d.cts +0 -2
- package/dist/cjs/addons/zod/index.cjs +0 -6
- package/dist/cjs/addons/zod/index.cjs.map +0 -1
- package/dist/cjs/addons/zod/index.d.cts +0 -1
- package/dist/cjs/cli.cjs +0 -65
- package/dist/cjs/cli.cjs.map +0 -1
- package/dist/cjs/cli.d.cts +0 -2
- package/dist/cjs/commands/create.cjs +0 -332
- package/dist/cjs/commands/create.cjs.map +0 -1
- package/dist/cjs/commands/create.d.cts +0 -14
- package/dist/cjs/core/json-output.cjs +0 -16
- package/dist/cjs/core/json-output.cjs.map +0 -1
- package/dist/cjs/core/json-output.d.cts +0 -4
- package/dist/cjs/core/package-manager.cjs +0 -56
- package/dist/cjs/core/package-manager.cjs.map +0 -1
- package/dist/cjs/core/package-manager.d.cts +0 -8
- package/dist/cjs/core/parse-options.cjs +0 -95
- package/dist/cjs/core/parse-options.cjs.map +0 -1
- package/dist/cjs/core/parse-options.d.cts +0 -35
- package/dist/cjs/core/project-config.cjs +0 -23
- package/dist/cjs/core/project-config.cjs.map +0 -1
- package/dist/cjs/core/project-config.d.cts +0 -2
- package/dist/cjs/core/resolve-packages.cjs +0 -58
- package/dist/cjs/core/resolve-packages.cjs.map +0 -1
- package/dist/cjs/core/resolve-packages.d.cts +0 -2
- package/dist/cjs/core/scaffold-engine.cjs +0 -72
- package/dist/cjs/core/scaffold-engine.cjs.map +0 -1
- package/dist/cjs/core/scaffold-engine.d.cts +0 -2
- package/dist/cjs/core/targets.cjs +0 -171
- package/dist/cjs/core/targets.cjs.map +0 -1
- package/dist/cjs/core/targets.d.cts +0 -49
- package/dist/cjs/core/types.cjs +0 -52
- package/dist/cjs/core/types.cjs.map +0 -1
- package/dist/cjs/core/types.d.cts +0 -57
- package/dist/cjs/core/validate-project-name.cjs +0 -44
- package/dist/cjs/core/validate-project-name.cjs.map +0 -1
- package/dist/cjs/core/validate-project-name.d.cts +0 -1
- package/dist/cjs/frameworks/index.cjs +0 -116
- package/dist/cjs/frameworks/index.cjs.map +0 -1
- package/dist/cjs/frameworks/index.d.cts +0 -18
- package/dist/cjs/scaffold.d.cts +0 -3
- package/dist/cjs/templates/base.cjs +0 -97
- package/dist/cjs/templates/base.cjs.map +0 -1
- package/dist/cjs/templates/base.d.cts +0 -9
- package/dist/cjs/types.d.cts +0 -1
- package/dist/esm/addons/arktype/index.d.ts +0 -1
- package/dist/esm/addons/arktype/index.js +0 -7
- package/dist/esm/addons/arktype/index.js.map +0 -1
- package/dist/esm/addons/drizzle/index.d.ts +0 -2
- package/dist/esm/addons/drizzle/index.js +0 -131
- package/dist/esm/addons/drizzle/index.js.map +0 -1
- package/dist/esm/addons/kysely/index.d.ts +0 -2
- package/dist/esm/addons/kysely/index.js +0 -103
- package/dist/esm/addons/kysely/index.js.map +0 -1
- package/dist/esm/addons/pino/index.d.ts +0 -2
- package/dist/esm/addons/pino/index.js +0 -30
- package/dist/esm/addons/pino/index.js.map +0 -1
- package/dist/esm/addons/prisma/index.d.ts +0 -2
- package/dist/esm/addons/prisma/index.js +0 -133
- package/dist/esm/addons/prisma/index.js.map +0 -1
- package/dist/esm/addons/registry.d.ts +0 -5
- package/dist/esm/addons/registry.js +0 -63
- package/dist/esm/addons/registry.js.map +0 -1
- package/dist/esm/addons/types.d.ts +0 -16
- package/dist/esm/addons/valibot/index.d.ts +0 -1
- package/dist/esm/addons/valibot/index.js +0 -7
- package/dist/esm/addons/valibot/index.js.map +0 -1
- package/dist/esm/addons/validators.d.ts +0 -5
- package/dist/esm/addons/validators.js +0 -36
- package/dist/esm/addons/validators.js.map +0 -1
- package/dist/esm/addons/winston/index.d.ts +0 -2
- package/dist/esm/addons/winston/index.js +0 -34
- package/dist/esm/addons/winston/index.js.map +0 -1
- package/dist/esm/addons/zod/index.d.ts +0 -1
- package/dist/esm/addons/zod/index.js +0 -7
- package/dist/esm/addons/zod/index.js.map +0 -1
- package/dist/esm/cli.d.ts +0 -2
- package/dist/esm/cli.js +0 -62
- package/dist/esm/cli.js.map +0 -1
- package/dist/esm/commands/create.d.ts +0 -14
- package/dist/esm/commands/create.js +0 -327
- package/dist/esm/commands/create.js.map +0 -1
- package/dist/esm/core/json-output.d.ts +0 -4
- package/dist/esm/core/json-output.js +0 -14
- package/dist/esm/core/json-output.js.map +0 -1
- package/dist/esm/core/package-manager.d.ts +0 -8
- package/dist/esm/core/package-manager.js +0 -53
- package/dist/esm/core/package-manager.js.map +0 -1
- package/dist/esm/core/parse-options.d.ts +0 -35
- package/dist/esm/core/parse-options.js +0 -89
- package/dist/esm/core/parse-options.js.map +0 -1
- package/dist/esm/core/project-config.d.ts +0 -2
- package/dist/esm/core/project-config.js +0 -21
- package/dist/esm/core/project-config.js.map +0 -1
- package/dist/esm/core/resolve-packages.d.ts +0 -2
- package/dist/esm/core/resolve-packages.js +0 -58
- package/dist/esm/core/resolve-packages.js.map +0 -1
- package/dist/esm/core/scaffold-engine.d.ts +0 -2
- package/dist/esm/core/scaffold-engine.js +0 -70
- package/dist/esm/core/scaffold-engine.js.map +0 -1
- package/dist/esm/core/targets.d.ts +0 -49
- package/dist/esm/core/targets.js +0 -166
- package/dist/esm/core/targets.js.map +0 -1
- package/dist/esm/core/types.d.ts +0 -57
- package/dist/esm/core/types.js +0 -45
- package/dist/esm/core/types.js.map +0 -1
- package/dist/esm/core/validate-project-name.d.ts +0 -1
- package/dist/esm/core/validate-project-name.js +0 -42
- package/dist/esm/core/validate-project-name.js.map +0 -1
- package/dist/esm/frameworks/index.d.ts +0 -18
- package/dist/esm/frameworks/index.js +0 -112
- package/dist/esm/frameworks/index.js.map +0 -1
- package/dist/esm/scaffold.d.ts +0 -3
- package/dist/esm/templates/base.d.ts +0 -9
- package/dist/esm/templates/base.js +0 -91
- package/dist/esm/templates/base.js.map +0 -1
- package/dist/esm/types.d.ts +0 -1
- package/src/addons/arktype/index.ts +0 -3
- package/src/addons/valibot/index.ts +0 -3
- package/src/addons/zod/index.ts +0 -3
- package/src/core/json-output.ts +0 -13
- package/src/core/parse-options.ts +0 -167
- package/src/core/project-config.ts +0 -32
- package/src/core/resolve-packages.ts +0 -69
- package/src/core/validate-project-name.ts +0 -55
- package/src/frameworks/index.ts +0 -120
- package/src/scaffold.ts +0 -3
- package/src/types.ts +0 -12
package/dist/cli.cjs
ADDED
package/dist/cli.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.cts","names":[],"sources":["../src/cli.ts"],"mappings":";wBAasB,IAAI,kBAAyC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","names":[],"sources":["../src/cli.ts"],"mappings":";wBAasB,IAAI,kBAAyC"}
|
package/dist/cli.js
ADDED
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_cli = require("./cli-DkZddFtU.cjs");
|
|
3
|
+
exports.ADDONS = require_cli.ADDONS;
|
|
4
|
+
exports.DB_DRIVERS = require_cli.DB_DRIVERS;
|
|
5
|
+
exports.DB_ODMS = require_cli.DB_ODMS;
|
|
6
|
+
exports.DEFAULT_DB_DRIVER = require_cli.DEFAULT_DB_DRIVER;
|
|
7
|
+
exports.DEFAULT_DEPLOY = require_cli.DEFAULT_DEPLOY;
|
|
8
|
+
exports.DEPLOY_ENTRIES = require_cli.DEPLOY_ENTRIES;
|
|
9
|
+
exports.DEPLOY_TARGETS = require_cli.DEPLOY_TARGETS;
|
|
10
|
+
exports.LOGGERS = require_cli.LOGGERS;
|
|
11
|
+
exports.RUNTIMES = require_cli.RUNTIMES;
|
|
12
|
+
exports.VALIDATORS = require_cli.VALIDATORS;
|
|
13
|
+
exports.allowedRuntimeOverrides = require_cli.allowedRuntimeOverrides;
|
|
14
|
+
exports.collectBootBindings = require_cli.collectBootBindings;
|
|
15
|
+
exports.installPackages = require_cli.installPackages;
|
|
16
|
+
exports.isCuratedDeploy = require_cli.isCuratedDeploy;
|
|
17
|
+
exports.promptInteractiveOptions = require_cli.promptInteractiveOptions;
|
|
18
|
+
exports.resolveAddons = require_cli.resolveAddons;
|
|
19
|
+
exports.resolveDeployEntry = require_cli.resolveDeployEntry;
|
|
20
|
+
exports.resolveUserAgent = require_cli.resolveUserAgent;
|
|
21
|
+
exports.run = require_cli.run;
|
|
22
|
+
exports.runCreateCommand = require_cli.runCreateCommand;
|
|
23
|
+
exports.runScript = require_cli.runScript;
|
|
24
|
+
exports.scaffoldProject = require_cli.scaffoldProject;
|
|
25
|
+
exports.validateCombination = require_cli.validateCombination;
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { run } from "./cli.cjs";
|
|
2
|
+
import { Agent } from "package-manager-detector";
|
|
3
|
+
//#region src/core/types.d.ts
|
|
4
|
+
export type Runtime = "node" | "bun" | "deno";
|
|
5
|
+
export declare const RUNTIMES: readonly Runtime[];
|
|
6
|
+
export type DeployTarget = "none" | "node-server" | "node-cluster" | "bun" | "deno-server" | "deno-deploy" | "cloudflare-module" | "vercel" | "aws-lambda" | "netlify";
|
|
7
|
+
export declare const DEPLOY_TARGETS: readonly DeployTarget[];
|
|
8
|
+
export type DbOdm = "drizzle" | "prisma" | "kysely";
|
|
9
|
+
export declare const DB_ODMS: readonly DbOdm[];
|
|
10
|
+
export type DbDriver = "postgres" | "sqlite" | "mysql";
|
|
11
|
+
export declare const DB_DRIVERS: readonly DbDriver[];
|
|
12
|
+
export declare const DEFAULT_DB_DRIVER: DbDriver;
|
|
13
|
+
export type LoggerId = "pino" | "winston";
|
|
14
|
+
export declare const LOGGERS: readonly LoggerId[];
|
|
15
|
+
export type ValidatorId = "zod" | "arktype" | "valibot";
|
|
16
|
+
export declare const VALIDATORS: readonly ValidatorId[];
|
|
17
|
+
export interface ScaffoldContext {
|
|
18
|
+
projectName: string;
|
|
19
|
+
targetDir: string;
|
|
20
|
+
preset?: DeployTarget | undefined;
|
|
21
|
+
runtime?: Runtime | undefined;
|
|
22
|
+
db?: DbOdm | undefined;
|
|
23
|
+
driver?: DbDriver | undefined;
|
|
24
|
+
logger?: LoggerId | undefined;
|
|
25
|
+
validator?: ValidatorId | undefined;
|
|
26
|
+
packageVersions?: Record<string, string> | undefined;
|
|
27
|
+
}
|
|
28
|
+
export interface ScaffoldOptions extends ScaffoldContext {
|
|
29
|
+
skipInstall?: boolean | undefined;
|
|
30
|
+
agent?: Agent | undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface ScaffoldResult extends ScaffoldContext {
|
|
33
|
+
files: string[];
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/core/scaffold-engine.d.ts
|
|
37
|
+
export declare function scaffoldProject(options: ScaffoldOptions): Promise<ScaffoldResult>;
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/core/package-manager.d.ts
|
|
40
|
+
export declare function resolveUserAgent(): Agent;
|
|
41
|
+
export declare function runScript(agent: Agent, script: string): string;
|
|
42
|
+
export declare function installPackages(agent: Agent, cwd: string, packages: {
|
|
43
|
+
dependencies: string[];
|
|
44
|
+
devDependencies: string[];
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/core/targets.d.ts
|
|
48
|
+
export interface PlatformFile {
|
|
49
|
+
name: string;
|
|
50
|
+
content: string | ((ctx: {
|
|
51
|
+
projectName: string;
|
|
52
|
+
}) => string);
|
|
53
|
+
}
|
|
54
|
+
export interface DeployEntry {
|
|
55
|
+
id: DeployTarget;
|
|
56
|
+
impliedRuntime: Runtime | "workerd";
|
|
57
|
+
selfHosted: boolean;
|
|
58
|
+
startScript: string | null;
|
|
59
|
+
devDeps: string[];
|
|
60
|
+
files: PlatformFile[];
|
|
61
|
+
}
|
|
62
|
+
export declare const DEPLOY_ENTRIES: Record<DeployTarget, DeployEntry>;
|
|
63
|
+
export declare const DEFAULT_DEPLOY: DeployTarget;
|
|
64
|
+
export declare function isCuratedDeploy(value: string): value is DeployTarget;
|
|
65
|
+
export declare function resolveDeployEntry(id: string): {
|
|
66
|
+
entry: DeployEntry;
|
|
67
|
+
curated: boolean;
|
|
68
|
+
};
|
|
69
|
+
export declare function allowedRuntimeOverrides(id: DeployTarget): readonly Runtime[];
|
|
70
|
+
export type CombinationError = {
|
|
71
|
+
ok: false;
|
|
72
|
+
reason: string;
|
|
73
|
+
};
|
|
74
|
+
export type CombinationOk = {
|
|
75
|
+
ok: true;
|
|
76
|
+
runtime: Runtime | "workerd";
|
|
77
|
+
};
|
|
78
|
+
export declare function validateCombination(runtimeOverride: Runtime | undefined, deploy: string): CombinationOk | CombinationError;
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/addons/types.d.ts
|
|
81
|
+
export interface BootBinding {
|
|
82
|
+
key: string;
|
|
83
|
+
importPath: string;
|
|
84
|
+
factoryName: string;
|
|
85
|
+
}
|
|
86
|
+
export interface AddonDefinition {
|
|
87
|
+
id: string;
|
|
88
|
+
category: "database" | "logger" | "validator";
|
|
89
|
+
dependencies(ctx: ScaffoldContext): string[];
|
|
90
|
+
devDependencies(ctx: ScaffoldContext): string[];
|
|
91
|
+
scripts?(ctx: ScaffoldContext): Record<string, string>;
|
|
92
|
+
bootBinding?(ctx: ScaffoldContext): BootBinding | undefined;
|
|
93
|
+
apply(ctx: ScaffoldContext, write: (path: string, content: string) => Promise<void> | void): Promise<void>;
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region src/addons/registry.d.ts
|
|
97
|
+
export declare const ADDONS: Record<string, AddonDefinition>;
|
|
98
|
+
export declare function resolveAddons(ctx: ScaffoldContext): AddonDefinition[];
|
|
99
|
+
export declare function collectBootBindings(ctx: ScaffoldContext): BootBinding[];
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/commands/create.d.ts
|
|
102
|
+
export interface RunCreateCommandOptions {
|
|
103
|
+
projectName?: string | undefined;
|
|
104
|
+
preset?: DeployTarget | undefined;
|
|
105
|
+
runtime?: Runtime | undefined;
|
|
106
|
+
db?: DbOdm | undefined;
|
|
107
|
+
driver?: DbDriver | undefined;
|
|
108
|
+
logger?: LoggerId | undefined;
|
|
109
|
+
validator?: ValidatorId | undefined;
|
|
110
|
+
skipInstall?: boolean | undefined;
|
|
111
|
+
interactive?: boolean | undefined;
|
|
112
|
+
targetDir?: string | undefined;
|
|
113
|
+
packageVersions?: Record<string, string> | undefined;
|
|
114
|
+
}
|
|
115
|
+
export declare function promptInteractiveOptions(defaults: RunCreateCommandOptions): Promise<RunCreateCommandOptions>;
|
|
116
|
+
export declare function runCreateCommand(args?: RunCreateCommandOptions): Promise<ScaffoldResult>;
|
|
117
|
+
//#endregion
|
|
118
|
+
export { run };
|
|
119
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/core/types.ts","../src/core/scaffold-engine.ts","../src/core/package-manager.ts","../src/core/targets.ts","../src/addons/types.ts","../src/addons/registry.ts","../src/commands/create.ts"],"mappings":";;;YAEY;qBACC,mBAAmB;YAEpB;qBAYC,yBAAyB;YAa1B;qBACC,kBAAkB;YAEnB;qBACC,qBAAqB;qBACrB,mBAAmB;YAEpB;qBACC,kBAAkB;YAEnB;qBACC,qBAAqB;iBAEjB;EACf;EACA;EACA,SAAS;EACT,UAAU;EACV,KAAK;EACL,SAAS;EACT,SAAS;EACT,YAAY;EACZ,kBAAkB;;iBAGH,wBAAwB;EACvC;EACA,QAAQ;;iBAGO,uBAAuB;EACtC;;;;wBCpCoB,gBAAgB,SAAS,kBAAkB,QAAQ;;;wBCtBzD,oBAAoB;wBAKpB,UAAU,OAAO,OAAO;wBAclB,gBACpB,OAAO,OACP,aACA;EACE;EACA;IAED;;;iBC3Bc;EACf;EACA,oBAAoB;IAAO;;;iBAGZ;EACf,IAAI;EACJ,gBAAgB;EAChB;EACA;EACA;EACA,OAAO;;qBAKI,gBAAgB,OAAO,cAAc;qBAwGrC,gBAAgB;wBAEb,gBAAgB,gBAAgB,SAAS;wBAIzC,mBAAmB;EAAe,OAAO;EAAa;;wBAiBtD,wBAAwB,IAAI,wBAAwB;YAIxD;EAAqB;EAAW;;YAChC;EAAkB;EAAU,SAAS;;wBAEjC,oBACd,iBAAiB,qBACjB,iBACC,gBAAgB;;;iBC3JF;EACf;EACA;EACA;;iBAGe;EACf;EACA;EACA,aAAa,KAHE;EAIf,gBAAgB,KAD6B;EAE7C,SAAS,KADuC,kBACW;EAC3D,aAAa,KAD8C,kBACI;EAC/D,MACE,KAF6D,iBAG7D,QAAQ,cAAc,oBAAoB,uBACzC;;;;qBCPQ,QAAQ,eAAe;wBAWpB,cAAc,KAAK,kBAAkB;wBAiBrC,oBAAoB,KAAK,kBAAkB;;;iBCN1C;EACf;EACA,SAAS;EACT,UAAU;EACV,KAAK;EACL,SAAS;EACT,SAAS;EACT,YAAY;EACZ;EACA;EACA;EACA,kBAAkB;;wBAGE,yBACpB,UAAU,0BACT,QAAQ;wBAoJW,iBACpB,OAAM,0BACL,QAAQ"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { run } from "./cli.js";
|
|
2
|
+
import { Agent } from "package-manager-detector";
|
|
3
|
+
//#region src/core/types.d.ts
|
|
4
|
+
export type Runtime = "node" | "bun" | "deno";
|
|
5
|
+
export declare const RUNTIMES: readonly Runtime[];
|
|
6
|
+
export type DeployTarget = "none" | "node-server" | "node-cluster" | "bun" | "deno-server" | "deno-deploy" | "cloudflare-module" | "vercel" | "aws-lambda" | "netlify";
|
|
7
|
+
export declare const DEPLOY_TARGETS: readonly DeployTarget[];
|
|
8
|
+
export type DbOdm = "drizzle" | "prisma" | "kysely";
|
|
9
|
+
export declare const DB_ODMS: readonly DbOdm[];
|
|
10
|
+
export type DbDriver = "postgres" | "sqlite" | "mysql";
|
|
11
|
+
export declare const DB_DRIVERS: readonly DbDriver[];
|
|
12
|
+
export declare const DEFAULT_DB_DRIVER: DbDriver;
|
|
13
|
+
export type LoggerId = "pino" | "winston";
|
|
14
|
+
export declare const LOGGERS: readonly LoggerId[];
|
|
15
|
+
export type ValidatorId = "zod" | "arktype" | "valibot";
|
|
16
|
+
export declare const VALIDATORS: readonly ValidatorId[];
|
|
17
|
+
export interface ScaffoldContext {
|
|
18
|
+
projectName: string;
|
|
19
|
+
targetDir: string;
|
|
20
|
+
preset?: DeployTarget | undefined;
|
|
21
|
+
runtime?: Runtime | undefined;
|
|
22
|
+
db?: DbOdm | undefined;
|
|
23
|
+
driver?: DbDriver | undefined;
|
|
24
|
+
logger?: LoggerId | undefined;
|
|
25
|
+
validator?: ValidatorId | undefined;
|
|
26
|
+
packageVersions?: Record<string, string> | undefined;
|
|
27
|
+
}
|
|
28
|
+
export interface ScaffoldOptions extends ScaffoldContext {
|
|
29
|
+
skipInstall?: boolean | undefined;
|
|
30
|
+
agent?: Agent | undefined;
|
|
31
|
+
}
|
|
32
|
+
export interface ScaffoldResult extends ScaffoldContext {
|
|
33
|
+
files: string[];
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
//#region src/core/scaffold-engine.d.ts
|
|
37
|
+
export declare function scaffoldProject(options: ScaffoldOptions): Promise<ScaffoldResult>;
|
|
38
|
+
//#endregion
|
|
39
|
+
//#region src/core/package-manager.d.ts
|
|
40
|
+
export declare function resolveUserAgent(): Agent;
|
|
41
|
+
export declare function runScript(agent: Agent, script: string): string;
|
|
42
|
+
export declare function installPackages(agent: Agent, cwd: string, packages: {
|
|
43
|
+
dependencies: string[];
|
|
44
|
+
devDependencies: string[];
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/core/targets.d.ts
|
|
48
|
+
export interface PlatformFile {
|
|
49
|
+
name: string;
|
|
50
|
+
content: string | ((ctx: {
|
|
51
|
+
projectName: string;
|
|
52
|
+
}) => string);
|
|
53
|
+
}
|
|
54
|
+
export interface DeployEntry {
|
|
55
|
+
id: DeployTarget;
|
|
56
|
+
impliedRuntime: Runtime | "workerd";
|
|
57
|
+
selfHosted: boolean;
|
|
58
|
+
startScript: string | null;
|
|
59
|
+
devDeps: string[];
|
|
60
|
+
files: PlatformFile[];
|
|
61
|
+
}
|
|
62
|
+
export declare const DEPLOY_ENTRIES: Record<DeployTarget, DeployEntry>;
|
|
63
|
+
export declare const DEFAULT_DEPLOY: DeployTarget;
|
|
64
|
+
export declare function isCuratedDeploy(value: string): value is DeployTarget;
|
|
65
|
+
export declare function resolveDeployEntry(id: string): {
|
|
66
|
+
entry: DeployEntry;
|
|
67
|
+
curated: boolean;
|
|
68
|
+
};
|
|
69
|
+
export declare function allowedRuntimeOverrides(id: DeployTarget): readonly Runtime[];
|
|
70
|
+
export type CombinationError = {
|
|
71
|
+
ok: false;
|
|
72
|
+
reason: string;
|
|
73
|
+
};
|
|
74
|
+
export type CombinationOk = {
|
|
75
|
+
ok: true;
|
|
76
|
+
runtime: Runtime | "workerd";
|
|
77
|
+
};
|
|
78
|
+
export declare function validateCombination(runtimeOverride: Runtime | undefined, deploy: string): CombinationOk | CombinationError;
|
|
79
|
+
//#endregion
|
|
80
|
+
//#region src/addons/types.d.ts
|
|
81
|
+
export interface BootBinding {
|
|
82
|
+
key: string;
|
|
83
|
+
importPath: string;
|
|
84
|
+
factoryName: string;
|
|
85
|
+
}
|
|
86
|
+
export interface AddonDefinition {
|
|
87
|
+
id: string;
|
|
88
|
+
category: "database" | "logger" | "validator";
|
|
89
|
+
dependencies(ctx: ScaffoldContext): string[];
|
|
90
|
+
devDependencies(ctx: ScaffoldContext): string[];
|
|
91
|
+
scripts?(ctx: ScaffoldContext): Record<string, string>;
|
|
92
|
+
bootBinding?(ctx: ScaffoldContext): BootBinding | undefined;
|
|
93
|
+
apply(ctx: ScaffoldContext, write: (path: string, content: string) => Promise<void> | void): Promise<void>;
|
|
94
|
+
}
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region src/addons/registry.d.ts
|
|
97
|
+
export declare const ADDONS: Record<string, AddonDefinition>;
|
|
98
|
+
export declare function resolveAddons(ctx: ScaffoldContext): AddonDefinition[];
|
|
99
|
+
export declare function collectBootBindings(ctx: ScaffoldContext): BootBinding[];
|
|
100
|
+
//#endregion
|
|
101
|
+
//#region src/commands/create.d.ts
|
|
102
|
+
export interface RunCreateCommandOptions {
|
|
103
|
+
projectName?: string | undefined;
|
|
104
|
+
preset?: DeployTarget | undefined;
|
|
105
|
+
runtime?: Runtime | undefined;
|
|
106
|
+
db?: DbOdm | undefined;
|
|
107
|
+
driver?: DbDriver | undefined;
|
|
108
|
+
logger?: LoggerId | undefined;
|
|
109
|
+
validator?: ValidatorId | undefined;
|
|
110
|
+
skipInstall?: boolean | undefined;
|
|
111
|
+
interactive?: boolean | undefined;
|
|
112
|
+
targetDir?: string | undefined;
|
|
113
|
+
packageVersions?: Record<string, string> | undefined;
|
|
114
|
+
}
|
|
115
|
+
export declare function promptInteractiveOptions(defaults: RunCreateCommandOptions): Promise<RunCreateCommandOptions>;
|
|
116
|
+
export declare function runCreateCommand(args?: RunCreateCommandOptions): Promise<ScaffoldResult>;
|
|
117
|
+
//#endregion
|
|
118
|
+
export { run };
|
|
119
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/core/types.ts","../src/core/scaffold-engine.ts","../src/core/package-manager.ts","../src/core/targets.ts","../src/addons/types.ts","../src/addons/registry.ts","../src/commands/create.ts"],"mappings":";;;YAEY;qBACC,mBAAmB;YAEpB;qBAYC,yBAAyB;YAa1B;qBACC,kBAAkB;YAEnB;qBACC,qBAAqB;qBACrB,mBAAmB;YAEpB;qBACC,kBAAkB;YAEnB;qBACC,qBAAqB;iBAEjB;EACf;EACA;EACA,SAAS;EACT,UAAU;EACV,KAAK;EACL,SAAS;EACT,SAAS;EACT,YAAY;EACZ,kBAAkB;;iBAGH,wBAAwB;EACvC;EACA,QAAQ;;iBAGO,uBAAuB;EACtC;;;;wBCpCoB,gBAAgB,SAAS,kBAAkB,QAAQ;;;wBCtBzD,oBAAoB;wBAKpB,UAAU,OAAO,OAAO;wBAclB,gBACpB,OAAO,OACP,aACA;EACE;EACA;IAED;;;iBC3Bc;EACf;EACA,oBAAoB;IAAO;;;iBAGZ;EACf,IAAI;EACJ,gBAAgB;EAChB;EACA;EACA;EACA,OAAO;;qBAKI,gBAAgB,OAAO,cAAc;qBAwGrC,gBAAgB;wBAEb,gBAAgB,gBAAgB,SAAS;wBAIzC,mBAAmB;EAAe,OAAO;EAAa;;wBAiBtD,wBAAwB,IAAI,wBAAwB;YAIxD;EAAqB;EAAW;;YAChC;EAAkB;EAAU,SAAS;;wBAEjC,oBACd,iBAAiB,qBACjB,iBACC,gBAAgB;;;iBC3JF;EACf;EACA;EACA;;iBAGe;EACf;EACA;EACA,aAAa,KAHE;EAIf,gBAAgB,KAD6B;EAE7C,SAAS,KADuC,kBACW;EAC3D,aAAa,KAD8C,kBACI;EAC/D,MACE,KAF6D,iBAG7D,QAAQ,cAAc,oBAAoB,uBACzC;;;;qBCPQ,QAAQ,eAAe;wBAWpB,cAAc,KAAK,kBAAkB;wBAiBrC,oBAAoB,KAAK,kBAAkB;;;iBCN1C;EACf;EACA,SAAS;EACT,UAAU;EACV,KAAK;EACL,SAAS;EACT,SAAS;EACT,YAAY;EACZ;EACA;EACA;EACA,kBAAkB;;wBAGE,yBACpB,UAAU,0BACT,QAAQ;wBAoJW,iBACpB,OAAM,0BACL,QAAQ"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { C as VALIDATORS, S as RUNTIMES, _ as DB_DRIVERS, a as DEFAULT_DEPLOY, b as DEPLOY_TARGETS, c as isCuratedDeploy, d as installPackages, f as resolveUserAgent, g as resolveAddons, h as collectBootBindings, i as scaffoldProject, l as resolveDeployEntry, m as ADDONS, n as promptInteractiveOptions, o as DEPLOY_ENTRIES, p as runScript, r as runCreateCommand, s as allowedRuntimeOverrides, t as run, u as validateCombination, v as DB_ODMS, x as LOGGERS, y as DEFAULT_DB_DRIVER } from "./cli-9fkoNOJg.js";
|
|
2
|
+
export { ADDONS, DB_DRIVERS, DB_ODMS, DEFAULT_DB_DRIVER, DEFAULT_DEPLOY, DEPLOY_ENTRIES, DEPLOY_TARGETS, LOGGERS, RUNTIMES, VALIDATORS, allowedRuntimeOverrides, collectBootBindings, installPackages, isCuratedDeploy, promptInteractiveOptions, resolveAddons, resolveDeployEntry, resolveUserAgent, run, runCreateCommand, runScript, scaffoldProject, validateCombination };
|
package/package.json
CHANGED
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-taserjs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Scaffold a new Taser.js application",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"api-starter",
|
|
7
|
+
"boilerplate",
|
|
8
|
+
"create-app",
|
|
9
|
+
"file-based-routing",
|
|
10
|
+
"rest-api",
|
|
11
|
+
"scaffold",
|
|
12
|
+
"starter",
|
|
13
|
+
"taserjs",
|
|
14
|
+
"type-safe-api",
|
|
15
|
+
"typescript"
|
|
16
|
+
],
|
|
5
17
|
"license": "ISC",
|
|
6
18
|
"repository": {
|
|
7
19
|
"type": "git",
|
|
@@ -9,7 +21,7 @@
|
|
|
9
21
|
"directory": "packages/create-taserjs"
|
|
10
22
|
},
|
|
11
23
|
"bin": {
|
|
12
|
-
"create-taserjs": "./dist/
|
|
24
|
+
"create-taserjs": "./dist/cli.js"
|
|
13
25
|
},
|
|
14
26
|
"files": [
|
|
15
27
|
"dist",
|
|
@@ -17,6 +29,22 @@
|
|
|
17
29
|
],
|
|
18
30
|
"type": "module",
|
|
19
31
|
"sideEffects": false,
|
|
32
|
+
"main": "./dist/index.cjs",
|
|
33
|
+
"module": "./dist/index.js",
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"import": {
|
|
38
|
+
"types": "./dist/index.d.ts",
|
|
39
|
+
"default": "./dist/index.js"
|
|
40
|
+
},
|
|
41
|
+
"require": {
|
|
42
|
+
"types": "./dist/index.d.cts",
|
|
43
|
+
"default": "./dist/index.cjs"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"./package.json": "./package.json"
|
|
47
|
+
},
|
|
20
48
|
"publishConfig": {
|
|
21
49
|
"access": "public",
|
|
22
50
|
"registry": "https://registry.npmjs.org"
|
|
@@ -24,23 +52,25 @@
|
|
|
24
52
|
"dependencies": {
|
|
25
53
|
"@clack/prompts": "^0.11.0",
|
|
26
54
|
"package-manager-detector": "^1.8.0",
|
|
27
|
-
"picocolors": "^1.1.1"
|
|
55
|
+
"picocolors": "^1.1.1",
|
|
56
|
+
"yargs": "^18.1.0"
|
|
28
57
|
},
|
|
29
58
|
"devDependencies": {
|
|
30
|
-
"@
|
|
59
|
+
"@types/yargs": "^17.0.35",
|
|
31
60
|
"publint": "^0.3.22",
|
|
61
|
+
"rimraf": "^6.0.1",
|
|
62
|
+
"tsdown": "^0.23.0",
|
|
32
63
|
"typescript": "^5.9.3",
|
|
33
|
-
"
|
|
34
|
-
"vitest": "^4.1.10",
|
|
35
|
-
"@taserjs/router-generator": "0.1.12"
|
|
64
|
+
"vitest": "^4.1.10"
|
|
36
65
|
},
|
|
37
66
|
"engines": {
|
|
38
67
|
"node": ">=20.19"
|
|
39
68
|
},
|
|
40
69
|
"scripts": {
|
|
41
70
|
"clean": "rimraf dist",
|
|
42
|
-
"build": "
|
|
71
|
+
"build": "tsdown",
|
|
43
72
|
"typecheck": "tsc --noEmit -p tsconfig.json",
|
|
44
|
-
"test": "vitest run"
|
|
73
|
+
"test": "vitest run",
|
|
74
|
+
"lint": "oxlint ."
|
|
45
75
|
}
|
|
46
76
|
}
|
|
@@ -4,29 +4,29 @@ import type { DbDriver } from "../../core/types.js";
|
|
|
4
4
|
function schemaSource(driver: DbDriver): string {
|
|
5
5
|
switch (driver) {
|
|
6
6
|
case "postgres":
|
|
7
|
-
return `import { pgTable, serial, text } from
|
|
7
|
+
return `import { pgTable, serial, text } from "drizzle-orm/pg-core";
|
|
8
8
|
|
|
9
|
-
export const users = pgTable(
|
|
10
|
-
id: serial(
|
|
11
|
-
email: text(
|
|
12
|
-
})
|
|
9
|
+
export const users = pgTable("users", {
|
|
10
|
+
id: serial("id").primaryKey(),
|
|
11
|
+
email: text("email").notNull(),
|
|
12
|
+
});
|
|
13
13
|
`;
|
|
14
14
|
case "mysql":
|
|
15
|
-
return `import { mysqlTable, serial, varchar } from
|
|
15
|
+
return `import { mysqlTable, serial, varchar } from "drizzle-orm/mysql-core";
|
|
16
16
|
|
|
17
|
-
export const users = mysqlTable(
|
|
18
|
-
id: serial(
|
|
19
|
-
email: varchar(
|
|
20
|
-
})
|
|
17
|
+
export const users = mysqlTable("users", {
|
|
18
|
+
id: serial("id").primaryKey(),
|
|
19
|
+
email: varchar("email", { length: 255 }).notNull(),
|
|
20
|
+
});
|
|
21
21
|
`;
|
|
22
22
|
case "sqlite":
|
|
23
23
|
default:
|
|
24
|
-
return `import { sqliteTable, integer, text } from
|
|
24
|
+
return `import { sqliteTable, integer, text } from "drizzle-orm/sqlite-core";
|
|
25
25
|
|
|
26
|
-
export const users = sqliteTable(
|
|
27
|
-
id: integer(
|
|
28
|
-
email: text(
|
|
29
|
-
})
|
|
26
|
+
export const users = sqliteTable("users", {
|
|
27
|
+
id: integer("id").primaryKey({ autoIncrement: true }),
|
|
28
|
+
email: text("email").notNull(),
|
|
29
|
+
});
|
|
30
30
|
`;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -34,40 +34,37 @@ export const users = sqliteTable('users', {
|
|
|
34
34
|
function dbIndexSource(driver: DbDriver): string {
|
|
35
35
|
switch (driver) {
|
|
36
36
|
case "postgres":
|
|
37
|
-
return `import { drizzle } from
|
|
38
|
-
import pg from
|
|
39
|
-
|
|
40
|
-
import * as schema from './schema.js'
|
|
37
|
+
return `import { drizzle } from "drizzle-orm/node-postgres";
|
|
38
|
+
import pg from "pg";
|
|
39
|
+
import * as schema from "./schema.js";
|
|
41
40
|
|
|
42
41
|
export function createDb() {
|
|
43
42
|
const pool = new pg.Pool({
|
|
44
43
|
connectionString: process.env.DATABASE_URL,
|
|
45
|
-
})
|
|
46
|
-
return drizzle(pool, { schema })
|
|
44
|
+
});
|
|
45
|
+
return drizzle(pool, { schema });
|
|
47
46
|
}
|
|
48
47
|
`;
|
|
49
48
|
case "mysql":
|
|
50
|
-
return `import { drizzle } from
|
|
51
|
-
import mysql from
|
|
52
|
-
|
|
53
|
-
import * as schema from './schema.js'
|
|
49
|
+
return `import { drizzle } from "drizzle-orm/mysql2";
|
|
50
|
+
import mysql from "mysql2/promise";
|
|
51
|
+
import * as schema from "./schema.js";
|
|
54
52
|
|
|
55
53
|
export function createDb() {
|
|
56
|
-
const pool = mysql.createPool(process.env.DATABASE_URL ??
|
|
57
|
-
return drizzle(pool, { schema, mode:
|
|
54
|
+
const pool = mysql.createPool(process.env.DATABASE_URL ?? "");
|
|
55
|
+
return drizzle(pool, { schema, mode: "default" });
|
|
58
56
|
}
|
|
59
57
|
`;
|
|
60
58
|
case "sqlite":
|
|
61
59
|
default:
|
|
62
|
-
return `import Database from
|
|
63
|
-
import { drizzle } from
|
|
64
|
-
|
|
65
|
-
import * as schema from './schema.js'
|
|
60
|
+
return `import Database from "better-sqlite3";
|
|
61
|
+
import { drizzle } from "drizzle-orm/better-sqlite3";
|
|
62
|
+
import * as schema from "./schema.js";
|
|
66
63
|
|
|
67
64
|
export function createDb() {
|
|
68
|
-
const filePath = (process.env.DATABASE_URL ??
|
|
69
|
-
const client = new Database(filePath)
|
|
70
|
-
return drizzle(client, { schema })
|
|
65
|
+
const filePath = (process.env.DATABASE_URL ?? "file:./local.db").replace(/^file:/, "");
|
|
66
|
+
const client = new Database(filePath);
|
|
67
|
+
return drizzle(client, { schema });
|
|
71
68
|
}
|
|
72
69
|
`;
|
|
73
70
|
}
|
|
@@ -75,16 +72,16 @@ export function createDb() {
|
|
|
75
72
|
|
|
76
73
|
function drizzleConfigSource(driver: DbDriver): string {
|
|
77
74
|
const dialect = driver === "postgres" ? "postgresql" : driver === "mysql" ? "mysql" : "sqlite";
|
|
78
|
-
return `import { defineConfig } from
|
|
75
|
+
return `import { defineConfig } from "drizzle-kit";
|
|
79
76
|
|
|
80
77
|
export default defineConfig({
|
|
81
|
-
schema:
|
|
82
|
-
out:
|
|
83
|
-
dialect:
|
|
78
|
+
schema: "./src/db/schema.ts",
|
|
79
|
+
out: "./drizzle",
|
|
80
|
+
dialect: "${dialect}",
|
|
84
81
|
dbCredentials: {
|
|
85
|
-
url: process.env.DATABASE_URL ??
|
|
82
|
+
url: process.env.DATABASE_URL ?? "",
|
|
86
83
|
},
|
|
87
|
-
})
|
|
84
|
+
});
|
|
88
85
|
`;
|
|
89
86
|
}
|
|
90
87
|
|
|
@@ -3,12 +3,12 @@ import type { DbDriver } from "../../core/types.js";
|
|
|
3
3
|
|
|
4
4
|
function schemaTypesSource(): string {
|
|
5
5
|
return `export interface UserTable {
|
|
6
|
-
id: number
|
|
7
|
-
email: string
|
|
6
|
+
id: number;
|
|
7
|
+
email: string;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export interface DB {
|
|
11
|
-
users: UserTable
|
|
11
|
+
users: UserTable;
|
|
12
12
|
}
|
|
13
13
|
`;
|
|
14
14
|
}
|
|
@@ -16,46 +16,43 @@ export interface DB {
|
|
|
16
16
|
function dbIndexSource(driver: DbDriver): string {
|
|
17
17
|
switch (driver) {
|
|
18
18
|
case "postgres":
|
|
19
|
-
return `import { Kysely, PostgresDialect } from
|
|
20
|
-
import pg from
|
|
21
|
-
|
|
22
|
-
import type { DB } from './schema.js'
|
|
19
|
+
return `import { Kysely, PostgresDialect } from "kysely";
|
|
20
|
+
import pg from "pg";
|
|
21
|
+
import type { DB } from "./schema.js";
|
|
23
22
|
|
|
24
23
|
export function createDb() {
|
|
25
24
|
const pool = new pg.Pool({
|
|
26
25
|
connectionString: process.env.DATABASE_URL,
|
|
27
|
-
})
|
|
26
|
+
});
|
|
28
27
|
return new Kysely<DB>({
|
|
29
28
|
dialect: new PostgresDialect({ pool }),
|
|
30
|
-
})
|
|
29
|
+
});
|
|
31
30
|
}
|
|
32
31
|
`;
|
|
33
32
|
case "mysql":
|
|
34
|
-
return `import { Kysely, MysqlDialect } from
|
|
35
|
-
import { createPool } from
|
|
36
|
-
|
|
37
|
-
import type { DB } from './schema.js'
|
|
33
|
+
return `import { Kysely, MysqlDialect } from "kysely";
|
|
34
|
+
import { createPool } from "mysql2";
|
|
35
|
+
import type { DB } from "./schema.js";
|
|
38
36
|
|
|
39
37
|
export function createDb() {
|
|
40
|
-
const pool = createPool(process.env.DATABASE_URL ??
|
|
38
|
+
const pool = createPool(process.env.DATABASE_URL ?? "");
|
|
41
39
|
return new Kysely<DB>({
|
|
42
40
|
dialect: new MysqlDialect({ pool }),
|
|
43
|
-
})
|
|
41
|
+
});
|
|
44
42
|
}
|
|
45
43
|
`;
|
|
46
44
|
case "sqlite":
|
|
47
45
|
default:
|
|
48
|
-
return `import Database from
|
|
49
|
-
import { Kysely, SqliteDialect } from
|
|
50
|
-
|
|
51
|
-
import type { DB } from './schema.js'
|
|
46
|
+
return `import Database from "better-sqlite3";
|
|
47
|
+
import { Kysely, SqliteDialect } from "kysely";
|
|
48
|
+
import type { DB } from "./schema.js";
|
|
52
49
|
|
|
53
50
|
export function createDb() {
|
|
54
|
-
const filePath = (process.env.DATABASE_URL ??
|
|
55
|
-
const database = new Database(filePath)
|
|
51
|
+
const filePath = (process.env.DATABASE_URL ?? "file:./local.db").replace(/^file:/, "");
|
|
52
|
+
const database = new Database(filePath);
|
|
56
53
|
return new Kysely<DB>({
|
|
57
54
|
dialect: new SqliteDialect({ database }),
|
|
58
|
-
})
|
|
55
|
+
});
|
|
59
56
|
}
|
|
60
57
|
`;
|
|
61
58
|
}
|
package/src/addons/pino/index.ts
CHANGED
|
@@ -19,10 +19,10 @@ export const pinoAddon: AddonDefinition = {
|
|
|
19
19
|
async apply(_ctx, write) {
|
|
20
20
|
await write(
|
|
21
21
|
"src/logger.ts",
|
|
22
|
-
`import pino from
|
|
22
|
+
`import pino from "pino";
|
|
23
23
|
|
|
24
24
|
export function createLogger() {
|
|
25
|
-
return pino({ level: process.env.LOG_LEVEL ??
|
|
25
|
+
return pino({ level: process.env.LOG_LEVEL ?? "info" });
|
|
26
26
|
}
|
|
27
27
|
`,
|
|
28
28
|
);
|