do-functions-cli 1.0.0 → 1.1.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 +69 -70
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +10 -7
- package/dist/commands/create.js.map +1 -1
- package/package.json +1 -1
- package/dist/utils/scaffold.d.ts +0 -24
- package/dist/utils/scaffold.d.ts.map +0 -1
- package/dist/utils/scaffold.js +0 -56
- package/dist/utils/scaffold.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,70 +1,69 @@
|
|
|
1
|
-
# do-functions-cli
|
|
2
|
-
|
|
3
|
-

|
|
4
|
-

|
|
5
|
-
|
|
6
|
-
A CLI tool to streamline working with DigitalOcean Serverless Functions.
|
|
7
|
-
|
|
8
|
-
## Features
|
|
9
|
-
|
|
10
|
-
- Create new function packages via an interactive `create` command
|
|
11
|
-
- Support for multiple languages (JavaScript, TypeScript, more to come)
|
|
12
|
-
- Auto-install dependencies in the generated package (optional)
|
|
13
|
-
- Automatically update the root `project.yml` with the new package/function (optional)
|
|
14
|
-
|
|
15
|
-
## Installation
|
|
16
|
-
|
|
17
|
-
Global:
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
npm i -g do-functions-cli
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
Local:
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
npm i -D do-functions-cli
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Usage
|
|
30
|
-
|
|
31
|
-
Run the CLI and follow the prompts:
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
# Show help
|
|
35
|
-
npx do-functions-cli --help
|
|
36
|
-
|
|
37
|
-
# Create a new function
|
|
38
|
-
npx do-functions-cli create
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## Roadmap / Ideas
|
|
42
|
-
|
|
43
|
-
- Non-interactive flags for commands (see below)
|
|
44
|
-
- Additional commands: `validate`, `deploy`, etc.
|
|
45
|
-
|
|
46
|
-
## Planned CLI Flags
|
|
47
|
-
|
|
48
|
-
- `--
|
|
49
|
-
-
|
|
50
|
-
-
|
|
51
|
-
- `--
|
|
52
|
-
- `--
|
|
53
|
-
- `--
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- Ensure Node.js 18+ for best compatibility with templates and runtime.
|
|
1
|
+
# do-functions-cli
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+

|
|
5
|
+
|
|
6
|
+
A CLI tool to streamline working with DigitalOcean Serverless Functions.
|
|
7
|
+
|
|
8
|
+
## Features
|
|
9
|
+
|
|
10
|
+
- Create new function packages via an interactive `create` command
|
|
11
|
+
- Support for multiple languages (JavaScript, TypeScript, more to come)
|
|
12
|
+
- Auto-install dependencies in the generated package (optional)
|
|
13
|
+
- Automatically update the root `project.yml` with the new package/function (optional)
|
|
14
|
+
|
|
15
|
+
## Installation
|
|
16
|
+
|
|
17
|
+
Global:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm i -g do-functions-cli
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Local:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm i -D do-functions-cli
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
Run the CLI and follow the prompts:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Show help
|
|
35
|
+
npx do-functions-cli --help
|
|
36
|
+
|
|
37
|
+
# Create a new function
|
|
38
|
+
npx do-functions-cli create
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Roadmap / Ideas
|
|
42
|
+
|
|
43
|
+
- Non-interactive flags for commands (see below)
|
|
44
|
+
- Additional commands: `validate`, `deploy`, etc.
|
|
45
|
+
|
|
46
|
+
## Planned CLI Flags
|
|
47
|
+
|
|
48
|
+
- `--function <package/name>`: Provide function identifier directly.
|
|
49
|
+
- `--<language>`: Choose template language (e.g., `--javascript`, `--typescript`).
|
|
50
|
+
- `--install` / `--no-install`: Control dependency installation step.
|
|
51
|
+
- `--add-project` / `--no-add-project`: Control `project.yml` auto-update.
|
|
52
|
+
- `--dry-run`: Show intended actions without any file changes.
|
|
53
|
+
- `--verbose`: Print detailed logs for troubleshooting.
|
|
54
|
+
|
|
55
|
+
## Troubleshooting
|
|
56
|
+
|
|
57
|
+
- If `project.yml` parsing fails, ensure the file is valid YAML and matches the expected schema:
|
|
58
|
+
|
|
59
|
+
```yaml
|
|
60
|
+
packages:
|
|
61
|
+
- name: sample
|
|
62
|
+
functions:
|
|
63
|
+
- name: hello
|
|
64
|
+
runtime: nodejs:18
|
|
65
|
+
web: true
|
|
66
|
+
...
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- Ensure Node.js 18+ for best compatibility with templates and runtime.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,QAAA,MAAM,aAAa,SAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAapC,QAAA,MAAM,aAAa,SAAwB,CAAC;AAuH5C,eAAe,aAAa,CAAC"}
|
package/dist/commands/create.js
CHANGED
|
@@ -20,13 +20,16 @@ import { validateFunctionName } from '../utils/validators.js';
|
|
|
20
20
|
// Promisify exec to use async/await syntax
|
|
21
21
|
const exec = util.promisify(child_process.exec);
|
|
22
22
|
const createCommand = new Command('create');
|
|
23
|
-
createCommand
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
createCommand
|
|
24
|
+
.description('create a new serverless function')
|
|
25
|
+
.option('-y, --yes', 'skip all optional prompts and use defaults')
|
|
26
|
+
.option('--packages-dir <dir>', 'specify the root packages directory')
|
|
27
|
+
.action(async (options) => {
|
|
28
|
+
const userPackagesDir = options.packagesDir ||
|
|
29
|
+
(await input({
|
|
30
|
+
message: 'Enter the root function packages directory:',
|
|
31
|
+
default: './packages',
|
|
32
|
+
}));
|
|
30
33
|
const userFuncPath = await input({
|
|
31
34
|
message: 'Enter the package/function name to create:',
|
|
32
35
|
default: 'sample/hello',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,2CAA2C;AAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAEhD,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC5C,aAAa,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/dist/utils/scaffold.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
export type LanguageChoice = 'typescript' | 'javascript';
|
|
2
|
-
/**
|
|
3
|
-
* Get the template directory for a function depending on language choice.
|
|
4
|
-
*/
|
|
5
|
-
export declare function getTemplateDir(funcLanguage: LanguageChoice): string;
|
|
6
|
-
export type ScaffoldOptions = {
|
|
7
|
-
targetDir: string;
|
|
8
|
-
funcPath: string;
|
|
9
|
-
funcLanguage: LanguageChoice;
|
|
10
|
-
};
|
|
11
|
-
/**
|
|
12
|
-
* Scaffolds a function directory by emptying target and copying template, then updating package.json name.
|
|
13
|
-
*/
|
|
14
|
-
export declare function scaffoldFunction({ targetDir, funcPath, funcLanguage, }: ScaffoldOptions): Promise<void>;
|
|
15
|
-
export type UpdateStatus = 'created-new-config' | 'added-package' | 'added-function' | 'function-exists' | 'error';
|
|
16
|
-
export type UpdateResult = {
|
|
17
|
-
status: UpdateStatus;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Update or create the project.yml configuration with the given package and function.
|
|
21
|
-
* Uses early returns for clarity. Returns a status describing the performed action.
|
|
22
|
-
*/
|
|
23
|
-
export declare function updateProjectConfig(projectYmlPath: string, pkgName: string, funcName: string): Promise<UpdateResult>;
|
|
24
|
-
//# sourceMappingURL=scaffold.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/utils/scaffold.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,YAAY,CAAC;AAEzD;;GAEG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,cAAc,GAAG,MAAM,CAOnE;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,cAAc,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,SAAS,EACT,QAAQ,EACR,YAAY,GACb,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAQjC;AAED,MAAM,MAAM,YAAY,GACpB,oBAAoB,GACpB,eAAe,GACf,gBAAgB,GAChB,iBAAiB,GACjB,OAAO,CAAC;AAEZ,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,YAAY,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,YAAY,CAAC,CA+BvB"}
|
package/dist/utils/scaffold.js
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import fs from 'fs-extra';
|
|
2
|
-
import * as path from 'node:path';
|
|
3
|
-
import { DEFAULT_RUNTIME } from '../constants.js';
|
|
4
|
-
import { DOProjectYmlSchema } from '../schemas/doProjectYml.js';
|
|
5
|
-
import YAML from 'yaml';
|
|
6
|
-
import { fileURLToPath } from 'node:url';
|
|
7
|
-
/**
|
|
8
|
-
* Get the template directory for a function depending on language choice.
|
|
9
|
-
*/
|
|
10
|
-
export function getTemplateDir(funcLanguage) {
|
|
11
|
-
return path.join(fileURLToPath(new URL('../../', import.meta.url)), 'templates', 'functions', funcLanguage);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Scaffolds a function directory by emptying target and copying template, then updating package.json name.
|
|
15
|
-
*/
|
|
16
|
-
export async function scaffoldFunction({ targetDir, funcPath, funcLanguage, }) {
|
|
17
|
-
await fs.emptyDir(targetDir);
|
|
18
|
-
const templateDir = getTemplateDir(funcLanguage);
|
|
19
|
-
await fs.copy(templateDir, targetDir);
|
|
20
|
-
const packageJsonPath = path.join(targetDir, 'package.json');
|
|
21
|
-
const packageJson = await fs.readJson(packageJsonPath);
|
|
22
|
-
await fs.writeJson(packageJsonPath, { name: `@${funcPath}`, ...packageJson }, { spaces: 2 });
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Update or create the project.yml configuration with the given package and function.
|
|
26
|
-
* Uses early returns for clarity. Returns a status describing the performed action.
|
|
27
|
-
*/
|
|
28
|
-
export async function updateProjectConfig(projectYmlPath, pkgName, funcName) {
|
|
29
|
-
try {
|
|
30
|
-
const functionObj = { name: funcName, runtime: DEFAULT_RUNTIME, web: true };
|
|
31
|
-
const exists = await fs.exists(projectYmlPath);
|
|
32
|
-
if (!exists) {
|
|
33
|
-
const initial = { packages: [{ name: pkgName, functions: [functionObj] }] };
|
|
34
|
-
await fs.writeFile(projectYmlPath, YAML.stringify(initial));
|
|
35
|
-
return { status: 'created-new-config' };
|
|
36
|
-
}
|
|
37
|
-
const parsed = DOProjectYmlSchema.parse(YAML.parse(await fs.readFile(projectYmlPath, 'utf-8')));
|
|
38
|
-
const pkg = parsed.packages.find((p) => p.name === pkgName);
|
|
39
|
-
if (!pkg) {
|
|
40
|
-
parsed.packages.push({ name: pkgName, functions: [functionObj] });
|
|
41
|
-
await fs.writeFile(projectYmlPath, YAML.stringify(parsed));
|
|
42
|
-
return { status: 'added-package' };
|
|
43
|
-
}
|
|
44
|
-
if (pkg.functions.find((f) => f.name === funcName)) {
|
|
45
|
-
return { status: 'function-exists' }; // No write needed
|
|
46
|
-
}
|
|
47
|
-
pkg.functions.push(functionObj);
|
|
48
|
-
await fs.writeFile(projectYmlPath, YAML.stringify(parsed));
|
|
49
|
-
return { status: 'added-function' };
|
|
50
|
-
}
|
|
51
|
-
catch (e) {
|
|
52
|
-
console.error(e);
|
|
53
|
-
return { status: 'error' };
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
//# sourceMappingURL=scaffold.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/utils/scaffold.ts"],"names":[],"mappings":"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"}
|