@wocker/core 1.0.13 → 1.0.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.
@@ -1,10 +1,6 @@
1
- import { MODULE_METADATA, PLUGIN_NAME_METADATA } from "../env";
1
+ import { MODULE_METADATA } from "../env";
2
2
  import { Provider } from "../types/Provider";
3
3
  export type ModuleConfig = {
4
- /**
5
- * @deprecated
6
- */
7
- [PLUGIN_NAME_METADATA]?: string;
8
4
  [MODULE_METADATA.CONTROLLERS]?: any[];
9
5
  [MODULE_METADATA.PROVIDERS]?: Provider[];
10
6
  [MODULE_METADATA.IMPORTS]?: any[];
@@ -3,12 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Module = void 0;
4
4
  const env_1 = require("../env");
5
5
  const Module = (config) => {
6
- const { [env_1.PLUGIN_NAME_METADATA]: 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;
6
+ const { [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
7
  return (target) => {
8
- if (name) {
9
- Reflect.defineMetadata(env_1.PLUGIN_NAME_METADATA, name, target);
10
- }
11
- Reflect.defineMetadata("isModule", true, target);
8
+ Reflect.defineMetadata(env_1.IS_MODULE_METADATA, true, target);
12
9
  Reflect.defineMetadata(env_1.MODULE_METADATA.IMPORTS, imports, target);
13
10
  Reflect.defineMetadata(env_1.MODULE_METADATA.CONTROLLERS, controllers, target);
14
11
  Reflect.defineMetadata(env_1.MODULE_METADATA.PROVIDERS, providers, target);
package/lib/env.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const IS_MODULE = "IS_MODULE";
1
+ export declare const IS_MODULE_METADATA = "isModule";
2
2
  export declare const INJECTABLE_WATERMARK = "__injectable__";
3
3
  export declare const ARGS_META = "__ARGS__";
4
4
  export declare const COMMAND_METADATA = "command";
@@ -12,7 +12,6 @@ export declare const INJECT_TOKEN_METADATA = "INJECT_TOKEN";
12
12
  export declare const PLUGIN_DIR_KEY = "PLUGIN_DIR";
13
13
  export declare const PLUGIN_NAME_METADATA = "name";
14
14
  export declare enum MODULE_METADATA {
15
- NAME = "name",
16
15
  IMPORTS = "imports",
17
16
  EXPORTS = "exports",
18
17
  CONTROLLERS = "controllers",
package/lib/env.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MODULE_METADATA = exports.PLUGIN_NAME_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_DESCRIPTION_METADATA = exports.COMMAND_METADATA = exports.ARGS_META = exports.INJECTABLE_WATERMARK = exports.IS_MODULE = void 0;
4
- exports.IS_MODULE = "IS_MODULE";
3
+ exports.MODULE_METADATA = exports.PLUGIN_NAME_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_DESCRIPTION_METADATA = exports.COMMAND_METADATA = exports.ARGS_META = exports.INJECTABLE_WATERMARK = exports.IS_MODULE_METADATA = void 0;
4
+ exports.IS_MODULE_METADATA = "isModule";
5
5
  exports.INJECTABLE_WATERMARK = "__injectable__";
6
6
  exports.ARGS_META = "__ARGS__";
7
7
  exports.COMMAND_METADATA = "command";
@@ -16,7 +16,6 @@ exports.PLUGIN_DIR_KEY = "PLUGIN_DIR";
16
16
  exports.PLUGIN_NAME_METADATA = "name";
17
17
  var MODULE_METADATA;
18
18
  (function (MODULE_METADATA) {
19
- MODULE_METADATA["NAME"] = "name";
20
19
  MODULE_METADATA["IMPORTS"] = "imports";
21
20
  MODULE_METADATA["EXPORTS"] = "exports";
22
21
  MODULE_METADATA["CONTROLLERS"] = "controllers";
package/lib/index.d.ts CHANGED
@@ -3,4 +3,4 @@ export * from "./decorators";
3
3
  export * from "./makes";
4
4
  export * from "./services";
5
5
  export * from "./types";
6
- export { MODULE_METADATA, PLUGIN_DIR_KEY } from "./env";
6
+ export { IS_MODULE_METADATA, MODULE_METADATA, PLUGIN_NAME_METADATA, PLUGIN_DIR_KEY } from "./env";
package/lib/index.js CHANGED
@@ -14,7 +14,7 @@ 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.PLUGIN_DIR_KEY = exports.MODULE_METADATA = exports.Cli = void 0;
17
+ exports.PLUGIN_DIR_KEY = exports.PLUGIN_NAME_METADATA = exports.MODULE_METADATA = exports.IS_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
20
  __exportStar(require("./decorators"), exports);
@@ -22,5 +22,7 @@ __exportStar(require("./makes"), exports);
22
22
  __exportStar(require("./services"), exports);
23
23
  __exportStar(require("./types"), exports);
24
24
  var env_1 = require("./env");
25
+ Object.defineProperty(exports, "IS_MODULE_METADATA", { enumerable: true, get: function () { return env_1.IS_MODULE_METADATA; } });
25
26
  Object.defineProperty(exports, "MODULE_METADATA", { enumerable: true, get: function () { return env_1.MODULE_METADATA; } });
27
+ Object.defineProperty(exports, "PLUGIN_NAME_METADATA", { enumerable: true, get: function () { return env_1.PLUGIN_NAME_METADATA; } });
26
28
  Object.defineProperty(exports, "PLUGIN_DIR_KEY", { enumerable: true, get: function () { return env_1.PLUGIN_DIR_KEY; } });
@@ -1,4 +1,5 @@
1
1
  import { EnvConfig, PickProperties } from "../types";
2
+ import { PresetType } from "./Preset";
2
3
  export type ConfigProperties = Omit<PickProperties<Config>, "logLevel"> & {
3
4
  logLevel?: Config["logLevel"];
4
5
  };
@@ -6,6 +7,11 @@ export declare abstract class Config {
6
7
  debug?: boolean;
7
8
  logLevel: "off" | "info" | "warn" | "error";
8
9
  plugins: string[];
10
+ presets?: {
11
+ name: string;
12
+ source: PresetType;
13
+ path?: string;
14
+ }[];
9
15
  projects: {
10
16
  id: string;
11
17
  name?: string;
@@ -17,6 +23,8 @@ export declare abstract class Config {
17
23
  addPlugin(plugin: string): void;
18
24
  removePlugin(removePlugin: string): void;
19
25
  setProject(id: string, path: string): void;
26
+ registerPreset(name: string, source: PresetType, path?: string): void;
27
+ unregisterPreset(name: string): void;
20
28
  getMeta(name: string, defaultValue: string): string;
21
29
  setMeta(name: string, value: string): void;
22
30
  unsetMeta(name: string): void;
@@ -5,6 +5,7 @@ class Config {
5
5
  constructor(data) {
6
6
  this.logLevel = "off";
7
7
  this.plugins = [];
8
+ this.presets = [];
8
9
  this.projects = [];
9
10
  Object.assign(this, data);
10
11
  }
@@ -31,6 +32,32 @@ class Config {
31
32
  }
32
33
  ];
33
34
  }
35
+ registerPreset(name, source, path) {
36
+ if (!this.presets) {
37
+ this.presets = [];
38
+ }
39
+ const preset = this.presets.find((preset) => {
40
+ return preset.name === name;
41
+ });
42
+ if (!preset) {
43
+ this.presets.push({
44
+ name,
45
+ source,
46
+ path
47
+ });
48
+ }
49
+ }
50
+ unregisterPreset(name) {
51
+ if (!this.presets) {
52
+ return;
53
+ }
54
+ this.presets = this.presets.filter((preset) => {
55
+ return preset.name !== name;
56
+ });
57
+ if (this.presets.length === 0) {
58
+ delete this.presets;
59
+ }
60
+ }
34
61
  getMeta(name, defaultValue) {
35
62
  if (!this.meta || !(name in this.meta)) {
36
63
  return defaultValue;
@@ -73,14 +100,16 @@ class Config {
73
100
  delete this.env;
74
101
  }
75
102
  }
103
+ // noinspection JSUnusedGlobalSymbols
76
104
  toJson() {
77
105
  return {
78
106
  debug: this.debug,
79
107
  logLevel: this.logLevel,
80
108
  plugins: this.plugins,
81
109
  projects: this.projects,
82
- meta: this.meta,
83
- env: this.env
110
+ presets: (this.presets || []).length > 0 ? this.presets : undefined,
111
+ env: this.env,
112
+ meta: this.meta
84
113
  };
85
114
  }
86
115
  }
@@ -76,7 +76,7 @@ class Factory {
76
76
  if (moduleType.prototype.load) {
77
77
  const { imports } = yield moduleType.prototype.load(this.container);
78
78
  for (const type of imports) {
79
- const isModule = Reflect.getMetadata("isModule", type);
79
+ const isModule = Reflect.getMetadata(env_1.IS_MODULE_METADATA, type);
80
80
  if (!isModule) {
81
81
  continue;
82
82
  }
@@ -23,8 +23,8 @@ type SelectOption = {
23
23
  type AnyOption = TextOption | ConfirmOption | SelectOption;
24
24
  export type PresetProperties = PickProperties<Preset>;
25
25
  export declare abstract class Preset {
26
- id: string;
27
26
  name: string;
27
+ source?: PresetType;
28
28
  version: string;
29
29
  dockerfile?: string;
30
30
  buildArgsOptions?: {
@@ -33,10 +33,16 @@ export declare abstract class Preset {
33
33
  envOptions?: {
34
34
  [name: string]: AnyOption;
35
35
  };
36
- path: string;
36
+ path?: string;
37
37
  volumes?: string[];
38
38
  volumeOptions?: string[];
39
39
  protected constructor(data: PresetProperties);
40
40
  abstract save(): Promise<void>;
41
+ abstract delete(): Promise<void>;
42
+ toJSON(): PresetProperties;
41
43
  }
44
+ export declare const PRESET_SOURCE_INTERNAL = "internal";
45
+ export declare const PRESET_SOURCE_EXTERNAL = "external";
46
+ export declare const PRESET_SOURCE_GITHUB = "github";
47
+ export type PresetType = typeof PRESET_SOURCE_INTERNAL | typeof PRESET_SOURCE_EXTERNAL | typeof PRESET_SOURCE_GITHUB;
42
48
  export {};
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Preset = void 0;
3
+ exports.PRESET_SOURCE_GITHUB = exports.PRESET_SOURCE_EXTERNAL = exports.PRESET_SOURCE_INTERNAL = exports.Preset = void 0;
4
4
  class Preset {
5
5
  constructor(data) {
6
- this.id = data.id;
7
6
  this.name = data.name;
7
+ this.source = data.source;
8
8
  this.path = data.path;
9
9
  this.version = data.version;
10
10
  this.dockerfile = data.dockerfile;
@@ -13,5 +13,22 @@ class Preset {
13
13
  this.volumes = data.volumes;
14
14
  this.volumeOptions = data.volumeOptions;
15
15
  }
16
+ // noinspection JSUnusedGlobalSymbols
17
+ toJSON() {
18
+ return {
19
+ name: this.name,
20
+ source: this.source,
21
+ version: this.version,
22
+ dockerfile: this.dockerfile,
23
+ buildArgsOptions: this.buildArgsOptions,
24
+ envOptions: this.envOptions,
25
+ path: this.path,
26
+ volumes: this.volumes,
27
+ volumeOptions: this.volumeOptions
28
+ };
29
+ }
16
30
  }
17
31
  exports.Preset = Preset;
32
+ exports.PRESET_SOURCE_INTERNAL = "internal";
33
+ exports.PRESET_SOURCE_EXTERNAL = "external";
34
+ exports.PRESET_SOURCE_GITHUB = "github";
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@wocker/core",
3
- "version": "1.0.13",
3
+ "version": "1.0.14",
4
4
  "author": "Kris Papercut <krispcut@gmail.com>",
5
- "description": "Core of wocker",
5
+ "description": "Core of the Wocker",
6
6
  "license": "MIT",
7
7
  "main": "lib/index.js",
8
8
  "types": "lib/index.d.ts",