@wocker/core 1.0.4 → 1.0.6

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.
Files changed (76) hide show
  1. package/README.md +28 -0
  2. package/lib/decorators/Command.d.ts +1 -0
  3. package/lib/decorators/Command.js +10 -0
  4. package/lib/decorators/Completion.d.ts +1 -0
  5. package/lib/decorators/Completion.js +15 -0
  6. package/lib/decorators/Controller.d.ts +5 -0
  7. package/lib/decorators/Controller.js +14 -0
  8. package/lib/decorators/Inject.d.ts +1 -1
  9. package/lib/decorators/Inject.js +10 -2
  10. package/lib/decorators/Injectable.d.ts +1 -4
  11. package/lib/decorators/Injectable.js +7 -12
  12. package/lib/decorators/Module.d.ts +15 -0
  13. package/lib/decorators/Module.js +16 -0
  14. package/lib/decorators/Option.d.ts +4 -0
  15. package/lib/decorators/Option.js +21 -0
  16. package/lib/decorators/Param.d.ts +1 -0
  17. package/lib/decorators/Param.js +8 -0
  18. package/lib/decorators/index.d.ts +7 -0
  19. package/lib/decorators/index.js +23 -0
  20. package/lib/env.d.ts +18 -0
  21. package/lib/env.js +22 -0
  22. package/lib/index.d.ts +5 -17
  23. package/lib/index.js +8 -18
  24. package/lib/makes/Container.d.ts +8 -0
  25. package/lib/makes/Container.js +25 -0
  26. package/lib/makes/FS.d.ts +15 -3
  27. package/lib/makes/FS.js +99 -4
  28. package/lib/makes/FSManager.js +4 -4
  29. package/lib/makes/Factory.d.ts +17 -0
  30. package/lib/makes/Factory.js +201 -0
  31. package/lib/makes/InstanceWrapper.d.ts +10 -0
  32. package/lib/makes/InstanceWrapper.js +41 -0
  33. package/lib/makes/Logger.d.ts +4 -5
  34. package/lib/makes/Logger.js +8 -9
  35. package/lib/makes/Module.d.ts +17 -0
  36. package/lib/makes/Module.js +63 -0
  37. package/lib/makes/Plugin.d.ts +1 -3
  38. package/lib/makes/Plugin.js +2 -3
  39. package/lib/{models → makes}/Preset.d.ts +4 -4
  40. package/lib/{models → makes}/Project.d.ts +14 -10
  41. package/lib/{models → makes}/Project.js +60 -24
  42. package/lib/makes/Scanner.d.ts +4 -0
  43. package/lib/makes/Scanner.js +9 -0
  44. package/lib/makes/index.d.ts +9 -0
  45. package/lib/makes/index.js +25 -0
  46. package/lib/services/AppConfigService.d.ts +1 -1
  47. package/lib/services/AppConfigService.js +12 -2
  48. package/lib/services/AppEventsService.d.ts +2 -2
  49. package/lib/services/AppEventsService.js +12 -2
  50. package/lib/services/DockerService.d.ts +13 -1
  51. package/lib/services/DockerService.js +12 -2
  52. package/lib/services/LogService.d.ts +2 -3
  53. package/lib/services/LogService.js +12 -2
  54. package/lib/services/PluginConfigService.d.ts +5 -0
  55. package/lib/services/PluginConfigService.js +64 -0
  56. package/lib/services/PresetService.d.ts +6 -7
  57. package/lib/services/ProjectService.d.ts +5 -3
  58. package/lib/services/ProjectService.js +14 -4
  59. package/lib/services/index.d.ts +7 -0
  60. package/lib/services/index.js +23 -0
  61. package/lib/types/Abstract.d.ts +3 -0
  62. package/lib/types/Abstract.js +2 -0
  63. package/lib/types/InjectionToken.d.ts +3 -0
  64. package/lib/types/InjectionToken.js +2 -0
  65. package/lib/types/PickProperties.d.ts +3 -0
  66. package/lib/types/PickProperties.js +2 -0
  67. package/lib/types/Provider.d.ts +12 -0
  68. package/lib/types/Provider.js +2 -0
  69. package/lib/types/Type.d.ts +3 -0
  70. package/lib/types/Type.js +2 -0
  71. package/lib/types/index.d.ts +3 -0
  72. package/lib/types/index.js +19 -0
  73. package/package.json +17 -6
  74. package/lib/makes/Controller.d.ts +0 -5
  75. package/lib/makes/Controller.js +0 -9
  76. /package/lib/{models → makes}/Preset.js +0 -0
package/README.md CHANGED
@@ -1 +1,29 @@
1
1
  # @wocker/core
2
+
3
+ ###### Docker workspace for web projects
4
+
5
+ ## Installation
6
+
7
+ **Note:** It is recommended to install Wocker globally to ensure accessibility from any directory in your terminal.
8
+
9
+ ```shell
10
+ npm i -g @wocker/ws
11
+ ```
12
+
13
+
14
+ ### Completion
15
+
16
+ Wocker comes with shell completion support to enhance your development workflow. To enable shell completion, run the following command:
17
+
18
+ ```bash
19
+ source <(ws completion script)
20
+ ```
21
+
22
+ This will enable tab completion for `ws` commands, providing a more convenient and efficient way to interact with the tool.
23
+
24
+
25
+ ## Documentation
26
+
27
+ Wocker is a powerful tool for managing your web project's Docker workspace. It provides a convenient and efficient way to set up and manage your Docker containers.
28
+
29
+ For more information and detailed usage, please refer to the [documentation](https://kearisp.github.io/wocker).
@@ -0,0 +1 @@
1
+ export declare const Command: (command: string) => MethodDecorator;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Command = void 0;
4
+ const env_1 = require("../env");
5
+ const Command = (command) => {
6
+ return (target, key, descriptor) => {
7
+ Reflect.defineMetadata(env_1.COMMAND_METADATA, command, descriptor.value);
8
+ };
9
+ };
10
+ exports.Command = Command;
@@ -0,0 +1 @@
1
+ export declare const Completion: (name: string, command?: string) => MethodDecorator;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Completion = void 0;
4
+ const Completion = (name, command) => {
5
+ return (target, propertyKey, descriptor) => {
6
+ Reflect.defineMetadata("completion", [
7
+ ...Reflect.getMetadata("completion", descriptor.value) || [],
8
+ {
9
+ name,
10
+ command
11
+ }
12
+ ], descriptor.value);
13
+ };
14
+ };
15
+ exports.Completion = Completion;
@@ -0,0 +1,5 @@
1
+ type Params = {
2
+ command?: string;
3
+ };
4
+ export declare const Controller: (params?: Params) => ClassDecorator;
5
+ export {};
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Controller = void 0;
4
+ const Controller = (params) => {
5
+ const { command } = params || {};
6
+ return (target) => {
7
+ if (!command) {
8
+ return;
9
+ }
10
+ Reflect.defineMetadata("IS_CONTROLLER", true, target);
11
+ // TODO:
12
+ };
13
+ };
14
+ exports.Controller = Controller;
@@ -1 +1 @@
1
- export declare const Inject: () => (target: any) => void;
1
+ export declare const Inject: <T = any>(token?: T) => ParameterDecorator;
@@ -1,8 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Inject = void 0;
4
- const Inject = () => {
5
- return (target) => {
4
+ const env_1 = require("../env");
5
+ const Inject = (token) => {
6
+ return (target, propertyKey, parameterIndex) => {
7
+ Reflect.defineMetadata(env_1.SELF_DECLARED_DEPS_METADATA, [
8
+ ...Reflect.getMetadata(env_1.SELF_DECLARED_DEPS_METADATA, target) || [],
9
+ {
10
+ token: token,
11
+ index: parameterIndex
12
+ }
13
+ ], target);
6
14
  };
7
15
  };
8
16
  exports.Inject = Inject;
@@ -1,4 +1 @@
1
- import { DI } from "../makes/DI";
2
- export declare const Injectable: () => <T extends new (...rest: any[]) => {}>(Target: T) => {
3
- new (di: DI): {};
4
- } & T;
1
+ export declare const Injectable: (token?: string) => ClassDecorator;
@@ -1,18 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Injectable = void 0;
4
- const Injectable = () => {
5
- return (Target) => {
6
- // @ts-ignore
7
- return class extends Target {
8
- constructor(di) {
9
- const types = Reflect.getMetadata("design:paramtypes", Target);
10
- const params = types.map((type) => {
11
- return (di).resolveService(type);
12
- });
13
- super(...params);
14
- }
15
- };
4
+ const env_1 = require("../env");
5
+ const Injectable = (token) => {
6
+ return (target) => {
7
+ Reflect.defineMetadata(env_1.INJECTABLE_WATERMARK, true, target);
8
+ if (token) {
9
+ Reflect.defineMetadata(env_1.INJECT_TOKEN_METADATA, token, target);
10
+ }
16
11
  };
17
12
  };
18
13
  exports.Injectable = Injectable;
@@ -0,0 +1,15 @@
1
+ import { MODULE_METADATA } from "../env";
2
+ import { Provider } from "../types/Provider";
3
+ import { Type } from "../types/Type";
4
+ type Config = {
5
+ [MODULE_METADATA.NAME]?: string;
6
+ [MODULE_METADATA.CONTROLLERS]?: any[];
7
+ [MODULE_METADATA.PROVIDERS]?: Provider[];
8
+ [MODULE_METADATA.IMPORTS]?: any[];
9
+ [MODULE_METADATA.EXPORTS]?: any[];
10
+ };
11
+ export type DynamicModule = {
12
+ providers?: any[];
13
+ };
14
+ export declare const Module: (config: Config) => <T extends Type>(Target: T) => void;
15
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Module = void 0;
4
+ const env_1 = require("../env");
5
+ const Module = (config) => {
6
+ const { [env_1.MODULE_METADATA.NAME]: name, [env_1.MODULE_METADATA.CONTROLLERS]: controllers = [], [env_1.MODULE_METADATA.PROVIDERS]: providers = [], [env_1.MODULE_METADATA.IMPORTS]: imports = [], [env_1.MODULE_METADATA.EXPORTS]: exports = [] } = config;
7
+ return (Target) => {
8
+ Reflect.defineMetadata("isModule", true, Target);
9
+ Reflect.defineMetadata(env_1.MODULE_METADATA.NAME, name, Target);
10
+ Reflect.defineMetadata(env_1.MODULE_METADATA.IMPORTS, imports, Target);
11
+ Reflect.defineMetadata(env_1.MODULE_METADATA.CONTROLLERS, controllers, Target);
12
+ Reflect.defineMetadata(env_1.MODULE_METADATA.PROVIDERS, providers, Target);
13
+ Reflect.defineMetadata(env_1.MODULE_METADATA.EXPORTS, exports, Target);
14
+ };
15
+ };
16
+ exports.Module = Module;
@@ -0,0 +1,4 @@
1
+ import { Option as O } from "@kearisp/cli";
2
+ type Params = Omit<O, "name">;
3
+ export declare const Option: (name: string, params?: Partial<Params>) => ParameterDecorator;
4
+ export {};
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Option = void 0;
4
+ const env_1 = require("../env");
5
+ const Option = (name, params) => {
6
+ return (target, key, index) => {
7
+ if (!key) {
8
+ return;
9
+ }
10
+ Reflect.defineMetadata(env_1.ARGS_METADATA, [
11
+ ...Reflect.getMetadata(env_1.ARGS_METADATA, target.constructor, key) || [],
12
+ {
13
+ type: "option",
14
+ name,
15
+ params,
16
+ index
17
+ }
18
+ ], target.constructor, key);
19
+ };
20
+ };
21
+ exports.Option = Option;
@@ -0,0 +1 @@
1
+ export declare const Param: (name: string) => MethodDecorator;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Param = void 0;
4
+ const Param = (name) => {
5
+ return (target, propertyKey, descriptor) => {
6
+ };
7
+ };
8
+ exports.Param = Param;
@@ -0,0 +1,7 @@
1
+ export * from "./Command";
2
+ export * from "./Completion";
3
+ export * from "./Controller";
4
+ export * from "./Inject";
5
+ export * from "./Injectable";
6
+ export * from "./Module";
7
+ export * from "./Option";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Command"), exports);
18
+ __exportStar(require("./Completion"), exports);
19
+ __exportStar(require("./Controller"), exports);
20
+ __exportStar(require("./Inject"), exports);
21
+ __exportStar(require("./Injectable"), exports);
22
+ __exportStar(require("./Module"), exports);
23
+ __exportStar(require("./Option"), exports);
package/lib/env.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ export declare const IS_MODULE = "IS_MODULE";
2
+ export declare const INJECTABLE_WATERMARK = "__injectable__";
3
+ export declare const ARGS_META = "__ARGS__";
4
+ export declare const COMMAND_METADATA = "command";
5
+ export declare const COMPLETION_METADATA = "completion";
6
+ export declare const ARGS_METADATA = "__ARGS__";
7
+ export declare const OPTION_META = "__OPTION_META__";
8
+ export declare const PARAMTYPES_METADATA = "design:paramtypes";
9
+ export declare const SELF_DECLARED_DEPS_METADATA = "self:paramtypes";
10
+ export declare const INJECT_TOKEN_METADATA = "INJECT_TOKEN";
11
+ export declare const PLUGIN_DIR_KEY = "PLUGIN_DIR";
12
+ export declare enum MODULE_METADATA {
13
+ NAME = "name",
14
+ IMPORTS = "imports",
15
+ EXPORTS = "exports",
16
+ CONTROLLERS = "controllers",
17
+ PROVIDERS = "providers"
18
+ }
package/lib/env.js ADDED
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODULE_METADATA = exports.PLUGIN_DIR_KEY = exports.INJECT_TOKEN_METADATA = exports.SELF_DECLARED_DEPS_METADATA = exports.PARAMTYPES_METADATA = exports.OPTION_META = exports.ARGS_METADATA = exports.COMPLETION_METADATA = exports.COMMAND_METADATA = exports.ARGS_META = exports.INJECTABLE_WATERMARK = exports.IS_MODULE = void 0;
4
+ exports.IS_MODULE = "IS_MODULE";
5
+ exports.INJECTABLE_WATERMARK = "__injectable__";
6
+ exports.ARGS_META = "__ARGS__";
7
+ exports.COMMAND_METADATA = "command";
8
+ exports.COMPLETION_METADATA = "completion";
9
+ exports.ARGS_METADATA = "__ARGS__";
10
+ exports.OPTION_META = "__OPTION_META__";
11
+ exports.PARAMTYPES_METADATA = "design:paramtypes";
12
+ exports.SELF_DECLARED_DEPS_METADATA = "self:paramtypes";
13
+ exports.INJECT_TOKEN_METADATA = "INJECT_TOKEN";
14
+ exports.PLUGIN_DIR_KEY = "PLUGIN_DIR";
15
+ var MODULE_METADATA;
16
+ (function (MODULE_METADATA) {
17
+ MODULE_METADATA["NAME"] = "name";
18
+ MODULE_METADATA["IMPORTS"] = "imports";
19
+ MODULE_METADATA["EXPORTS"] = "exports";
20
+ MODULE_METADATA["CONTROLLERS"] = "controllers";
21
+ MODULE_METADATA["PROVIDERS"] = "providers";
22
+ })(MODULE_METADATA || (exports.MODULE_METADATA = MODULE_METADATA = {}));
package/lib/index.d.ts CHANGED
@@ -1,18 +1,6 @@
1
1
  export { Cli } from "@kearisp/cli";
2
- export * from "./decorators/Inject";
3
- export * from "./decorators/Injectable";
4
- export * from "./makes/Controller";
5
- export * from "./makes/DI";
6
- export * from "./makes/FSManager";
7
- export * from "./makes/Logger";
8
- export * from "./makes/Plugin";
9
- export * from "./models/Preset";
10
- export * from "./models/Project";
11
- export * from "./services/AppConfigService";
12
- export * from "./services/AppEventsService";
13
- export * from "./services/DockerService";
14
- export * from "./services/LogService";
15
- export * from "./services/PresetService";
16
- export * from "./services/ProjectService";
17
- export * from "./types/AppConfig";
18
- export * from "./types/EnvConfig";
2
+ export * from "./decorators";
3
+ export * from "./makes";
4
+ export * from "./services";
5
+ export * from "./types";
6
+ export { MODULE_METADATA, PLUGIN_DIR_KEY } from "./env";
package/lib/index.js CHANGED
@@ -14,23 +14,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.Cli = void 0;
17
+ exports.PLUGIN_DIR_KEY = exports.MODULE_METADATA = exports.Cli = void 0;
18
18
  var cli_1 = require("@kearisp/cli");
19
19
  Object.defineProperty(exports, "Cli", { enumerable: true, get: function () { return cli_1.Cli; } });
20
- __exportStar(require("./decorators/Inject"), exports);
21
- __exportStar(require("./decorators/Injectable"), exports);
22
- __exportStar(require("./makes/Controller"), exports);
23
- __exportStar(require("./makes/DI"), exports);
24
- __exportStar(require("./makes/FSManager"), exports);
25
- __exportStar(require("./makes/Logger"), exports);
26
- __exportStar(require("./makes/Plugin"), exports);
27
- __exportStar(require("./models/Preset"), exports);
28
- __exportStar(require("./models/Project"), exports);
29
- __exportStar(require("./services/AppConfigService"), exports);
30
- __exportStar(require("./services/AppEventsService"), exports);
31
- __exportStar(require("./services/DockerService"), exports);
32
- __exportStar(require("./services/LogService"), exports);
33
- __exportStar(require("./services/PresetService"), exports);
34
- __exportStar(require("./services/ProjectService"), exports);
35
- __exportStar(require("./types/AppConfig"), exports);
36
- __exportStar(require("./types/EnvConfig"), exports);
20
+ __exportStar(require("./decorators"), exports);
21
+ __exportStar(require("./makes"), exports);
22
+ __exportStar(require("./services"), exports);
23
+ __exportStar(require("./types"), exports);
24
+ var env_1 = require("./env");
25
+ Object.defineProperty(exports, "MODULE_METADATA", { enumerable: true, get: function () { return env_1.MODULE_METADATA; } });
26
+ Object.defineProperty(exports, "PLUGIN_DIR_KEY", { enumerable: true, get: function () { return env_1.PLUGIN_DIR_KEY; } });
@@ -0,0 +1,8 @@
1
+ import { Module } from "./Module";
2
+ export declare class Container {
3
+ modules: Map<any, Module>;
4
+ hasModule(type: any): boolean;
5
+ getModule(type: any): Module | undefined;
6
+ addModule(type: any, module: Module): void;
7
+ addController(moduleType: any, type: any): void;
8
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Container = void 0;
4
+ class Container {
5
+ constructor() {
6
+ this.modules = new Map();
7
+ }
8
+ hasModule(type) {
9
+ return this.modules.has(type);
10
+ }
11
+ getModule(type) {
12
+ return this.modules.get(type);
13
+ }
14
+ addModule(type, module) {
15
+ this.modules.set(type, module);
16
+ }
17
+ addController(moduleType, type) {
18
+ const module = this.getModule(moduleType);
19
+ if (!module) {
20
+ return;
21
+ }
22
+ module.addController(type);
23
+ }
24
+ }
25
+ exports.Container = Container;
package/lib/makes/FS.d.ts CHANGED
@@ -1,7 +1,19 @@
1
1
  /// <reference types="node" />
2
- import { PathOrFileDescriptor } from "fs";
2
+ /// <reference types="node" />
3
+ /// <reference types="node" />
4
+ /// <reference types="node" />
5
+ import { Abortable } from "node:events";
6
+ import { PathLike, PathOrFileDescriptor, WriteFileOptions, RmOptions, MakeDirectoryOptions } from "fs";
7
+ type ReadFileOptions = Abortable & {
8
+ encoding?: BufferEncoding;
9
+ flag?: string;
10
+ };
3
11
  declare class FS {
4
- static readJSON(filePath: PathOrFileDescriptor): Promise<any>;
5
- static writeJSON(filePath: PathOrFileDescriptor, data: any): Promise<void>;
12
+ static mkdir(path: PathLike, options?: MakeDirectoryOptions): Promise<unknown>;
13
+ static readFile(filePath: PathOrFileDescriptor, options?: ReadFileOptions): Promise<string | Buffer>;
14
+ static writeFile(filePath: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): Promise<unknown>;
15
+ static readJSON(...paths: string[]): Promise<any>;
16
+ static writeJSON(filePath: PathOrFileDescriptor, data: any, options?: WriteFileOptions): Promise<void>;
17
+ static rm(path: PathLike, options?: RmOptions): Promise<void>;
6
18
  }
7
19
  export { FS };
package/lib/makes/FS.js CHANGED
@@ -1,4 +1,27 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
2
25
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
26
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
27
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -11,10 +34,57 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
34
  Object.defineProperty(exports, "__esModule", { value: true });
12
35
  exports.FS = void 0;
13
36
  const fs_1 = require("fs");
37
+ const Path = __importStar(require("path"));
14
38
  class FS {
15
- static readJSON(filePath) {
39
+ static mkdir(path, options) {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ return new Promise((resolve, reject) => {
42
+ (0, fs_1.mkdir)(path, options, (err) => {
43
+ if (err) {
44
+ reject(err);
45
+ return;
46
+ }
47
+ resolve(undefined);
48
+ });
49
+ });
50
+ });
51
+ }
52
+ static readFile(filePath, options) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ return new Promise((resolve, reject) => {
55
+ (0, fs_1.readFile)(filePath, options, (err, res) => {
56
+ if (err) {
57
+ reject(err);
58
+ return;
59
+ }
60
+ resolve(res);
61
+ });
62
+ });
63
+ });
64
+ }
65
+ static writeFile(filePath, data, options) {
66
+ return __awaiter(this, void 0, void 0, function* () {
67
+ return new Promise((resolve, reject) => {
68
+ const callback = (err) => {
69
+ if (err) {
70
+ reject(err);
71
+ return;
72
+ }
73
+ resolve(undefined);
74
+ };
75
+ if (options) {
76
+ (0, fs_1.writeFile)(filePath, data, options, callback);
77
+ }
78
+ else {
79
+ (0, fs_1.writeFile)(filePath, data, callback);
80
+ }
81
+ });
82
+ });
83
+ }
84
+ static readJSON(...paths) {
16
85
  return __awaiter(this, void 0, void 0, function* () {
17
86
  const res = yield new Promise((resolve, reject) => {
87
+ const filePath = Path.join(...paths);
18
88
  (0, fs_1.readFile)(filePath, (err, data) => {
19
89
  if (err) {
20
90
  reject(err);
@@ -26,17 +96,42 @@ class FS {
26
96
  return JSON.parse(res.toString());
27
97
  });
28
98
  }
29
- static writeJSON(filePath, data) {
99
+ static writeJSON(filePath, data, options) {
30
100
  return __awaiter(this, void 0, void 0, function* () {
31
101
  const json = JSON.stringify(data, null, 4);
32
102
  return new Promise((resolve, reject) => {
33
- (0, fs_1.writeFile)(filePath, json, (err) => {
103
+ const callback = (err) => {
34
104
  if (err) {
35
105
  reject(err);
36
106
  return;
37
107
  }
38
108
  resolve(undefined);
39
- });
109
+ };
110
+ if (options) {
111
+ (0, fs_1.writeFile)(filePath, json, options, callback);
112
+ }
113
+ else {
114
+ (0, fs_1.writeFile)(filePath, json, callback);
115
+ }
116
+ });
117
+ });
118
+ }
119
+ static rm(path, options) {
120
+ return __awaiter(this, void 0, void 0, function* () {
121
+ return new Promise((resolve, reject) => {
122
+ const callback = (err) => {
123
+ if (err) {
124
+ reject(err);
125
+ return;
126
+ }
127
+ resolve(undefined);
128
+ };
129
+ if (options) {
130
+ (0, fs_1.rm)(path, options, callback);
131
+ }
132
+ else {
133
+ (0, fs_1.rm)(path, callback);
134
+ }
40
135
  });
41
136
  });
42
137
  }
@@ -43,8 +43,8 @@ class FSManager {
43
43
  path(...parts) {
44
44
  return Path.join(this.destination, ...parts);
45
45
  }
46
- mkdir(path, options = {}) {
47
- return __awaiter(this, void 0, void 0, function* () {
46
+ mkdir(path_1) {
47
+ return __awaiter(this, arguments, void 0, function* (path, options = {}) {
48
48
  const fullPath = Path.join(this.destination, path);
49
49
  return new Promise((resolve, reject) => {
50
50
  (0, fs_1.mkdir)(fullPath, options, (err) => {
@@ -120,8 +120,8 @@ class FSManager {
120
120
  });
121
121
  });
122
122
  }
123
- rm(path, options = {}) {
124
- return __awaiter(this, void 0, void 0, function* () {
123
+ rm(path_1) {
124
+ return __awaiter(this, arguments, void 0, function* (path, options = {}) {
125
125
  const filePath = Path.join(this.destination, path);
126
126
  return new Promise((resolve, reject) => {
127
127
  fs_1.default.rm(filePath, options, (err) => {
@@ -0,0 +1,17 @@
1
+ import { Module } from "./Module";
2
+ export declare class Factory {
3
+ private readonly cli;
4
+ private readonly container;
5
+ private routes;
6
+ private constructor();
7
+ scan(moduleType: any): Promise<void>;
8
+ scanModules(moduleType: any, parent?: Module): Promise<Module | undefined>;
9
+ scanDependencies(): Promise<void>;
10
+ scanModuleDependencies(module: Module): Promise<void>;
11
+ scanDynamicModules(): Promise<void>;
12
+ scanRoutes(): Promise<void>;
13
+ log(...args: any[]): void;
14
+ init(): Promise<void>;
15
+ run(args: string[]): Promise<any>;
16
+ static create(module: any): Promise<Factory>;
17
+ }