@wocker/core 1.0.9 → 1.0.10

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.
@@ -5,8 +5,10 @@ const env_1 = require("../env");
5
5
  const Module = (config) => {
6
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;
7
7
  return (target) => {
8
+ if (name) {
9
+ Reflect.defineMetadata(env_1.PLUGIN_NAME_METADATA, name, target);
10
+ }
8
11
  Reflect.defineMetadata("isModule", true, target);
9
- Reflect.defineMetadata(env_1.PLUGIN_NAME_METADATA, name, target);
10
12
  Reflect.defineMetadata(env_1.MODULE_METADATA.IMPORTS, imports, target);
11
13
  Reflect.defineMetadata(env_1.MODULE_METADATA.CONTROLLERS, controllers, target);
12
14
  Reflect.defineMetadata(env_1.MODULE_METADATA.PROVIDERS, providers, target);
@@ -18,7 +18,7 @@ const Plugin = (config) => {
18
18
  const { name } = config, rest = __rest(config, ["name"]);
19
19
  return (target) => {
20
20
  Reflect.defineMetadata("isPlugin", true, target);
21
- Reflect.defineMetadata(env_1.PLUGIN_NAME_METADATA, true, target);
21
+ Reflect.defineMetadata(env_1.PLUGIN_NAME_METADATA, name, target);
22
22
  (0, Module_1.Module)(rest)(target);
23
23
  };
24
24
  };
@@ -13,7 +13,7 @@ export declare abstract class Config {
13
13
  env?: EnvConfig;
14
14
  protected constructor(data: ConfigProperties);
15
15
  addPlugin(plugin: string): void;
16
- removePlugin(plugin: string): void;
16
+ removePlugin(removePlugin: string): void;
17
17
  setProject(id: string, path: string): void;
18
18
  getMeta(name: string, defaultValue: string): string;
19
19
  setMeta(name: string, value: string): void;
@@ -9,10 +9,16 @@ class Config {
9
9
  Object.assign(this, data);
10
10
  }
11
11
  addPlugin(plugin) {
12
+ if (!this.plugins) {
13
+ this.plugins = [];
14
+ }
15
+ if (this.plugins.includes(plugin)) {
16
+ return;
17
+ }
12
18
  this.plugins.push(plugin);
13
19
  }
14
- removePlugin(plugin) {
15
- this.plugins = this.plugins.filter((plugin) => plugin !== plugin);
20
+ removePlugin(removePlugin) {
21
+ this.plugins = this.plugins.filter((plugin) => plugin !== removePlugin);
16
22
  }
17
23
  setProject(id, path) {
18
24
  this.projects = [
package/lib/makes/FS.d.ts CHANGED
@@ -8,12 +8,13 @@ type ReadFileOptions = Abortable & {
8
8
  encoding?: BufferEncoding;
9
9
  flag?: string;
10
10
  };
11
- declare class FS {
11
+ export declare class FS {
12
12
  static mkdir(path: PathLike, options?: MakeDirectoryOptions): Promise<unknown>;
13
13
  static readFile(filePath: PathOrFileDescriptor, options?: ReadFileOptions): Promise<string | Buffer>;
14
14
  static writeFile(filePath: PathOrFileDescriptor, data: string | NodeJS.ArrayBufferView, options?: WriteFileOptions): Promise<unknown>;
15
15
  static readJSON(...paths: string[]): Promise<any>;
16
16
  static writeJSON(filePath: PathOrFileDescriptor, data: any, options?: WriteFileOptions): Promise<void>;
17
+ static readdir(path: PathLike): Promise<string[]>;
17
18
  static rm(path: PathLike, options?: RmOptions): Promise<void>;
18
19
  }
19
- export { FS };
20
+ export {};
package/lib/makes/FS.js CHANGED
@@ -31,15 +31,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
31
31
  step((generator = generator.apply(thisArg, _arguments || [])).next());
32
32
  });
33
33
  };
34
+ var __importDefault = (this && this.__importDefault) || function (mod) {
35
+ return (mod && mod.__esModule) ? mod : { "default": mod };
36
+ };
34
37
  Object.defineProperty(exports, "__esModule", { value: true });
35
38
  exports.FS = void 0;
36
- const fs_1 = require("fs");
39
+ const fs_1 = __importDefault(require("fs"));
37
40
  const Path = __importStar(require("path"));
38
41
  class FS {
39
42
  static mkdir(path, options) {
40
43
  return __awaiter(this, void 0, void 0, function* () {
41
44
  return new Promise((resolve, reject) => {
42
- (0, fs_1.mkdir)(path, options, (err) => {
45
+ fs_1.default.mkdir(path, options, (err) => {
43
46
  if (err) {
44
47
  reject(err);
45
48
  return;
@@ -52,7 +55,7 @@ class FS {
52
55
  static readFile(filePath, options) {
53
56
  return __awaiter(this, void 0, void 0, function* () {
54
57
  return new Promise((resolve, reject) => {
55
- (0, fs_1.readFile)(filePath, options, (err, res) => {
58
+ fs_1.default.readFile(filePath, options, (err, res) => {
56
59
  if (err) {
57
60
  reject(err);
58
61
  return;
@@ -73,10 +76,10 @@ class FS {
73
76
  resolve(undefined);
74
77
  };
75
78
  if (options) {
76
- (0, fs_1.writeFile)(filePath, data, options, callback);
79
+ fs_1.default.writeFile(filePath, data, options, callback);
77
80
  }
78
81
  else {
79
- (0, fs_1.writeFile)(filePath, data, callback);
82
+ fs_1.default.writeFile(filePath, data, callback);
80
83
  }
81
84
  });
82
85
  });
@@ -85,7 +88,7 @@ class FS {
85
88
  return __awaiter(this, void 0, void 0, function* () {
86
89
  const res = yield new Promise((resolve, reject) => {
87
90
  const filePath = Path.join(...paths);
88
- (0, fs_1.readFile)(filePath, (err, data) => {
91
+ fs_1.default.readFile(filePath, (err, data) => {
89
92
  if (err) {
90
93
  reject(err);
91
94
  return;
@@ -108,14 +111,28 @@ class FS {
108
111
  resolve(undefined);
109
112
  };
110
113
  if (options) {
111
- (0, fs_1.writeFile)(filePath, json, options, callback);
114
+ fs_1.default.writeFile(filePath, json, options, callback);
112
115
  }
113
116
  else {
114
- (0, fs_1.writeFile)(filePath, json, callback);
117
+ fs_1.default.writeFile(filePath, json, callback);
115
118
  }
116
119
  });
117
120
  });
118
121
  }
122
+ static readdir(path) {
123
+ return __awaiter(this, void 0, void 0, function* () {
124
+ return new Promise((resolve, reject) => {
125
+ fs_1.default.readdir(path, (err, files) => {
126
+ if (!err) {
127
+ resolve(files);
128
+ }
129
+ else {
130
+ reject(err);
131
+ }
132
+ });
133
+ });
134
+ });
135
+ }
119
136
  static rm(path, options) {
120
137
  return __awaiter(this, void 0, void 0, function* () {
121
138
  return new Promise((resolve, reject) => {
@@ -127,10 +144,10 @@ class FS {
127
144
  resolve(undefined);
128
145
  };
129
146
  if (options) {
130
- (0, fs_1.rm)(path, options, callback);
147
+ fs_1.default.rm(path, options, callback);
131
148
  }
132
149
  else {
133
- (0, fs_1.rm)(path, callback);
150
+ fs_1.default.rm(path, callback);
134
151
  }
135
152
  });
136
153
  });
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import fs, { createReadStream, MakeDirectoryOptions, RmOptions } from "fs";
3
- declare class FSManager {
4
- protected source: string;
5
- protected destination: string;
3
+ import { FileSystem } from "./FileSystem";
4
+ export declare class FSManager {
5
+ readonly source: FileSystem;
6
+ readonly destination: FileSystem;
6
7
  constructor(source: string, destination: string);
7
8
  path(...parts: string[]): string;
8
9
  mkdir(path: string, options?: MakeDirectoryOptions): Promise<unknown>;
@@ -15,4 +16,3 @@ declare class FSManager {
15
16
  createWriteStream(...parts: string[]): fs.WriteStream;
16
17
  createReadStream(path: string, options?: Parameters<typeof createReadStream>[1]): fs.ReadStream;
17
18
  }
18
- export { FSManager };
@@ -34,18 +34,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
34
34
  Object.defineProperty(exports, "__esModule", { value: true });
35
35
  exports.FSManager = void 0;
36
36
  const fs_1 = __importStar(require("fs"));
37
- const Path = __importStar(require("path"));
37
+ const FileSystem_1 = require("./FileSystem");
38
38
  class FSManager {
39
39
  constructor(source, destination) {
40
- this.source = source;
41
- this.destination = destination;
40
+ this.source = new FileSystem_1.FileSystem(source);
41
+ this.destination = new FileSystem_1.FileSystem(destination);
42
42
  }
43
43
  path(...parts) {
44
- return Path.join(this.destination, ...parts);
44
+ return this.destination.path(...parts);
45
45
  }
46
46
  mkdir(path_1) {
47
47
  return __awaiter(this, arguments, void 0, function* (path, options = {}) {
48
- const fullPath = Path.join(this.destination, path);
48
+ const fullPath = this.path(path);
49
49
  return new Promise((resolve, reject) => {
50
50
  (0, fs_1.mkdir)(fullPath, options, (err) => {
51
51
  if (err) {
@@ -59,7 +59,7 @@ class FSManager {
59
59
  }
60
60
  readdir(path) {
61
61
  return __awaiter(this, void 0, void 0, function* () {
62
- const filePath = Path.join(this.destination, path);
62
+ const filePath = this.path(path);
63
63
  return new Promise((resolve, reject) => {
64
64
  (0, fs_1.readdir)(filePath, (err, files) => {
65
65
  if (err) {
@@ -72,16 +72,16 @@ class FSManager {
72
72
  });
73
73
  }
74
74
  exists(path) {
75
- const fullPath = Path.join(this.destination, path);
75
+ const fullPath = this.path(path);
76
76
  return (0, fs_1.existsSync)(fullPath);
77
77
  }
78
78
  copy(path) {
79
- const destination = Path.join(this.destination, path);
79
+ const destination = this.path(path);
80
80
  if ((0, fs_1.existsSync)(destination)) {
81
81
  return Promise.resolve();
82
82
  }
83
83
  return new Promise((resolve, reject) => {
84
- (0, fs_1.copyFile)(Path.join(this.source, path), destination, (err) => {
84
+ (0, fs_1.copyFile)(this.source.path(path), destination, (err) => {
85
85
  if (err) {
86
86
  reject(err);
87
87
  return;
@@ -92,7 +92,7 @@ class FSManager {
92
92
  }
93
93
  readJSON(path) {
94
94
  return __awaiter(this, void 0, void 0, function* () {
95
- const filePath = Path.join(this.destination, ...path);
95
+ const filePath = this.path(path);
96
96
  const res = yield new Promise((resolve, reject) => {
97
97
  (0, fs_1.readFile)(filePath, (err, data) => {
98
98
  if (err) {
@@ -108,7 +108,7 @@ class FSManager {
108
108
  writeJSON(path, data) {
109
109
  return __awaiter(this, void 0, void 0, function* () {
110
110
  const json = JSON.stringify(data, null, 4);
111
- const filePath = Path.join(this.destination, path);
111
+ const filePath = this.path(path);
112
112
  return new Promise((resolve, reject) => {
113
113
  (0, fs_1.writeFile)(filePath, json, (err) => {
114
114
  if (err) {
@@ -122,7 +122,7 @@ class FSManager {
122
122
  }
123
123
  rm(path_1) {
124
124
  return __awaiter(this, arguments, void 0, function* (path, options = {}) {
125
- const filePath = Path.join(this.destination, path);
125
+ const filePath = this.path(path);
126
126
  return new Promise((resolve, reject) => {
127
127
  fs_1.default.rm(filePath, options, (err) => {
128
128
  if (err) {
@@ -135,11 +135,11 @@ class FSManager {
135
135
  });
136
136
  }
137
137
  createWriteStream(...parts) {
138
- const filePath = Path.join(this.destination, ...parts);
138
+ const filePath = this.path(...parts);
139
139
  return (0, fs_1.createWriteStream)(filePath);
140
140
  }
141
141
  createReadStream(path, options) {
142
- const filePath = Path.join(this.destination, path);
142
+ const filePath = this.path(path);
143
143
  return (0, fs_1.createReadStream)(filePath, options);
144
144
  }
145
145
  }
@@ -0,0 +1,16 @@
1
+ /// <reference types="node" />
2
+ import * as fs from "fs";
3
+ type ReaddirOptions = fs.ObjectEncodingOptions & {
4
+ recursive?: boolean | undefined;
5
+ };
6
+ export declare class FileSystem {
7
+ protected readonly source: string;
8
+ constructor(source: string);
9
+ path(...parts: string[]): string;
10
+ exists(...parts: string[]): boolean;
11
+ stat(...parts: string[]): fs.Stats;
12
+ mkdir(path: string, options?: fs.MakeDirectoryOptions): void;
13
+ readdir(...parts: string[]): Promise<unknown>;
14
+ readdirFiles(path?: string, options?: ReaddirOptions): Promise<string[]>;
15
+ }
16
+ export {};
@@ -0,0 +1,90 @@
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
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.FileSystem = void 0;
36
+ const fs = __importStar(require("fs"));
37
+ const Path = __importStar(require("path"));
38
+ class FileSystem {
39
+ constructor(source) {
40
+ this.source = source;
41
+ }
42
+ path(...parts) {
43
+ return Path.join(this.source, ...parts);
44
+ }
45
+ exists(...parts) {
46
+ const fullPath = this.path(...parts);
47
+ return fs.existsSync(fullPath);
48
+ }
49
+ stat(...parts) {
50
+ const fullPath = this.path(...parts);
51
+ return fs.statSync(fullPath);
52
+ }
53
+ mkdir(path, options) {
54
+ const fullPath = this.path(path);
55
+ fs.mkdirSync(fullPath, options);
56
+ }
57
+ readdir(...parts) {
58
+ return __awaiter(this, void 0, void 0, function* () {
59
+ const fullPath = this.path(...parts);
60
+ return new Promise((resolve, reject) => {
61
+ fs.readdir(fullPath, (err, files) => {
62
+ if (err) {
63
+ reject(err);
64
+ return;
65
+ }
66
+ resolve(files);
67
+ });
68
+ });
69
+ });
70
+ }
71
+ readdirFiles() {
72
+ return __awaiter(this, arguments, void 0, function* (path = "", options) {
73
+ const fullPath = this.path(path);
74
+ return new Promise((resolve, reject) => {
75
+ fs.readdir(fullPath, options, (err, files) => {
76
+ if (err) {
77
+ reject(err);
78
+ return;
79
+ }
80
+ files = files.filter((path) => {
81
+ const stat = this.stat(path);
82
+ return stat.isFile();
83
+ });
84
+ resolve(files);
85
+ });
86
+ });
87
+ });
88
+ }
89
+ }
90
+ exports.FileSystem = FileSystem;
@@ -1,4 +1,5 @@
1
1
  import { PickProperties, EnvConfig } from "../types";
2
+ type ProjectProperties = Omit<PickProperties<Project>, "containerName">;
2
3
  export declare abstract class Project {
3
4
  id: string;
4
5
  name: string;
@@ -13,7 +14,7 @@ export declare abstract class Project {
13
14
  ports?: string[];
14
15
  volumes?: string[];
15
16
  metadata?: EnvConfig;
16
- protected constructor(data: PickProperties<Project>);
17
+ protected constructor(data: ProjectProperties);
17
18
  get containerName(): string;
18
19
  hasEnv(name: string): boolean;
19
20
  getEnv(name: string, defaultValue?: string): string | undefined;
@@ -28,6 +29,8 @@ export declare abstract class Project {
28
29
  volumeMount(...volumes: string[]): void;
29
30
  volumeUnmount(...volumes: string[]): void;
30
31
  abstract save(): Promise<void>;
32
+ toJSON(): ProjectProperties;
31
33
  }
32
34
  export declare const PROJECT_TYPE_DOCKERFILE = "dockerfile";
33
35
  export declare const PROJECT_TYPE_IMAGE = "image";
36
+ export {};
@@ -106,6 +106,23 @@ class Project {
106
106
  return !volumes.includes(mounted);
107
107
  });
108
108
  }
109
+ toJSON() {
110
+ return {
111
+ id: this.id,
112
+ name: this.name,
113
+ type: this.type,
114
+ path: this.path,
115
+ preset: this.preset,
116
+ imageName: this.imageName,
117
+ dockerfile: this.dockerfile,
118
+ scripts: this.scripts,
119
+ buildArgs: this.buildArgs,
120
+ env: this.env,
121
+ ports: this.ports,
122
+ volumes: this.volumes,
123
+ metadata: this.metadata
124
+ };
125
+ }
109
126
  }
110
127
  exports.Project = Project;
111
128
  exports.PROJECT_TYPE_DOCKERFILE = "dockerfile";
@@ -1,6 +1,7 @@
1
1
  export * from "./Config";
2
2
  export * from "./Container";
3
3
  export * from "./DI";
4
+ export * from "./FileSystem";
4
5
  export * from "./FS";
5
6
  export * from "./FSManager";
6
7
  export * from "./Logger";
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./Config"), exports);
18
18
  __exportStar(require("./Container"), exports);
19
19
  __exportStar(require("./DI"), exports);
20
+ __exportStar(require("./FileSystem"), exports);
20
21
  __exportStar(require("./FS"), exports);
21
22
  __exportStar(require("./FSManager"), exports);
22
23
  __exportStar(require("./Logger"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wocker/core",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "author": "Kris Papercut <krispcut@gmail.com>",
5
5
  "description": "Core of wocker",
6
6
  "license": "MIT",