@ubean/cli 0.1.1 → 0.1.3

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.
@@ -0,0 +1,133 @@
1
+ import "citty";
2
+ //#region src/shared/fs-ops.d.ts
3
+ interface FsOpOptions {
4
+ cwd?: string;
5
+ }
6
+ interface BackupOptions {
7
+ backupSuffix?: string;
8
+ removeOriginal?: boolean;
9
+ }
10
+ declare function createFsOps(cwd: string): {
11
+ cwd: string;
12
+ resolve: (...paths: string[]) => string;
13
+ exists: (path: string) => Promise<boolean>;
14
+ existsSync: (path: string) => boolean;
15
+ readFile: (path: string, enc?: BufferEncoding) => Promise<string>;
16
+ writeFile: (path: string, content: string, enc?: BufferEncoding) => Promise<void>;
17
+ appendFile: (path: string, content: string, enc?: BufferEncoding) => Promise<void>;
18
+ remove: (path: string) => Promise<void>;
19
+ ensureDir: (path: string) => Promise<void>;
20
+ copyFile: (src: string, dest: string) => Promise<void>;
21
+ copyDir: (src: string, dest: string, opts?: {
22
+ filter?: (f: string) => boolean;
23
+ }) => Promise<void>;
24
+ readDir: (path: string) => Promise<string[]>;
25
+ readJson: <T = unknown>(path: string) => Promise<T>;
26
+ writeJson: (path: string, data: unknown, indent?: number) => Promise<void>;
27
+ createBackup: (path: string, opts?: BackupOptions) => Promise<string | null>;
28
+ restoreBackup: (path: string, opts?: BackupOptions) => Promise<boolean>;
29
+ removeBackup: (path: string, opts?: BackupOptions) => Promise<void>;
30
+ listFiles: (dir?: string, pattern?: RegExp) => Promise<string[]>;
31
+ relative: (to: string) => string;
32
+ };
33
+ //#endregion
34
+ //#region src/shared/templates.d.ts
35
+ interface TemplateVariables {
36
+ [key: string]: unknown;
37
+ }
38
+ interface TemplateOptions {
39
+ variables?: Record<string, unknown>;
40
+ delimiters?: [string, string];
41
+ }
42
+ declare function renderTemplate(template: string, options?: TemplateOptions): string;
43
+ interface PageTemplateData {
44
+ name: string;
45
+ path: string;
46
+ kebabName: string;
47
+ pascalName: string;
48
+ camelName: string;
49
+ }
50
+ interface ApiTemplateData {
51
+ name: string;
52
+ method: string;
53
+ path: string;
54
+ kebabName: string;
55
+ }
56
+ interface MiddlewareTemplateData {
57
+ name: string;
58
+ path: string;
59
+ global: boolean;
60
+ }
61
+ interface LayoutTemplateData {
62
+ name: string;
63
+ path: string;
64
+ pascalName: string;
65
+ }
66
+ interface CronTemplateData {
67
+ name: string;
68
+ schedule: string;
69
+ kebabName: string;
70
+ }
71
+ interface PluginTemplateData {
72
+ name: string;
73
+ kebabName: string;
74
+ pascalName: string;
75
+ }
76
+ declare function toKebabCase(str: string): string;
77
+ declare function toPascalCase(str: string): string;
78
+ declare function toCamelCase(str: string): string;
79
+ declare const PAGE_TEMPLATE = "<script setup lang=\"ts\">\ndefinePage({\n meta: {\n title: '{{name}}'\n }\n});\n</script>\n\n<template>\n <div class=\"{{kebabName}}-page\">\n <div>{{name}}</div>\n </div>\n</template>\n\n";
80
+ declare const API_TEMPLATE = "import { defineHandler } from 'ubean';\n\nexport default defineHandler(async c => {\n return c.json({ message: '{{name}} endpoint' });\n});\n";
81
+ declare const MIDDLEWARE_TEMPLATE = "import { defineMiddleware } from 'ubean';\n\nexport default defineMiddleware(async (c, next) => {\n console.log('{{name}} middleware');\n await next();\n});\n";
82
+ declare const LAYOUT_TEMPLATE = "<script setup lang=\"ts\">\ndefinePage({\n meta: {\n title: '{{name}}'\n }\n});\n</script>\n\n<template>\n <div class=\"{{kebabName}}\">\n <slot />\n </div>\n</template>\n";
83
+ declare const CRON_TEMPLATE = "import { defineScheduled } from 'ubean';\n\nexport default defineScheduled({\n name: '{{name}}',\n schedule: '{{schedule}}'\n}, async () => {\n console.log('Running {{name}} cron task');\n});\n";
84
+ declare const PLUGIN_TEMPLATE = "import { definePlugin } from 'ubean';\n\nexport default definePlugin({\n name: '{{kebabName}}',\n setup() {\n console.log('{{name}} plugin setup');\n }\n});\n";
85
+ declare function renderPageTemplate(data: PageTemplateData): string;
86
+ declare function renderApiTemplate(data: ApiTemplateData): string;
87
+ declare function renderMiddlewareTemplate(data: MiddlewareTemplateData): string;
88
+ declare function renderLayoutTemplate(data: LayoutTemplateData): string;
89
+ declare function renderCronTemplate(data: CronTemplateData): string;
90
+ declare function renderPluginTemplate(data: PluginTemplateData): string;
91
+ //#endregion
92
+ //#region src/page.d.ts
93
+ type ScaffoldType = 'page' | 'api' | 'layout' | 'middleware' | 'reuse' | 'cron' | 'plugin';
94
+ interface ScaffoldOptions {
95
+ cwd?: string;
96
+ type: ScaffoldType;
97
+ path: string;
98
+ method?: string;
99
+ schedule?: string;
100
+ force?: boolean;
101
+ dry?: boolean;
102
+ /** Override the default base directory for this type (absolute or relative to cwd). */
103
+ baseDir?: string;
104
+ }
105
+ interface ScaffoldResult {
106
+ created: string[];
107
+ deleted: string[];
108
+ restored: string[];
109
+ skipped: string[];
110
+ errors: string[];
111
+ }
112
+ declare function scaffold(options: ScaffoldOptions): Promise<ScaffoldResult>;
113
+ declare function deleteScaffold(options: {
114
+ cwd?: string;
115
+ type: ScaffoldType;
116
+ path: string;
117
+ force?: boolean;
118
+ dry?: boolean;
119
+ baseDir?: string;
120
+ }): Promise<ScaffoldResult>;
121
+ declare function recoverScaffold(options: {
122
+ cwd?: string;
123
+ type: ScaffoldType;
124
+ path: string;
125
+ dry?: boolean;
126
+ baseDir?: string;
127
+ }): Promise<ScaffoldResult>;
128
+ declare function listScaffoldableFiles(cwd: string, type: ScaffoldType, baseDir?: string): Promise<string[]>;
129
+ //#endregion
130
+ //#region src/index.d.ts
131
+ type FsOps = ReturnType<typeof createFsOps>;
132
+ //#endregion
133
+ export { API_TEMPLATE, type ApiTemplateData, type BackupOptions, CRON_TEMPLATE, type CronTemplateData, FsOps, type FsOpOptions as FsOpsOptions, LAYOUT_TEMPLATE, type LayoutTemplateData, MIDDLEWARE_TEMPLATE, type MiddlewareTemplateData, PAGE_TEMPLATE, PLUGIN_TEMPLATE, type PageTemplateData, type PluginTemplateData, type ScaffoldOptions, type ScaffoldResult, type ScaffoldType, type TemplateOptions, type TemplateVariables, createFsOps, deleteScaffold, listScaffoldableFiles, recoverScaffold, renderApiTemplate, renderCronTemplate, renderLayoutTemplate, renderMiddlewareTemplate, renderPageTemplate, renderPluginTemplate, renderTemplate, scaffold, toCamelCase, toKebabCase, toPascalCase };
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ import { S as createFsOps, _ as renderPluginTemplate, a as scaffold, b as toKebabCase, c as LAYOUT_TEMPLATE, d as PLUGIN_TEMPLATE, f as renderApiTemplate, g as renderPageTemplate, h as renderMiddlewareTemplate, i as recoverScaffold, l as MIDDLEWARE_TEMPLATE, m as renderLayoutTemplate, n as listScaffoldableFiles, o as API_TEMPLATE, p as renderCronTemplate, s as CRON_TEMPLATE, t as deleteScaffold, u as PAGE_TEMPLATE, v as renderTemplate, x as toPascalCase, y as toCamelCase } from "./page-Cmp7s9l2.js";
2
+ export { API_TEMPLATE, CRON_TEMPLATE, LAYOUT_TEMPLATE, MIDDLEWARE_TEMPLATE, PAGE_TEMPLATE, PLUGIN_TEMPLATE, createFsOps, deleteScaffold, listScaffoldableFiles, recoverScaffold, renderApiTemplate, renderCronTemplate, renderLayoutTemplate, renderMiddlewareTemplate, renderPageTemplate, renderPluginTemplate, renderTemplate, scaffold, toCamelCase, toKebabCase, toPascalCase };