@ldsg/resource 0.1.0-alpha.4 → 0.1.0-alpha.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.
@@ -1,4 +1,11 @@
1
+ import { ListIterateeCustom } from "lodash";
1
2
  import { Manifest } from "./types/manifest";
3
+ type GetFilteredResourcesParams = ListIterateeCustom<Resource<Manifest.ResourceSettings>, boolean>;
4
+ type GetFilteredResources = (params: GetFilteredResourcesParams) => Resource[];
5
+ type GetFilteredResource = (params: GetFilteredResourcesParams) => Resource | undefined;
6
+ export interface ResourceConstructorParams<T extends Manifest.ResourceSettings = Manifest.ResourceSettings> extends Manifest.Resource<T> {
7
+ relatedResources?: Resource[];
8
+ }
2
9
  export declare class Resource<T extends Manifest.ResourceSettings = Manifest.ResourceSettings> implements Manifest.Resource<T> {
3
10
  /**
4
11
  * Resource ID
@@ -16,14 +23,19 @@ export declare class Resource<T extends Manifest.ResourceSettings = Manifest.Res
16
23
  * Resource Settings
17
24
  */
18
25
  settings: T;
19
- constructor(resource: Manifest.Resource<T>);
20
- getId: () => string;
21
- getKind: () => string;
22
- getParentId: () => string;
23
26
  /**
24
- * Get Resource Settings
25
- * @returns Resource Settings
27
+ * Related Resources
28
+ */
29
+ relatedResources: Resource[];
30
+ constructor(params: ResourceConstructorParams<T>);
31
+ /**
32
+ * Get Filtered Resource
33
+ */
34
+ getFilteredResource: GetFilteredResource;
35
+ /**
36
+ * Get Filtered Resources
26
37
  */
27
- getSettings: () => T;
38
+ getFilteredResources: GetFilteredResources;
28
39
  }
40
+ export {};
29
41
  //# sourceMappingURL=resource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,qBAAa,QAAQ,CACnB,CAAC,SAAS,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAC/D,YAAW,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAC;gBAEA,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAS1C,KAAK,eAQH;IAEF,OAAO,eAQL;IAEF,WAAW,eAQT;IAEF;;;OAGG;IACH,WAAW,UAIT;CACH"}
1
+ {"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"AAAA,OAAU,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,KAAK,0BAA0B,GAAG,kBAAkB,CAClD,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EACnC,OAAO,CACR,CAAC;AAEF,KAAK,oBAAoB,GAAG,CAAC,MAAM,EAAE,0BAA0B,KAAK,QAAQ,EAAE,CAAC;AAE/E,KAAK,mBAAmB,GAAG,CACzB,MAAM,EAAE,0BAA0B,KAC/B,QAAQ,GAAG,SAAS,CAAC;AAE1B,MAAM,WAAW,yBAAyB,CACxC,CAAC,SAAS,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAC/D,SAAQ,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5B,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC/B;AAED,qBAAa,QAAQ,CACnB,CAAC,SAAS,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,CAC/D,YAAW,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE/B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,EAAE,CAAC,CAAC;IAEZ;;OAEG;IACH,gBAAgB,EAAE,QAAQ,EAAE,CAAC;gBAEjB,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAC;IAUhD;;OAEG;IACH,mBAAmB,EAAE,mBAAmB,CAEtC;IAEF;;OAEG;IACH,oBAAoB,EAAE,oBAAoB,CAQxC;CACH"}
package/dist/resource.js CHANGED
@@ -1,43 +1,33 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.Resource = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
4
8
  class Resource {
5
- constructor(resource) {
6
- this.getId = () => {
7
- const id = this.id;
8
- if (!id) {
9
- throw new Error("resource id is required");
10
- }
11
- return id;
12
- };
13
- this.getKind = () => {
14
- const type = this.kind;
15
- if (!type) {
16
- throw new Error("resource kind is required");
17
- }
18
- return type;
19
- };
20
- this.getParentId = () => {
21
- const parentId = this.parentId;
22
- if (!parentId) {
23
- throw new Error("resource parent id is required");
24
- }
25
- return parentId;
9
+ constructor(params) {
10
+ /**
11
+ * Get Filtered Resource
12
+ */
13
+ this.getFilteredResource = (params) => {
14
+ return this.getFilteredResources(params)[0];
26
15
  };
27
16
  /**
28
- * Get Resource Settings
29
- * @returns Resource Settings
17
+ * Get Filtered Resources
30
18
  */
31
- this.getSettings = () => {
32
- var _a;
33
- const settings = (_a = this.settings) !== null && _a !== void 0 ? _a : {};
34
- return settings;
19
+ this.getFilteredResources = (params) => {
20
+ const { relatedResources } = this;
21
+ console.debug("getFilteredResources relatedResources", relatedResources);
22
+ console.debug("getFilteredResources params", params);
23
+ return lodash_1.default.filter(relatedResources, params);
35
24
  };
36
- const { id, kind, parentId, settings } = resource;
25
+ const { id, kind, parentId, settings, relatedResources = [] } = params;
37
26
  this.id = id;
38
27
  this.kind = kind;
39
28
  this.parentId = parentId;
40
29
  this.settings = settings;
30
+ this.relatedResources = relatedResources;
41
31
  }
42
32
  }
43
33
  exports.Resource = Resource;
@@ -1,2 +1,5 @@
1
+ export * from "./instantiate-resource";
2
+ export * from "./instantiate-resources";
1
3
  export * from "./manifest";
4
+ export * from "./resource-definition-resource-settings";
2
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,YAAY,CAAC;AAC3B,cAAc,yCAAyC,CAAC"}
@@ -14,4 +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
+ __exportStar(require("./instantiate-resource"), exports);
18
+ __exportStar(require("./instantiate-resources"), exports);
17
19
  __exportStar(require("./manifest"), exports);
20
+ __exportStar(require("./resource-definition-resource-settings"), exports);
@@ -0,0 +1,10 @@
1
+ import { Resource, ResourceConstructorParams } from "../resource";
2
+ import { Manifest } from "./manifest";
3
+ export interface InstantiateResourceParams<T extends Manifest.ResourceSettings = Manifest.ResourceSettings> {
4
+ resourceConstructorParams: ResourceConstructorParams<T>;
5
+ }
6
+ export interface InstantiateResourceRes<R extends Resource = Resource> {
7
+ resource: R;
8
+ }
9
+ export type InstantiateResource<T extends Manifest.ResourceSettings = Manifest.ResourceSettings, R extends Resource = Resource> = (params: InstantiateResourceParams<T>) => InstantiateResourceRes<R>;
10
+ //# sourceMappingURL=instantiate-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiate-resource.d.ts","sourceRoot":"","sources":["../../src/types/instantiate-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,WAAW,yBAAyB,CACxC,CAAC,SAAS,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB;IAE/D,yBAAyB,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACnE,QAAQ,EAAE,CAAC,CAAC;CACb;AAED,MAAM,MAAM,mBAAmB,CAC7B,CAAC,SAAS,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,EAC/D,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAC3B,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,11 @@
1
+ import { Resource } from "../resource";
2
+ import { Manifest } from "./manifest";
3
+ interface Params<T extends Manifest.ResourceSettings = Manifest.ResourceSettings> {
4
+ manifestResources: Manifest.Resource<T>[];
5
+ }
6
+ export interface InstantiateResourcesRes<R extends Resource = Resource> {
7
+ resources: R[];
8
+ }
9
+ export type InstantiateResources<T extends Manifest.ResourceSettings = Manifest.ResourceSettings, R extends Resource = Resource> = (params: Params<T>) => InstantiateResourcesRes<R>;
10
+ export {};
11
+ //# sourceMappingURL=instantiate-resources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instantiate-resources.d.ts","sourceRoot":"","sources":["../../src/types/instantiate-resources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,UAAU,MAAM,CACd,CAAC,SAAS,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB;IAE/D,iBAAiB,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAuB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ;IACpE,SAAS,EAAE,CAAC,EAAE,CAAC;CAChB;AAED,MAAM,MAAM,oBAAoB,CAC9B,CAAC,SAAS,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,gBAAgB,EAC/D,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAC3B,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,7 +17,7 @@ export declare namespace Manifest {
17
17
  [key: string]: any;
18
18
  }
19
19
  /**
20
- * Resource
20
+ * Resource Config
21
21
  */
22
22
  interface Resource<T extends ResourceSettings = ResourceSettings> {
23
23
  /**
@@ -0,0 +1,13 @@
1
+ import { Manifest } from "./manifest";
2
+ export interface ResourceDefinitionResourceSettings extends Manifest.ResourceSettings {
3
+ /**
4
+ * Resource Kind
5
+ */
6
+ kind: string;
7
+ /**
8
+ * Sub Resource Kinds
9
+ * When it is an empty array, there are no sub resource.
10
+ */
11
+ subKinds: string[];
12
+ }
13
+ //# sourceMappingURL=resource-definition-resource-settings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource-definition-resource-settings.d.ts","sourceRoot":"","sources":["../../src/types/resource-definition-resource-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,WAAW,kCACf,SAAQ,QAAQ,CAAC,gBAAgB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ldsg/resource",
3
- "version": "0.1.0-alpha.4",
3
+ "version": "0.1.0-alpha.6",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -13,7 +13,13 @@
13
13
  "publishConfig": {
14
14
  "access": "public"
15
15
  },
16
+ "dependencies": {
17
+ "lodash": "^4.17.21"
18
+ },
19
+ "devDependencies": {
20
+ "@types/lodash": "^4.14.202"
21
+ },
16
22
  "scripts": {
17
- "build": "tsc --project tsconfig.build.json"
23
+ "build": "rm -rf dist && tsc --project tsconfig.build.json"
18
24
  }
19
25
  }