@flarum/cli 2.0.0-beta.11 → 2.0.0-beta.14
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 +176 -43
- package/boilerplate/skeleton/extension/.gitattributes +1 -0
- package/boilerplate/skeleton/extension/.github/workflows/backend.yml +1 -1
- package/boilerplate/skeleton/extension/.github/workflows/frontend.yml +3 -1
- package/boilerplate/skeleton/extension/LICENSE.md +1 -1
- package/boilerplate/skeleton/extension/composer.json +4 -2
- package/boilerplate/skeleton/extension/extend.php +2 -2
- package/boilerplate/skeleton/extension/js/package.json +4 -1
- package/boilerplate/skeleton/extension/tests/phpunit.integration.xml +1 -0
- package/lib/base-command.d.ts +3 -1
- package/lib/base-command.js +27 -14
- package/lib/boilersmith/io.d.ts +28 -8
- package/lib/boilersmith/io.js +4 -2
- package/lib/boilersmith/paths.d.ts +2 -2
- package/lib/boilersmith/paths.js +2 -2
- package/lib/boilersmith/scaffolding/audit-step-factory.js +10 -10
- package/lib/boilersmith/scaffolding/infra-step-factory.js +2 -2
- package/lib/boilersmith/scaffolding/init-step-factory.js +5 -5
- package/lib/boilersmith/scaffolding/module.d.ts +19 -8
- package/lib/boilersmith/scaffolding/module.js +30 -17
- package/lib/boilersmith/scaffolding/scaffolder.d.ts +4 -1
- package/lib/boilersmith/scaffolding/scaffolder.js +29 -29
- package/lib/boilersmith/scaffolding/template-param.d.ts +1 -1
- package/lib/boilersmith/scaffolding/template-param.js +2 -2
- package/lib/boilersmith/step-manager.d.ts +0 -1
- package/lib/boilersmith/step-manager.js +10 -20
- package/lib/boilersmith/steps/stub-base.js +1 -1
- package/lib/boilersmith/utils/clone-and-fill.js +1 -1
- package/lib/boilersmith/utils/commit-async.d.ts +2 -0
- package/lib/boilersmith/utils/commit-async.js +15 -0
- package/lib/commands/audit/infra.d.ts +1 -1
- package/lib/commands/audit/infra.js +30 -8
- package/lib/commands/infra.d.ts +2 -2
- package/lib/commands/infra.js +18 -12
- package/lib/commands/init.d.ts +1 -1
- package/lib/commands/init.js +4 -2
- package/lib/commands/make/backend/api-controller.js +1 -2
- package/lib/commands/make/backend/api-serializer-attributes.js +1 -2
- package/lib/commands/make/backend/command.js +1 -2
- package/lib/commands/make/backend/event-listener.js +1 -2
- package/lib/commands/make/backend/handler.js +2 -5
- package/lib/commands/make/backend/integration-test.js +2 -4
- package/lib/commands/make/backend/migration.js +1 -2
- package/lib/commands/make/backend/model.js +1 -2
- package/lib/commands/make/backend/policy.js +1 -2
- package/lib/commands/make/backend/route.js +1 -2
- package/lib/commands/make/backend/service-provider.js +1 -2
- package/lib/commands/make/frontend/model.js +2 -5
- package/lib/commands/monorepo/create.d.ts +15 -0
- package/lib/commands/monorepo/create.js +20 -0
- package/lib/commands/update/js-imports.js +1 -2
- package/lib/help.js +1 -1
- package/lib/steps/gen-ext-scaffolder.d.ts +2 -2
- package/lib/steps/gen-ext-scaffolder.js +144 -46
- package/lib/steps/js/base.js +2 -4
- package/lib/steps/js/model.js +4 -4
- package/lib/steps/misc/git.d.ts +1 -1
- package/lib/steps/misc/git.js +2 -2
- package/lib/steps/misc/npm.d.ts +11 -0
- package/lib/steps/misc/npm.js +19 -0
- package/lib/steps/monorepo/create.d.ts +17 -0
- package/lib/steps/monorepo/create.js +181 -0
- package/lib/steps/stubs/backend/api-controller.d.ts +1 -1
- package/lib/steps/stubs/backend/api-controller.js +3 -0
- package/lib/steps/stubs/backend/api-serializer.d.ts +1 -1
- package/lib/steps/stubs/backend/api-serializer.js +3 -0
- package/lib/steps/stubs/backend/command.d.ts +0 -5
- package/lib/steps/stubs/backend/command.js +1 -0
- package/lib/steps/stubs/backend/event-listener.d.ts +1 -1
- package/lib/steps/stubs/backend/event-listener.js +2 -0
- package/lib/steps/stubs/backend/handler-command.d.ts +1 -1
- package/lib/steps/stubs/backend/handler-command.js +1 -0
- package/lib/steps/stubs/backend/handler.d.ts +1 -1
- package/lib/steps/stubs/backend/handler.js +4 -0
- package/lib/steps/stubs/backend/integration-test.d.ts +1 -1
- package/lib/steps/stubs/backend/integration-test.js +2 -0
- package/lib/steps/stubs/backend/job.d.ts +1 -1
- package/lib/steps/stubs/backend/job.js +1 -0
- package/lib/steps/stubs/backend/migration.js +4 -1
- package/lib/steps/stubs/backend/model.d.ts +1 -1
- package/lib/steps/stubs/backend/model.js +1 -0
- package/lib/steps/stubs/backend/policy.d.ts +1 -1
- package/lib/steps/stubs/backend/policy.js +2 -0
- package/lib/steps/stubs/backend/repository.d.ts +1 -1
- package/lib/steps/stubs/backend/repository.js +2 -0
- package/lib/steps/stubs/backend/service-provider.d.ts +1 -1
- package/lib/steps/stubs/backend/service-provider.js +1 -0
- package/lib/steps/stubs/backend/validator.d.ts +1 -1
- package/lib/steps/stubs/backend/validator.js +1 -0
- package/lib/steps/stubs/flarum-base.js +1 -1
- package/lib/steps/stubs/frontend/component.d.ts +0 -5
- package/lib/steps/stubs/frontend/component.js +1 -0
- package/lib/steps/stubs/frontend/modal.d.ts +0 -5
- package/lib/steps/stubs/frontend/modal.js +1 -0
- package/lib/steps/stubs/frontend/model.d.ts +0 -5
- package/lib/steps/stubs/frontend/model.js +1 -0
- package/lib/steps/stubs/js-base.js +8 -5
- package/lib/steps/stubs/php-base.js +10 -8
- package/lib/steps/update/js-imports.js +8 -2
- package/lib/utils/composer.d.ts +1 -0
- package/lib/utils/migration.js +3 -1
- package/lib/utils/monorepo.d.ts +24 -0
- package/lib/utils/monorepo.js +24 -0
- package/lib/utils/validation.d.ts +2 -0
- package/lib/utils/validation.js +6 -0
- package/oclif.manifest.json +1 -1
- package/package.json +10 -5
- package/php-subsystem/composer.json +9 -9
- package/php-subsystem/composer.lock +64 -71
- package/php-subsystem/vendor/composer/installed.json +54 -61
- package/php-subsystem/vendor/nikic/php-parser/README.md +55 -59
- package/php-subsystem/vendor/nikic/php-parser/composer.json +39 -39
- package/php-subsystem/vendor/nikic/php-parser/grammar/README.md +17 -20
|
@@ -4,16 +4,38 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const base_command_1 = (0, tslib_1.__importDefault)(require("../../base-command"));
|
|
5
5
|
const gen_ext_scaffolder_1 = require("../../steps/gen-ext-scaffolder");
|
|
6
6
|
const core_1 = require("@oclif/core");
|
|
7
|
+
const yarn_1 = require("../../steps/misc/yarn");
|
|
8
|
+
const composer_1 = require("../../steps/misc/composer");
|
|
9
|
+
const npm_1 = require("../../steps/misc/npm");
|
|
7
10
|
class AuditInfra extends base_command_1.default {
|
|
8
|
-
steps(stepManager) {
|
|
11
|
+
steps(stepManager, extRoot) {
|
|
9
12
|
this.dry = !this.flags.fix;
|
|
10
|
-
const mapPaths = this.flags.monorepo
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
const mapPaths = this.flags.monorepo
|
|
14
|
+
? this.monorepoPaths({
|
|
15
|
+
includeCore: true,
|
|
16
|
+
includeExtensions: true,
|
|
17
|
+
includePhpPackages: false,
|
|
18
|
+
includeJSPackages: false,
|
|
19
|
+
})
|
|
20
|
+
: [];
|
|
21
|
+
stepManager.namedStep('audit', (0, gen_ext_scaffolder_1.genExtScaffolder)().genAuditStep(!this.flags.fix), {}, [], {}, mapPaths);
|
|
22
|
+
if (!this.flags.monorepo && !this.dry) {
|
|
23
|
+
const packageManager = this.jsPackageManager(extRoot);
|
|
24
|
+
stepManager.step(packageManager === 'npm' ? new npm_1.NpmInstall() : new yarn_1.YarnInstall(), { optional: true, confirmationMessage: `Run \`${packageManager !== null && packageManager !== void 0 ? packageManager : 'yarn'}\`? (recommended)`, default: true }, [
|
|
25
|
+
{
|
|
26
|
+
sourceStep: 'audit',
|
|
27
|
+
exposedName: '__succeeded',
|
|
28
|
+
dontRunIfFalsy: true,
|
|
29
|
+
},
|
|
30
|
+
]);
|
|
31
|
+
stepManager.step(new composer_1.ComposerInstall(), { optional: true, confirmationMessage: 'Run `composer update`? (recommended)', default: true }, [
|
|
32
|
+
{
|
|
33
|
+
sourceStep: 'audit',
|
|
34
|
+
exposedName: '__succeeded',
|
|
35
|
+
dontRunIfFalsy: true,
|
|
36
|
+
},
|
|
37
|
+
]);
|
|
38
|
+
}
|
|
17
39
|
return stepManager;
|
|
18
40
|
}
|
|
19
41
|
async additionalPreRunChecks(extRoot) {
|
package/lib/commands/infra.d.ts
CHANGED
|
@@ -13,8 +13,8 @@ export default class Infra extends BaseCommand {
|
|
|
13
13
|
name: string;
|
|
14
14
|
description: string;
|
|
15
15
|
required: boolean;
|
|
16
|
-
options: ("core" | "icon" | "
|
|
16
|
+
options: ("core" | "js" | "icon" | "admin" | "forum" | "jsCommon" | "css" | "locale" | "gitConf" | "githubActions" | "prettier" | "typescript" | "bundlewatch" | "backendTesting" | "editorConfig" | "styleci")[];
|
|
17
17
|
})[];
|
|
18
|
-
protected steps(stepManager: StepManager<FlarumProviders
|
|
18
|
+
protected steps(stepManager: StepManager<FlarumProviders>, extRoot: string): StepManager<FlarumProviders>;
|
|
19
19
|
protected additionalPreRunChecks(extRoot: string): Promise<void>;
|
|
20
20
|
}
|
package/lib/commands/infra.js
CHANGED
|
@@ -4,23 +4,26 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const composer_1 = require("../steps/misc/composer");
|
|
5
5
|
const base_command_1 = (0, tslib_1.__importDefault)(require("../base-command"));
|
|
6
6
|
const gen_ext_scaffolder_1 = require("../steps/gen-ext-scaffolder");
|
|
7
|
+
const npm_1 = require("../steps/misc/npm");
|
|
7
8
|
const yarn_1 = require("../steps/misc/yarn");
|
|
8
9
|
const core_1 = require("@oclif/core");
|
|
9
10
|
class Infra extends base_command_1.default {
|
|
10
|
-
steps(stepManager) {
|
|
11
|
+
steps(stepManager, extRoot) {
|
|
11
12
|
const module = this.args.module;
|
|
12
|
-
const mapPaths = this.flags.monorepo
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
13
|
+
const mapPaths = this.flags.monorepo
|
|
14
|
+
? this.monorepoPaths({
|
|
15
|
+
includeCore: true,
|
|
16
|
+
includeExtensions: true,
|
|
17
|
+
includePhpPackages: false,
|
|
18
|
+
includeJSPackages: false,
|
|
19
|
+
})
|
|
20
|
+
: [];
|
|
21
|
+
stepManager.namedStep('infra', (0, gen_ext_scaffolder_1.genExtScaffolder)().genInfraStep(this.args.module), {}, [], {}, mapPaths);
|
|
20
22
|
const JS_MODULES = ['js', 'prettier', 'typescript'];
|
|
21
23
|
const PHP_MODULES = ['backendTesting'];
|
|
24
|
+
const packageManager = this.jsPackageManager(extRoot);
|
|
22
25
|
if (!this.flags.monorepo && JS_MODULES.includes(module)) {
|
|
23
|
-
stepManager.step(new yarn_1.YarnInstall(), { optional: true, confirmationMessage:
|
|
26
|
+
stepManager.step(packageManager === 'npm' ? new npm_1.NpmInstall() : new yarn_1.YarnInstall(), { optional: true, confirmationMessage: `Run \`${packageManager !== null && packageManager !== void 0 ? packageManager : 'yarn'}\`? (recommended)`, default: true }, [
|
|
24
27
|
{
|
|
25
28
|
sourceStep: 'infra',
|
|
26
29
|
exposedName: '__succeeded',
|
|
@@ -47,9 +50,12 @@ class Infra extends base_command_1.default {
|
|
|
47
50
|
exports.default = Infra;
|
|
48
51
|
Infra.description = 'Add/Update infrastructure to the latest scaffolding for some module in an extension. For example, you can use this to add/update TypeScript, backend testing, GitHub Actions, and other features.';
|
|
49
52
|
Infra.flags = Object.assign({ monorepo: core_1.Flags.boolean({ char: 'm', default: false }) }, base_command_1.default.flags);
|
|
50
|
-
Infra.args = [
|
|
53
|
+
Infra.args = [
|
|
54
|
+
{
|
|
51
55
|
name: 'module',
|
|
52
56
|
description: 'The name of the module to enable/update.',
|
|
53
57
|
required: true,
|
|
54
58
|
options: [...gen_ext_scaffolder_1.EXTENSION_MODULES],
|
|
55
|
-
},
|
|
59
|
+
},
|
|
60
|
+
...base_command_1.default.args,
|
|
61
|
+
];
|
package/lib/commands/init.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export default class Init extends BaseCommand {
|
|
|
11
11
|
description: string;
|
|
12
12
|
}[];
|
|
13
13
|
protected requireExistingExtension: boolean;
|
|
14
|
-
protected steps(stepManager: StepManager<FlarumProviders
|
|
14
|
+
protected steps(stepManager: StepManager<FlarumProviders>, extRoot: string): StepManager<FlarumProviders>;
|
|
15
15
|
protected welcomeMessage(): string;
|
|
16
16
|
protected goodbyeMessage(): string;
|
|
17
17
|
protected additionalPreRunChecks(extRoot: string): Promise<void>;
|
package/lib/commands/init.js
CHANGED
|
@@ -7,17 +7,19 @@ const base_command_1 = (0, tslib_1.__importDefault)(require("../base-command"));
|
|
|
7
7
|
const yosay_1 = (0, tslib_1.__importDefault)(require("yosay"));
|
|
8
8
|
const gen_ext_scaffolder_1 = require("../steps/gen-ext-scaffolder");
|
|
9
9
|
const git_1 = require("../steps/misc/git");
|
|
10
|
+
const npm_1 = require("../steps/misc/npm");
|
|
10
11
|
class Init extends base_command_1.default {
|
|
11
12
|
constructor() {
|
|
12
13
|
super(...arguments);
|
|
13
14
|
this.requireExistingExtension = false;
|
|
14
15
|
}
|
|
15
|
-
steps(stepManager) {
|
|
16
|
+
steps(stepManager, extRoot) {
|
|
17
|
+
const packageManager = this.jsPackageManager(extRoot);
|
|
16
18
|
return stepManager
|
|
17
19
|
.namedStep('gitInit', new git_1.GitInit(), { optional: true, confirmationMessage: 'Run `git init`? (recommended)', default: true })
|
|
18
20
|
.namedStep('skeleton', (0, gen_ext_scaffolder_1.genExtScaffolder)().genInitStep())
|
|
19
21
|
.step(new composer_1.ComposerInstall(), { optional: true, confirmationMessage: 'Run `composer install`? (recommended)', default: true })
|
|
20
|
-
.step(new yarn_1.YarnInstall(), { optional: true, confirmationMessage:
|
|
22
|
+
.step(packageManager === 'npm' ? new npm_1.NpmInstall() : new yarn_1.YarnInstall(), { optional: true, confirmationMessage: `Run \`${packageManager !== null && packageManager !== void 0 ? packageManager : 'yarn'}\`? (recommended)`, default: true }, [
|
|
21
23
|
{
|
|
22
24
|
sourceStep: 'skeleton',
|
|
23
25
|
exposedName: 'modules.js',
|
|
@@ -7,8 +7,7 @@ const route_1 = require("../../../steps/extenders/route");
|
|
|
7
7
|
const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
|
|
8
8
|
class ApiController extends base_command_1.default {
|
|
9
9
|
steps(stepManager) {
|
|
10
|
-
return stepManager
|
|
11
|
-
.atomicGroup(stepManager => {
|
|
10
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
12
11
|
stepManager
|
|
13
12
|
.namedStep('apiController', new api_controller_1.GenerateApiControllerStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
|
|
14
13
|
.step(new route_1.GenerateRoutesExtender(), { optional: true, confirmationMessage: 'Generate corresponding extender?', default: true }, [
|
|
@@ -5,8 +5,7 @@ const base_command_1 = (0, tslib_1.__importDefault)(require("../../../base-comma
|
|
|
5
5
|
const api_serializer_1 = require("../../../steps/extenders/api-serializer");
|
|
6
6
|
class ApiSerializerAttribute extends base_command_1.default {
|
|
7
7
|
steps(stepManager) {
|
|
8
|
-
return stepManager
|
|
9
|
-
.step(new api_serializer_1.GenerateApiSerializerAttributesExtender());
|
|
8
|
+
return stepManager.step(new api_serializer_1.GenerateApiSerializerAttributesExtender());
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
exports.default = ApiSerializerAttribute;
|
|
@@ -7,8 +7,7 @@ const console_command_1 = require("../../../steps/extenders/console-command");
|
|
|
7
7
|
const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
|
|
8
8
|
class Command extends base_command_1.default {
|
|
9
9
|
steps(stepManager) {
|
|
10
|
-
return stepManager
|
|
11
|
-
.atomicGroup(stepManager => {
|
|
10
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
12
11
|
stepManager
|
|
13
12
|
.namedStep('command', new command_1.GenerateCommandStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
|
|
14
13
|
.step(new console_command_1.GenerateConsoleCommandExtender(), { optional: true, confirmationMessage: 'Generate corresponding extender?', default: true }, [
|
|
@@ -7,8 +7,7 @@ const event_1 = require("../../../steps/extenders/event");
|
|
|
7
7
|
const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
|
|
8
8
|
class EventListener extends base_command_1.default {
|
|
9
9
|
steps(stepManager) {
|
|
10
|
-
return stepManager
|
|
11
|
-
.atomicGroup(stepManager => {
|
|
10
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
12
11
|
stepManager
|
|
13
12
|
.namedStep('listener', new event_listener_1.GenerateEventListenerStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
|
|
14
13
|
.step(new event_1.GenerateEventListenerExtender(), { optional: true, confirmationMessage: 'Generate corresponding extender?', default: true }, [
|
|
@@ -7,11 +7,8 @@ const handler_1 = require("../../../steps/stubs/backend/handler");
|
|
|
7
7
|
const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
|
|
8
8
|
class ApiController extends base_command_1.default {
|
|
9
9
|
steps(stepManager) {
|
|
10
|
-
return stepManager
|
|
11
|
-
.
|
|
12
|
-
stepManager
|
|
13
|
-
.namedStep('handlerCommand', new handler_command_1.GenerateHandlerCommandStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
|
|
14
|
-
.step(new handler_1.GenerateHandlerStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()), {}, [
|
|
10
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
11
|
+
stepManager.namedStep('handlerCommand', new handler_command_1.GenerateHandlerCommandStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)())).step(new handler_1.GenerateHandlerStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()), {}, [
|
|
15
12
|
{
|
|
16
13
|
sourceStep: 'handlerCommand',
|
|
17
14
|
exposedName: 'className',
|
|
@@ -6,10 +6,8 @@ const base_command_1 = (0, tslib_1.__importDefault)(require("../../../base-comma
|
|
|
6
6
|
const integration_test_1 = require("../../../steps/stubs/backend/integration-test");
|
|
7
7
|
class IntegrationTest extends base_command_1.default {
|
|
8
8
|
steps(stepManager) {
|
|
9
|
-
return stepManager
|
|
10
|
-
.
|
|
11
|
-
stepManager
|
|
12
|
-
.namedStep('test', new integration_test_1.GenerateIntegrationTestStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()));
|
|
9
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
10
|
+
stepManager.namedStep('test', new integration_test_1.GenerateIntegrationTestStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()));
|
|
13
11
|
});
|
|
14
12
|
}
|
|
15
13
|
}
|
|
@@ -6,8 +6,7 @@ const base_command_1 = (0, tslib_1.__importDefault)(require("../../../base-comma
|
|
|
6
6
|
const migration_1 = require("../../../steps/stubs/backend/migration");
|
|
7
7
|
class Migration extends base_command_1.default {
|
|
8
8
|
steps(stepManager) {
|
|
9
|
-
return stepManager
|
|
10
|
-
.step(new migration_1.GenerateMigrationStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()));
|
|
9
|
+
return stepManager.step(new migration_1.GenerateMigrationStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()));
|
|
11
10
|
}
|
|
12
11
|
}
|
|
13
12
|
exports.default = Migration;
|
|
@@ -18,8 +18,7 @@ const route_1 = require("../../../steps/extenders/route");
|
|
|
18
18
|
const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
|
|
19
19
|
class Model extends base_command_1.default {
|
|
20
20
|
steps(stepManager) {
|
|
21
|
-
return stepManager
|
|
22
|
-
.atomicGroup(stepManager => {
|
|
21
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
23
22
|
stepManager
|
|
24
23
|
.namedStep('model', new model_1.GenerateModelStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
|
|
25
24
|
.step(new migration_1.GenerateMigrationStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()), { optional: true, confirmationMessage: 'Generate corresponding Migration?', default: true }, [
|
|
@@ -7,8 +7,7 @@ const policy_2 = require("../../../steps/extenders/policy");
|
|
|
7
7
|
const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
|
|
8
8
|
class Policy extends base_command_1.default {
|
|
9
9
|
steps(stepManager) {
|
|
10
|
-
return stepManager
|
|
11
|
-
.atomicGroup(stepManager => {
|
|
10
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
12
11
|
stepManager
|
|
13
12
|
.namedStep('policy', new policy_1.GeneratePolicyStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
|
|
14
13
|
.step(new policy_2.GeneratePolicyExtender(), { optional: true, confirmationMessage: 'Generate corresponding extender?', default: true }, [
|
|
@@ -5,8 +5,7 @@ const base_command_1 = (0, tslib_1.__importDefault)(require("../../../base-comma
|
|
|
5
5
|
const route_1 = require("../../../steps/extenders/route");
|
|
6
6
|
class Route extends base_command_1.default {
|
|
7
7
|
steps(stepManager) {
|
|
8
|
-
return stepManager
|
|
9
|
-
.step(new route_1.GenerateRoutesExtender());
|
|
8
|
+
return stepManager.step(new route_1.GenerateRoutesExtender());
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
exports.default = Route;
|
|
@@ -7,8 +7,7 @@ const service_provider_2 = require("../../../steps/extenders/service-provider");
|
|
|
7
7
|
const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
|
|
8
8
|
class ServiceProvider extends base_command_1.default {
|
|
9
9
|
steps(stepManager) {
|
|
10
|
-
return stepManager
|
|
11
|
-
.atomicGroup(stepManager => {
|
|
10
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
12
11
|
stepManager
|
|
13
12
|
.namedStep('provider', new service_provider_1.GenerateServiceProviderStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
|
|
14
13
|
.step(new service_provider_2.GenerateServiceProviderExtender(), { optional: true, confirmationMessage: 'Generate corresponding extender?', default: true }, [
|
|
@@ -7,11 +7,8 @@ const model_2 = require("../../../steps/js/model");
|
|
|
7
7
|
const gen_ext_scaffolder_1 = require("../../../steps/gen-ext-scaffolder");
|
|
8
8
|
class Model extends base_command_1.default {
|
|
9
9
|
steps(stepManager) {
|
|
10
|
-
return stepManager
|
|
11
|
-
.
|
|
12
|
-
stepManager
|
|
13
|
-
.namedStep('model', new model_1.GenerateModelStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)()))
|
|
14
|
-
.step(new model_2.GenerateModelDefinition(), {}, [
|
|
10
|
+
return stepManager.atomicGroup((stepManager) => {
|
|
11
|
+
stepManager.namedStep('model', new model_1.GenerateModelStub(this.STUB_PATH, (0, gen_ext_scaffolder_1.genExtScaffolder)())).step(new model_2.GenerateModelDefinition(), {}, [
|
|
15
12
|
{
|
|
16
13
|
sourceStep: 'model',
|
|
17
14
|
exposedName: 'frontend',
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { StepManager } from 'boilersmith/step-manager';
|
|
2
|
+
import BaseCommand from '../../base-command';
|
|
3
|
+
import { FlarumProviders } from '../../providers';
|
|
4
|
+
export default class Create extends BaseCommand {
|
|
5
|
+
static description: string;
|
|
6
|
+
static flags: {
|
|
7
|
+
config: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
|
|
8
|
+
};
|
|
9
|
+
static args: {
|
|
10
|
+
name: string;
|
|
11
|
+
description: string;
|
|
12
|
+
}[];
|
|
13
|
+
protected requireExistingExtension: boolean;
|
|
14
|
+
protected steps(stepManager: StepManager<FlarumProviders>): StepManager<FlarumProviders>;
|
|
15
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const base_command_1 = (0, tslib_1.__importDefault)(require("../../base-command"));
|
|
5
|
+
const core_1 = require("@oclif/core");
|
|
6
|
+
const create_1 = require("../../steps/monorepo/create");
|
|
7
|
+
const gen_ext_scaffolder_1 = require("../../steps/gen-ext-scaffolder");
|
|
8
|
+
class Create extends base_command_1.default {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.requireExistingExtension = false;
|
|
12
|
+
}
|
|
13
|
+
steps(stepManager) {
|
|
14
|
+
return stepManager.step(new create_1.MonorepoCreate((0, gen_ext_scaffolder_1.genExtScaffolder)(), this.flags.config));
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.default = Create;
|
|
18
|
+
Create.description = 'Create a monorepo of Flarum extensions.';
|
|
19
|
+
Create.flags = Object.assign({ config: core_1.Flags.string({ char: 'c', required: false }) }, base_command_1.default.flags);
|
|
20
|
+
Create.args = [...base_command_1.default.args];
|
|
@@ -5,8 +5,7 @@ const js_imports_1 = require("../../steps/update/js-imports");
|
|
|
5
5
|
const base_command_1 = (0, tslib_1.__importDefault)(require("../../base-command"));
|
|
6
6
|
class UpdateJsImports extends base_command_1.default {
|
|
7
7
|
steps(stepManager) {
|
|
8
|
-
return stepManager
|
|
9
|
-
.step(new js_imports_1.UpdateJSImports());
|
|
8
|
+
return stepManager.step(new js_imports_1.UpdateJSImports());
|
|
10
9
|
}
|
|
11
10
|
async additionalPreRunChecks(extRoot) {
|
|
12
11
|
await this.ensureComposerInstallRan(extRoot);
|
package/lib/help.js
CHANGED
|
@@ -12,7 +12,7 @@ function prepTopic(topic) {
|
|
|
12
12
|
return Object.assign({}, topic, { name: chalk_1.default.green(topic.name.replace(COLON_REGEX, ' ')) });
|
|
13
13
|
}
|
|
14
14
|
function colorHeaders(text) {
|
|
15
|
-
return text.replace(/(TOPICS|TOPIC|DESCRIPTION|USAGE|COMMANDS|VERSION|ARGUMENTS|OPTIONS)/g, match => {
|
|
15
|
+
return text.replace(/(TOPICS|TOPIC|DESCRIPTION|USAGE|COMMANDS|VERSION|ARGUMENTS|OPTIONS)/g, (match) => {
|
|
16
16
|
return chalk_1.default.yellow(match);
|
|
17
17
|
});
|
|
18
18
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Scaffolder } from 'boilersmith/scaffolding/scaffolder';
|
|
2
|
-
export declare const EXTENSION_PARAMS: readonly ["packageName", "packageDescription", "packageNamespace", "authorName", "authorEmail", "extensionName", "licenseType", "mainGitBranch", "licenseText", "packageNamespaceEscapedSlash", "extensionId", "year", "backendDirectory", "frontendDirectory"];
|
|
2
|
+
export declare const EXTENSION_PARAMS: readonly ["packageName", "packageDescription", "packageNamespace", "authorName", "authorEmail", "extensionName", "licenseType", "mainGitBranch", "jsPackageManager", "licenseText", "packageNamespaceEscapedSlash", "extensionId", "year", "backendDirectory", "frontendDirectory"];
|
|
3
3
|
export declare type ExtensionParams = typeof EXTENSION_PARAMS[number];
|
|
4
|
-
export declare const EXTENSION_MODULES: readonly ["core", "icon", "js", "jsCommon", "css", "locale", "gitConf", "githubActions", "prettier", "typescript", "bundlewatch", "backendTesting", "editorConfig", "styleci"];
|
|
4
|
+
export declare const EXTENSION_MODULES: readonly ["core", "icon", "admin", "forum", "js", "jsCommon", "css", "locale", "gitConf", "githubActions", "prettier", "typescript", "bundlewatch", "backendTesting", "editorConfig", "styleci"];
|
|
5
5
|
export declare type ExtensionModules = typeof EXTENSION_MODULES[number];
|
|
6
6
|
export declare function genExtScaffolder(): Scaffolder<ExtensionParams, ExtensionModules>;
|