motia 0.6.3-beta.130-601955 ā 0.6.3-beta.130-426307
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/dist/cjs/cli.js +16 -40
- package/dist/cjs/create/index.d.ts +2 -2
- package/dist/cjs/create/index.js +3 -5
- package/dist/cjs/create/interactive.d.ts +2 -0
- package/dist/cjs/create/interactive.js +28 -19
- package/dist/cjs/create/pull-rules.d.ts +7 -0
- package/dist/cjs/create/pull-rules.js +28 -0
- package/dist/cjs/create/setup-template.js +5 -3
- package/dist/cjs/create/templates/index.js +1 -1
- package/dist/cjs/create/templates/index.ts +1 -1
- package/dist/cjs/cursor-rules/dot-files/.claude/CLAUDE.md +467 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/README.md +97 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/agents/code-reviewer.md +153 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/agents/debugger.md +259 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/agents/test-runner.md +268 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/add-authentication.md +491 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/ai-ml-patterns.md +748 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/authentication.md +515 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/backend-types.md +719 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/build-api.md +407 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/claude-workflows.md +1032 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/complete-backend.md +345 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/create-api.md +96 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/data-processing.md +977 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/integrate-ai.md +852 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/javascript-patterns.md +678 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/multi-language-workflow.md +756 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/multi-language.md +141 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/process-background-jobs.md +587 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/commands/process-events.md +89 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/hooks/pre-commit.sh +84 -0
- package/dist/cjs/cursor-rules/dot-files/.claude/settings.json +37 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/ai-agent-patterns.mdc +725 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/api-design-patterns.mdc +740 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/api-steps.mdc +230 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/architecture.mdc +189 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/authentication-patterns.mdc +620 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/background-job-patterns.mdc +628 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/complete-application-patterns.mdc +433 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/complete-backend-generator.mdc +415 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/cron-steps.mdc +257 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/event-steps.mdc +504 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/instructions.mdc +15 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/multi-language-workflows.mdc +1059 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/noop-steps.mdc +57 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/production-deployment.mdc +668 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/realtime-streaming.mdc +656 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/state-management.mdc +371 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/steps.mdc +373 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/testing.mdc +329 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/typescript.mdc +409 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/ui-steps.mdc +90 -0
- package/dist/cjs/cursor-rules/dot-files/.cursor/rules/workflow-patterns.mdc +938 -0
- package/dist/cjs/cursor-rules/dot-files/AGENTS.md +397 -0
- package/dist/cjs/cursor-rules/dot-files/README.md +58 -0
- package/dist/esm/cli.js +16 -40
- package/dist/esm/create/index.d.ts +2 -2
- package/dist/esm/create/index.js +3 -5
- package/dist/esm/create/interactive.d.ts +2 -0
- package/dist/esm/create/interactive.js +28 -19
- package/dist/esm/create/pull-rules.d.ts +7 -0
- package/dist/esm/create/pull-rules.js +21 -0
- package/dist/esm/create/setup-template.js +5 -3
- package/dist/esm/create/templates/index.js +1 -1
- package/dist/esm/create/templates/index.ts +1 -1
- package/dist/esm/cursor-rules/dot-files/.claude/CLAUDE.md +467 -0
- package/dist/esm/cursor-rules/dot-files/.claude/README.md +97 -0
- package/dist/esm/cursor-rules/dot-files/.claude/agents/code-reviewer.md +153 -0
- package/dist/esm/cursor-rules/dot-files/.claude/agents/debugger.md +259 -0
- package/dist/esm/cursor-rules/dot-files/.claude/agents/test-runner.md +268 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/add-authentication.md +491 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/ai-ml-patterns.md +748 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/authentication.md +515 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/backend-types.md +719 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/build-api.md +407 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/claude-workflows.md +1032 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/complete-backend.md +345 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/create-api.md +96 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/data-processing.md +977 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/integrate-ai.md +852 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/javascript-patterns.md +678 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/multi-language-workflow.md +756 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/multi-language.md +141 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/process-background-jobs.md +587 -0
- package/dist/esm/cursor-rules/dot-files/.claude/commands/process-events.md +89 -0
- package/dist/esm/cursor-rules/dot-files/.claude/hooks/pre-commit.sh +84 -0
- package/dist/esm/cursor-rules/dot-files/.claude/settings.json +37 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/ai-agent-patterns.mdc +725 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/api-design-patterns.mdc +740 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/api-steps.mdc +230 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/architecture.mdc +189 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/authentication-patterns.mdc +620 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/background-job-patterns.mdc +628 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/complete-application-patterns.mdc +433 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/complete-backend-generator.mdc +415 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/cron-steps.mdc +257 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/event-steps.mdc +504 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/instructions.mdc +15 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/multi-language-workflows.mdc +1059 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/noop-steps.mdc +57 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/production-deployment.mdc +668 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/realtime-streaming.mdc +656 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/state-management.mdc +371 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/steps.mdc +373 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/testing.mdc +329 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/typescript.mdc +409 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/ui-steps.mdc +90 -0
- package/dist/esm/cursor-rules/dot-files/.cursor/rules/workflow-patterns.mdc +938 -0
- package/dist/esm/cursor-rules/dot-files/AGENTS.md +397 -0
- package/dist/esm/cursor-rules/dot-files/README.md +58 -0
- package/dist/types/create/index.d.ts +2 -2
- package/dist/types/create/interactive.d.ts +2 -0
- package/dist/types/create/pull-rules.d.ts +7 -0
- package/package.json +4 -4
- package/dist/cjs/cursor-rules/index.d.ts +0 -8
- package/dist/cjs/cursor-rules/index.js +0 -269
- package/dist/esm/cursor-rules/index.d.ts +0 -8
- package/dist/esm/cursor-rules/index.js +0 -263
- package/dist/types/cursor-rules/index.d.ts +0 -8
- /package/dist/cjs/create/templates/{typescript ā nodejs}/motia-workbench.json +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/services/pet-store.ts.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/services/types.ts.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/steps/api.step.ts-features.json.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/steps/api.step.ts.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/steps/notification.step.ts.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/steps/process-food-order.step.ts-features.json.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/steps/process-food-order.step.ts.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/steps/state-audit-cron.step.ts-features.json.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/steps/state-audit-cron.step.ts.txt +0 -0
- /package/dist/cjs/create/templates/{typescript ā nodejs}/tutorial.tsx.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/motia-workbench.json +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/services/pet-store.ts.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/services/types.ts.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/steps/api.step.ts-features.json.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/steps/api.step.ts.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/steps/notification.step.ts.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/steps/process-food-order.step.ts-features.json.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/steps/process-food-order.step.ts.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/steps/state-audit-cron.step.ts-features.json.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/steps/state-audit-cron.step.ts.txt +0 -0
- /package/dist/esm/create/templates/{typescript ā nodejs}/tutorial.tsx.txt +0 -0
package/dist/cjs/cli.js
CHANGED
|
@@ -24,10 +24,25 @@ commander_1.program
|
|
|
24
24
|
.command('create')
|
|
25
25
|
.description('Create a new motia project')
|
|
26
26
|
.option('-n, --name <project name>', 'The name for your project, used to create a directory, use ./ or . to create it under the existing directory')
|
|
27
|
+
.option('-t, --template <template>', 'The template to use for your project')
|
|
27
28
|
.option('-i, --interactive', 'Use interactive prompts to create project') // it's default
|
|
29
|
+
.option('-c, --confirm', 'Confirm the project creation', false)
|
|
28
30
|
.action((0, config_utils_1.handler)(async (arg, context) => {
|
|
29
31
|
const { createInteractive } = require('./create/interactive');
|
|
30
|
-
await createInteractive({
|
|
32
|
+
await createInteractive({
|
|
33
|
+
name: arg.name,
|
|
34
|
+
template: arg.template,
|
|
35
|
+
confirm: !!arg.confirm,
|
|
36
|
+
}, context);
|
|
37
|
+
}));
|
|
38
|
+
commander_1.program
|
|
39
|
+
.command('rules')
|
|
40
|
+
.command('pull')
|
|
41
|
+
.description('Install essential AI development guides (AGENTS.md, CLAUDE.md) and optional Cursor IDE rules')
|
|
42
|
+
.option('-f, --force', 'Overwrite existing files')
|
|
43
|
+
.action((0, config_utils_1.handler)(async (arg, context) => {
|
|
44
|
+
const { pullRules } = require('./create/pull-rules');
|
|
45
|
+
await pullRules({ force: arg.force, rootDir: process.cwd() }, context);
|
|
31
46
|
}));
|
|
32
47
|
commander_1.program
|
|
33
48
|
.command('generate-types')
|
|
@@ -149,44 +164,5 @@ docker
|
|
|
149
164
|
await build(arg.projectName);
|
|
150
165
|
process.exit(0);
|
|
151
166
|
});
|
|
152
|
-
const rules = commander_1.program
|
|
153
|
-
.command('rules')
|
|
154
|
-
.description('Manage Motia AI development guides (AGENTS.md, CLAUDE.md) and IDE-specific rules');
|
|
155
|
-
rules
|
|
156
|
-
.command('pull')
|
|
157
|
-
.description('Install essential AI development guides (AGENTS.md, CLAUDE.md) and optional Cursor IDE rules')
|
|
158
|
-
.option('-f, --force', 'Overwrite existing files')
|
|
159
|
-
.action(async (options) => {
|
|
160
|
-
const { handleAIGuides } = require('./cursor-rules');
|
|
161
|
-
await handleAIGuides({ force: options.force });
|
|
162
|
-
});
|
|
163
|
-
rules
|
|
164
|
-
.command('list')
|
|
165
|
-
.description('List available AI development guides and IDE rules')
|
|
166
|
-
.action(async () => {
|
|
167
|
-
const { handleAIGuides } = require('./cursor-rules');
|
|
168
|
-
await handleAIGuides({ list: true });
|
|
169
|
-
});
|
|
170
|
-
rules
|
|
171
|
-
.command('show <rule-name>')
|
|
172
|
-
.description('Show content of a specific AI guide or IDE rule')
|
|
173
|
-
.action(async (ruleName) => {
|
|
174
|
-
const { handleAIGuides } = require('./cursor-rules');
|
|
175
|
-
await handleAIGuides({ show: ruleName });
|
|
176
|
-
});
|
|
177
|
-
rules
|
|
178
|
-
.command('remove')
|
|
179
|
-
.description('Remove AI development guides and IDE rules from your project')
|
|
180
|
-
.action(async () => {
|
|
181
|
-
const { handleAIGuides } = require('./cursor-rules');
|
|
182
|
-
await handleAIGuides({ remove: true });
|
|
183
|
-
});
|
|
184
|
-
rules
|
|
185
|
-
.command('version')
|
|
186
|
-
.description('Show AI development guides version')
|
|
187
|
-
.action(async () => {
|
|
188
|
-
const { handleAIGuides } = require('./cursor-rules');
|
|
189
|
-
await handleAIGuides({ version: true });
|
|
190
|
-
});
|
|
191
167
|
commander_1.program.version(version_1.version, '-V, --version', 'Output the current version');
|
|
192
168
|
commander_1.program.parse(process.argv);
|
package/dist/cjs/create/index.js
CHANGED
|
@@ -12,6 +12,7 @@ const generate_types_1 = require("../generate-types");
|
|
|
12
12
|
const version_1 = require("../version");
|
|
13
13
|
const setup_template_1 = require("./setup-template");
|
|
14
14
|
const utils_1 = require("./utils");
|
|
15
|
+
const pull_rules_1 = require("./pull-rules");
|
|
15
16
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
16
17
|
require('ts-node').register({
|
|
17
18
|
transpileOnly: true,
|
|
@@ -170,11 +171,8 @@ const create = async ({ projectName, template, cursorEnabled, context }) => {
|
|
|
170
171
|
fs_1.default.writeFileSync(path_1.default.join(rootDir, '.gitignore'), gitignoreContent);
|
|
171
172
|
context.log('gitignore-created', (message) => message.tag('success').append('File').append('.gitignore', 'cyan').append('has been created.'));
|
|
172
173
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
if (cursorEnabled && !(0, utils_1.checkIfDirectoryExists)(cursorTargetDir)) {
|
|
176
|
-
fs_1.default.cpSync(cursorTemplateDir, cursorTargetDir, { recursive: true });
|
|
177
|
-
context.log('cursor-folder-created', (message) => message.tag('success').append('Folder').append('.cursor', 'cyan').append('has been created.'));
|
|
174
|
+
if (cursorEnabled) {
|
|
175
|
+
await (0, pull_rules_1.pullRules)({ force: true, rootDir }, context);
|
|
178
176
|
}
|
|
179
177
|
if (template) {
|
|
180
178
|
await (0, setup_template_1.setupTemplate)(template, rootDir, context);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { CliContext } from '../cloud/config-utils';
|
|
2
2
|
interface CreateInteractiveArgs {
|
|
3
3
|
name?: string;
|
|
4
|
+
template?: string;
|
|
5
|
+
confirm?: boolean;
|
|
4
6
|
}
|
|
5
7
|
export declare const createInteractive: (args: CreateInteractiveArgs, context: CliContext) => Promise<void>;
|
|
6
8
|
export {};
|
|
@@ -8,27 +8,30 @@ const inquirer_1 = __importDefault(require("inquirer"));
|
|
|
8
8
|
const colors_1 = __importDefault(require("colors"));
|
|
9
9
|
const index_1 = require("./index");
|
|
10
10
|
const choices = {
|
|
11
|
-
|
|
11
|
+
nodejs: 'Base (TypeScript)',
|
|
12
12
|
python: 'Base (Python)',
|
|
13
13
|
};
|
|
14
14
|
const createInteractive = async (args, context) => {
|
|
15
15
|
context.log('welcome', (message) => message.append('\nš ' + colors_1.default.bold('Welcome to Motia Project Creator!')));
|
|
16
|
-
const questions = [
|
|
17
|
-
|
|
16
|
+
const questions = [];
|
|
17
|
+
let name = args.name;
|
|
18
|
+
let template = args.template;
|
|
19
|
+
if (!args.template) {
|
|
20
|
+
questions.push({
|
|
18
21
|
type: 'list',
|
|
19
22
|
name: 'template',
|
|
20
|
-
message: '
|
|
23
|
+
message: 'What template do you want to use? (Use arrow keys)',
|
|
21
24
|
choices: Object.keys(choices).map((key) => ({
|
|
22
25
|
name: choices[key],
|
|
23
26
|
value: key,
|
|
24
27
|
})),
|
|
25
|
-
}
|
|
26
|
-
|
|
28
|
+
});
|
|
29
|
+
}
|
|
27
30
|
if (!args.name) {
|
|
28
31
|
questions.push({
|
|
29
32
|
type: 'input',
|
|
30
33
|
name: 'projectName',
|
|
31
|
-
message: '
|
|
34
|
+
message: 'Project name (leave blank to use current folder):',
|
|
32
35
|
validate: (input) => {
|
|
33
36
|
if (input && input.trim().length > 0) {
|
|
34
37
|
if (!/^[a-zA-Z0-9][a-zA-Z0-9-_]*$/.test(input.trim())) {
|
|
@@ -40,21 +43,27 @@ const createInteractive = async (args, context) => {
|
|
|
40
43
|
filter: (input) => input.trim(),
|
|
41
44
|
});
|
|
42
45
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
46
|
+
if (!args.confirm) {
|
|
47
|
+
questions.push({
|
|
48
|
+
type: 'confirm',
|
|
49
|
+
name: 'proceed',
|
|
50
|
+
message: 'Proceed? [Y/n]:',
|
|
51
|
+
default: true,
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
if (questions.length > 0) {
|
|
55
|
+
const answers = await inquirer_1.default.prompt(questions);
|
|
56
|
+
if (!args.confirm && !answers.proceed) {
|
|
57
|
+
context.log('cancelled', (message) => message.tag('info').append('\nā Project creation cancelled.'));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
name = args.name || answers.projectName;
|
|
61
|
+
template = args.template || answers.template;
|
|
53
62
|
}
|
|
54
63
|
context.log('creating', (message) => message.append('\nšØ Creating your Motia project...\n'));
|
|
55
64
|
await (0, index_1.create)({
|
|
56
|
-
projectName:
|
|
57
|
-
template:
|
|
65
|
+
projectName: name || '.',
|
|
66
|
+
template: template || 'nodejs',
|
|
58
67
|
cursorEnabled: true, // Default to true for cursor rules
|
|
59
68
|
context,
|
|
60
69
|
});
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.pullRules = void 0;
|
|
7
|
+
const path_1 = __importDefault(require("path"));
|
|
8
|
+
const fs_1 = __importDefault(require("fs"));
|
|
9
|
+
const pullRules = async (args, context) => {
|
|
10
|
+
const cursorTemplateDir = path_1.default.join(__dirname, '..', 'cursor-rules', 'dot-files');
|
|
11
|
+
const files = fs_1.default.readdirSync(cursorTemplateDir);
|
|
12
|
+
for (const file of files) {
|
|
13
|
+
const targetFile = path_1.default.join(args.rootDir, file);
|
|
14
|
+
const isFolder = fs_1.default.statSync(path_1.default.join(cursorTemplateDir, file)).isDirectory();
|
|
15
|
+
const type = isFolder ? 'Folder' : 'File';
|
|
16
|
+
if (args.force || !fs_1.default.existsSync(targetFile)) {
|
|
17
|
+
fs_1.default.cpSync(path_1.default.join(cursorTemplateDir, file), targetFile, {
|
|
18
|
+
recursive: isFolder,
|
|
19
|
+
force: true,
|
|
20
|
+
});
|
|
21
|
+
context.log(`${file}-created`, (message) => message.tag('success').append(type).append(file, 'cyan').append('has been created.'));
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
context.log(`${file}-skipped`, (message) => message.tag('warning').append(type).append(file, 'cyan').append('already exists, skipping...'));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.pullRules = pullRules;
|
|
@@ -4,9 +4,11 @@ exports.setupTemplate = void 0;
|
|
|
4
4
|
const templates_1 = require("./templates");
|
|
5
5
|
const setupTemplate = async (template, rootDir, context) => {
|
|
6
6
|
if (!template || !(template in templates_1.templates)) {
|
|
7
|
-
context.log('template-not-found', (message) => message
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
context.log('template-not-found', (message) => message
|
|
8
|
+
.tag('failed')
|
|
9
|
+
.append(`Template ${template} not found, please use one of the following:`)
|
|
10
|
+
.append(Object.keys(templates_1.templates).join(', '), 'gray'));
|
|
11
|
+
process.exit(1);
|
|
10
12
|
}
|
|
11
13
|
await templates_1.templates[template](rootDir, context);
|
|
12
14
|
};
|
|
@@ -3,6 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.templates = void 0;
|
|
4
4
|
const generate_1 = require("./generate");
|
|
5
5
|
exports.templates = {
|
|
6
|
-
|
|
6
|
+
nodejs: (0, generate_1.generateTemplateSteps)('nodejs'),
|
|
7
7
|
python: (0, generate_1.generateTemplateSteps)('python'),
|
|
8
8
|
};
|