@nx-ddd/common 19.0.0-preview.29 → 19.0.0-preview.4
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 +40 -0
- package/domain/index.d.ts +0 -1
- package/domain/index.js +6 -0
- package/domain/index.js.map +1 -0
- package/domain/models.d.ts +0 -1
- package/domain/models.js +129 -0
- package/domain/models.js.map +1 -0
- package/domain/repository.d.ts +5 -24
- package/domain/repository.js +27 -0
- package/domain/repository.js.map +1 -0
- package/domain/resolver.js +25 -0
- package/domain/resolver.js.map +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -0
- package/infrastructure/converter.js +7 -0
- package/infrastructure/converter.js.map +1 -0
- package/infrastructure/externals/backup/backup.service.d.ts +24 -0
- package/infrastructure/externals/backup/backup.service.js +67 -0
- package/infrastructure/externals/backup/backup.service.js.map +1 -0
- package/infrastructure/externals/backup/index.d.ts +1 -0
- package/infrastructure/externals/backup/index.js +5 -0
- package/infrastructure/externals/backup/index.js.map +1 -0
- package/infrastructure/externals/chromium/{impl/chromium.service.impl.d.ts → chromium.service.impl.d.ts} +8 -4
- package/infrastructure/externals/chromium/chromium.service.impl.js +58 -0
- package/infrastructure/externals/chromium/chromium.service.impl.js.map +1 -0
- package/infrastructure/externals/chromium/chromuim.service.d.ts +9 -0
- package/infrastructure/externals/chromium/chromuim.service.js +6 -0
- package/infrastructure/externals/chromium/chromuim.service.js.map +1 -0
- package/infrastructure/externals/chromium/index.d.ts +1 -1
- package/infrastructure/externals/chromium/index.js +5 -0
- package/infrastructure/externals/chromium/index.js.map +1 -0
- package/infrastructure/externals/cloud-storage/cloud-storage.service.d.ts +0 -3
- package/infrastructure/externals/cloud-storage/cloud-storage.service.js +43 -0
- package/infrastructure/externals/cloud-storage/cloud-storage.service.js.map +1 -0
- package/infrastructure/externals/cloud-storage/index.js +5 -0
- package/infrastructure/externals/cloud-storage/index.js.map +1 -0
- package/infrastructure/externals/firebase-admin/firebase-admin.service.d.ts +8 -1
- package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.d.ts +5 -0
- package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.js +13 -0
- package/infrastructure/externals/firebase-admin/firebase-admin.service.impl.js.map +1 -0
- package/infrastructure/externals/firebase-admin/firebase-admin.service.js +11 -0
- package/infrastructure/externals/firebase-admin/firebase-admin.service.js.map +1 -0
- package/infrastructure/externals/firebase-admin/index.js +5 -0
- package/infrastructure/externals/firebase-admin/index.js.map +1 -0
- package/infrastructure/externals/openai/index.d.ts +1 -0
- package/infrastructure/externals/openai/index.js +6 -0
- package/infrastructure/externals/openai/index.js.map +1 -0
- package/infrastructure/externals/openai/open-ai.config.js +19 -0
- package/infrastructure/externals/openai/open-ai.config.js.map +1 -0
- package/infrastructure/externals/openai/open-ai.service.d.ts +3 -3
- package/infrastructure/externals/openai/open-ai.service.impl.d.ts +4 -0
- package/infrastructure/externals/openai/open-ai.service.impl.js +18 -0
- package/infrastructure/externals/openai/open-ai.service.impl.js.map +1 -0
- package/infrastructure/externals/openai/open-ai.service.js +11 -0
- package/infrastructure/externals/openai/open-ai.service.js.map +1 -0
- package/infrastructure/externals/stripe/index.d.ts +1 -0
- package/infrastructure/externals/stripe/index.js +6 -0
- package/infrastructure/externals/stripe/index.js.map +1 -0
- package/infrastructure/externals/stripe/{impl/stripe.config.d.ts → stripe.config.d.ts} +1 -1
- package/infrastructure/externals/stripe/stripe.config.js +15 -0
- package/infrastructure/externals/stripe/stripe.config.js.map +1 -0
- package/infrastructure/externals/stripe/stripe.service.d.ts +3 -1
- package/infrastructure/externals/stripe/stripe.service.impl.d.ts +5 -0
- package/infrastructure/externals/stripe/stripe.service.impl.js +44 -0
- package/infrastructure/externals/stripe/stripe.service.impl.js.map +1 -0
- package/infrastructure/externals/stripe/stripe.service.js +11 -0
- package/infrastructure/externals/stripe/stripe.service.js.map +1 -0
- package/infrastructure/index.d.ts +1 -0
- package/infrastructure/index.js +7 -0
- package/infrastructure/index.js.map +1 -0
- package/infrastructure/queries/cached-query.d.ts +1 -4
- package/infrastructure/queries/cached-query.js +47 -0
- package/infrastructure/queries/cached-query.js.map +1 -0
- package/infrastructure/queries/index.js +5 -0
- package/infrastructure/queries/index.js.map +1 -0
- package/infrastructure/repo/excel/excel.converter.d.ts +16 -9
- package/infrastructure/repo/excel/excel.converter.js +71 -0
- package/infrastructure/repo/excel/excel.converter.js.map +1 -0
- package/infrastructure/repo/excel/excel.decorators.js +55 -0
- package/infrastructure/repo/excel/excel.decorators.js.map +1 -0
- package/infrastructure/repo/excel/excel.repository.d.ts +4 -15
- package/infrastructure/repo/excel/excel.repository.js +32 -0
- package/infrastructure/repo/excel/excel.repository.js.map +1 -0
- package/infrastructure/repo/excel/{impl/excel.service.impl.d.ts → excel.service.impl.d.ts} +3 -6
- package/infrastructure/repo/excel/excel.service.impl.js +61 -0
- package/infrastructure/repo/excel/excel.service.impl.js.map +1 -0
- package/infrastructure/repo/excel/index.js +7 -0
- package/infrastructure/repo/excel/index.js.map +1 -0
- package/infrastructure/synchronizer.js +18 -0
- package/infrastructure/synchronizer.js.map +1 -0
- package/package.json +12 -94
- package/utilities/generate-id.js +23 -0
- package/utilities/generate-id.js.map +1 -0
- package/utilities/index.d.ts +0 -1
- package/utilities/index.js +6 -0
- package/utilities/index.js.map +1 -0
- package/utilities/message.js +26 -0
- package/utilities/message.js.map +1 -0
- package/utilities/to-object.js +14 -0
- package/utilities/to-object.js.map +1 -0
- package/fesm2022/nx-ddd-common-domain.mjs +0 -180
- package/fesm2022/nx-ddd-common-domain.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-impl.mjs +0 -59
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-impl.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-token.mjs +0 -10
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium-token.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium.mjs +0 -10
- package/fesm2022/nx-ddd-common-infrastructure-externals-chromium.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-cloud-storage.mjs +0 -46
- package/fesm2022/nx-ddd-common-infrastructure-externals-cloud-storage.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-impl.mjs +0 -16
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-impl.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-token.mjs +0 -10
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin-token.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin.mjs +0 -13
- package/fesm2022/nx-ddd-common-infrastructure-externals-firebase-admin.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai-impl.mjs +0 -37
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai-impl.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai-token.mjs +0 -10
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai-token.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai.mjs +0 -14
- package/fesm2022/nx-ddd-common-infrastructure-externals-openai.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-impl.mjs +0 -33
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-impl.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-token.mjs +0 -10
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe-token.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe.mjs +0 -13
- package/fesm2022/nx-ddd-common-infrastructure-externals-stripe.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-queries.mjs +0 -54
- package/fesm2022/nx-ddd-common-infrastructure-queries.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel-impl.mjs +0 -63
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel-impl.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel-token.mjs +0 -10
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel-token.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel.mjs +0 -160
- package/fesm2022/nx-ddd-common-infrastructure-repo-excel.mjs.map +0 -1
- package/fesm2022/nx-ddd-common-infrastructure.mjs +0 -25
- package/fesm2022/nx-ddd-common-infrastructure.mjs.map +0 -1
- package/fesm2022/nx-ddd-common.mjs +0 -57
- package/fesm2022/nx-ddd-common.mjs.map +0 -1
- package/infrastructure/externals/chromium/chromium.service.d.ts +0 -3
- package/infrastructure/externals/chromium/impl/index.d.ts +0 -1
- package/infrastructure/externals/chromium/token/index.d.ts +0 -1
- package/infrastructure/externals/firebase-admin/impl/firebase-admin.service.impl.d.ts +0 -5
- package/infrastructure/externals/firebase-admin/impl/index.d.ts +0 -1
- package/infrastructure/externals/firebase-admin/token/index.d.ts +0 -8
- package/infrastructure/externals/openai/impl/index.d.ts +0 -2
- package/infrastructure/externals/openai/impl/open-ai.service.impl.d.ts +0 -7
- package/infrastructure/externals/openai/token/index.d.ts +0 -1
- package/infrastructure/externals/stripe/impl/index.d.ts +0 -2
- package/infrastructure/externals/stripe/impl/stripe.service.impl.d.ts +0 -8
- package/infrastructure/externals/stripe/token/index.d.ts +0 -2
- package/infrastructure/repo/excel/impl/index.d.ts +0 -1
- package/infrastructure/repo/excel/token/index.d.ts +0 -1
- /package/infrastructure/externals/openai/{impl/open-ai.config.d.ts → open-ai.config.d.ts} +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# NxDDD Common
|
|
2
|
+
`@nx-ddd/common` is a library used for domain model annotations and related functionalities.
|
|
3
|
+
|
|
4
|
+
## Install
|
|
5
|
+
```sh
|
|
6
|
+
$ npm i @nx-ddd/common
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
## Usage
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { Domain, getAnnotations, getLangMap, getModelName } from './models';
|
|
13
|
+
|
|
14
|
+
@Domain.Entity({name: 'Profile'})
|
|
15
|
+
class Profile {
|
|
16
|
+
@Domain.Lang('名前') name: string;
|
|
17
|
+
@Domain.Lang('メールアドレス') email: string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@Domain.Entity({name: 'ユーザー'})
|
|
21
|
+
class User {
|
|
22
|
+
@Domain.Lang('ID') id: string;
|
|
23
|
+
@Domain.Type() profile: Profile;
|
|
24
|
+
@Domain.Lang('作成日時') createdAt: Date;
|
|
25
|
+
@Domain.Lang('更新日時') updatedAt: Date;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
getLangMap(User);
|
|
29
|
+
/**
|
|
30
|
+
-> {
|
|
31
|
+
id: 'ID',
|
|
32
|
+
'profile.name': '名前',
|
|
33
|
+
'profile.email': 'メールアドレス',
|
|
34
|
+
createdAt: '作成日時',
|
|
35
|
+
updatedAt: '更新日時',
|
|
36
|
+
}
|
|
37
|
+
* */
|
|
38
|
+
|
|
39
|
+
getModelName(User) // -> 'ユーザー'
|
|
40
|
+
```
|
package/domain/index.d.ts
CHANGED
package/domain/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/common/src/domain/index.ts"],"names":[],"mappings":";;;AAAA,mDAAyB;AACzB,qDAA2B"}
|
package/domain/models.d.ts
CHANGED
package/domain/models.js
ADDED
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Entity = exports.Domain = void 0;
|
|
4
|
+
exports.getLangMap = getLangMap;
|
|
5
|
+
exports.getAnnotations = getAnnotations;
|
|
6
|
+
exports.getDomainProps = getDomainProps;
|
|
7
|
+
exports.getProps = getProps;
|
|
8
|
+
exports.getModelName = getModelName;
|
|
9
|
+
exports.getEntityName = getEntityName;
|
|
10
|
+
exports.TransformToDayjs = TransformToDayjs;
|
|
11
|
+
const tslib_1 = require("tslib");
|
|
12
|
+
require("reflect-metadata");
|
|
13
|
+
const to_object_1 = require("../utilities/to-object");
|
|
14
|
+
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
15
|
+
const flat_1 = require("flat");
|
|
16
|
+
const class_transformer_1 = require("class-transformer");
|
|
17
|
+
const lodash_es_1 = require("lodash-es");
|
|
18
|
+
class Domain {
|
|
19
|
+
static Lang(name) {
|
|
20
|
+
return (target, propName) => {
|
|
21
|
+
this.registerAnnotation(target.constructor, { propName, type: 'prop:lang', name });
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static Type(typeFactory) {
|
|
25
|
+
return (target, propName) => {
|
|
26
|
+
if (!typeFactory) {
|
|
27
|
+
const type = Reflect.getMetadata('design:type', target, propName);
|
|
28
|
+
typeFactory = () => type;
|
|
29
|
+
}
|
|
30
|
+
this.registerAnnotation(target.constructor, { propName, typeFactory, type: 'prop:type' });
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
// classをデコレートしてnameをアノテーションする
|
|
34
|
+
static Entity(propsOrName) {
|
|
35
|
+
const props = typeof propsOrName === 'string' ? { name: propsOrName } : propsOrName;
|
|
36
|
+
return (target) => {
|
|
37
|
+
this.registerAnnotation(target, { name: props.name, type: 'model:lang', modelName: target.name });
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
static registerAnnotation(constructor, annotation) {
|
|
41
|
+
var _a;
|
|
42
|
+
var _b;
|
|
43
|
+
(_a = constructor[_b = this.ANNOTATIONS]) !== null && _a !== void 0 ? _a : (constructor[_b] = []);
|
|
44
|
+
constructor[this.ANNOTATIONS].push(annotation);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.Domain = Domain;
|
|
48
|
+
Domain.ANNOTATIONS = Symbol('annotations');
|
|
49
|
+
function getLangMap(domain, mergeObj = {}) {
|
|
50
|
+
return (0, flat_1.flatten)((0, lodash_es_1.merge)(_getLangMap(domain), mergeObj));
|
|
51
|
+
}
|
|
52
|
+
function _getLangMap(target) {
|
|
53
|
+
var _a;
|
|
54
|
+
return (0, flat_1.flatten)((_a = getAnnotations(target).reduce((acc, annotation) => {
|
|
55
|
+
var _a;
|
|
56
|
+
switch (annotation.type) {
|
|
57
|
+
case 'prop:lang': {
|
|
58
|
+
acc[annotation.propName] = annotation.name;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
case 'prop:type': {
|
|
62
|
+
const type = (_a = annotation.typeFactory) === null || _a === void 0 ? void 0 : _a.call(annotation);
|
|
63
|
+
acc[annotation.propName] = getLangMap(type);
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return acc;
|
|
68
|
+
}, {})) !== null && _a !== void 0 ? _a : {});
|
|
69
|
+
}
|
|
70
|
+
function getAnnotations(target) {
|
|
71
|
+
var _a;
|
|
72
|
+
return (_a = target === null || target === void 0 ? void 0 : target[Domain.ANNOTATIONS]) !== null && _a !== void 0 ? _a : [];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated
|
|
76
|
+
* use getProps instead.
|
|
77
|
+
*/
|
|
78
|
+
function getDomainProps(target, deps = 3, path = '') {
|
|
79
|
+
return getProps(target, deps, path);
|
|
80
|
+
}
|
|
81
|
+
function getProps(target, deps = 3, path = '') {
|
|
82
|
+
return getAnnotations(target).map((annotation) => {
|
|
83
|
+
var _a;
|
|
84
|
+
switch (annotation.type) {
|
|
85
|
+
case 'prop:lang': {
|
|
86
|
+
return `${path}${annotation.propName}`;
|
|
87
|
+
}
|
|
88
|
+
case 'prop:type': {
|
|
89
|
+
if (deps > 0) {
|
|
90
|
+
const type = (_a = annotation.typeFactory) === null || _a === void 0 ? void 0 : _a.call(annotation);
|
|
91
|
+
return getProps(type, deps - 1, `${path}${annotation.propName}.`);
|
|
92
|
+
}
|
|
93
|
+
return [];
|
|
94
|
+
}
|
|
95
|
+
default: return [];
|
|
96
|
+
}
|
|
97
|
+
}).flat();
|
|
98
|
+
}
|
|
99
|
+
function getModelName(target) {
|
|
100
|
+
var _a, _b;
|
|
101
|
+
return (_b = (_a = getAnnotations(target).find(annotation => {
|
|
102
|
+
return annotation.type === 'model:lang';
|
|
103
|
+
})) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : target.name;
|
|
104
|
+
}
|
|
105
|
+
function getEntityName(target) {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
return (_b = (_a = getAnnotations(target).find(annotation => {
|
|
108
|
+
return annotation.type === 'model:lang';
|
|
109
|
+
})) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0 ? _b : target.name;
|
|
110
|
+
}
|
|
111
|
+
class Entity {
|
|
112
|
+
static fromObj(obj) {
|
|
113
|
+
return Object.assign(new this(), Object.assign({ id: null, createdAt: null, updatedAt: null }, obj));
|
|
114
|
+
}
|
|
115
|
+
static toObj(entity) {
|
|
116
|
+
return (0, to_object_1.toObject)(entity);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.Entity = Entity;
|
|
120
|
+
function TransformToDayjs() {
|
|
121
|
+
return (0, class_transformer_1.Transform)(({ value }) => {
|
|
122
|
+
if (typeof value === 'undefined')
|
|
123
|
+
return undefined;
|
|
124
|
+
if ((0, dayjs_1.default)(value).isValid())
|
|
125
|
+
return (0, dayjs_1.default)(value);
|
|
126
|
+
return value;
|
|
127
|
+
}, {});
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/common/src/domain/models.ts"],"names":[],"mappings":"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"}
|
package/domain/repository.d.ts
CHANGED
|
@@ -1,30 +1,11 @@
|
|
|
1
1
|
import { Entity } from './models';
|
|
2
|
-
import { Observable } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
2
|
export type PartialWithId<E extends Entity> = Pick<E, 'id'> & Partial<E>;
|
|
5
3
|
export declare abstract class Repository<E extends {
|
|
6
4
|
id: string;
|
|
7
5
|
}> {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
abstract create(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'> & Partial<Pick<E, 'id'>>): Promise<E>;
|
|
14
|
-
abstract createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]>;
|
|
15
|
-
abstract update(data: Partial<E> & {
|
|
16
|
-
id: string;
|
|
17
|
-
}): Promise<void>;
|
|
18
|
-
abstract updateMany(data: Partial<E>[]): Promise<void>;
|
|
19
|
-
abstract save(data: Partial<E>): Promise<boolean | [E, boolean]>;
|
|
20
|
-
abstract saveMany(entities: E[]): Promise<void>;
|
|
21
|
-
abstract delete(params: {
|
|
22
|
-
id: string;
|
|
23
|
-
}): Promise<void>;
|
|
24
|
-
abstract deleteMany(params: {
|
|
25
|
-
id: string;
|
|
26
|
-
}[]): Promise<number>;
|
|
27
|
-
abstract deleteAll(): Promise<void>;
|
|
28
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<Repository<any>, never>;
|
|
29
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<Repository<any>>;
|
|
6
|
+
list(): Promise<E[]>;
|
|
7
|
+
get(entity: Pick<E, 'id'>): Promise<E>;
|
|
8
|
+
create(entity: E): Promise<E>;
|
|
9
|
+
update(entity: Pick<E, 'id'> & Partial<E>): Promise<void>;
|
|
10
|
+
delete(entity: Pick<E, 'id'>): Promise<void>;
|
|
30
11
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Repository = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@angular/core");
|
|
6
|
+
let Repository = class Repository {
|
|
7
|
+
list() {
|
|
8
|
+
throw new Error('is not implemented!');
|
|
9
|
+
}
|
|
10
|
+
get(entity) {
|
|
11
|
+
throw new Error('is not implemented!');
|
|
12
|
+
}
|
|
13
|
+
create(entity) {
|
|
14
|
+
throw new Error('is not implemented!');
|
|
15
|
+
}
|
|
16
|
+
update(entity) {
|
|
17
|
+
throw new Error('is not implemented!');
|
|
18
|
+
}
|
|
19
|
+
delete(entity) {
|
|
20
|
+
throw new Error('is not implemented!');
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
exports.Repository = Repository;
|
|
24
|
+
exports.Repository = Repository = tslib_1.__decorate([
|
|
25
|
+
(0, core_1.Injectable)()
|
|
26
|
+
], Repository);
|
|
27
|
+
//# sourceMappingURL=repository.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/common/src/domain/repository.ts"],"names":[],"mappings":";;;;AAAA,wCAA2C;AAMpC,IAAe,UAAU,GAAzB,MAAe,UAAU;IAC9B,IAAI;QACF,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,GAAG,CAAC,MAAqB;QACvB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAS;QACd,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAkC;QACvC,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,MAAqB;QAC1B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AApBqB,gCAAU;qBAAV,UAAU;IAD/B,IAAA,iBAAU,GAAE;GACS,UAAU,CAoB/B"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Resolver = void 0;
|
|
4
|
+
class Resolver {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.entiityMap = new Map();
|
|
7
|
+
}
|
|
8
|
+
makeEntityMap(entities, key) {
|
|
9
|
+
return new Map(entities.map((entity) => [entity[key], entity]));
|
|
10
|
+
}
|
|
11
|
+
setEntityMap(name, entityMap) {
|
|
12
|
+
this.entiityMap.set(name, entityMap);
|
|
13
|
+
}
|
|
14
|
+
getEntityMap(name) {
|
|
15
|
+
return this.entiityMap.get(name);
|
|
16
|
+
}
|
|
17
|
+
registerEntityMap(name, entities, key) {
|
|
18
|
+
this.setEntityMap(name, this.makeEntityMap(entities, key));
|
|
19
|
+
}
|
|
20
|
+
getEntity(name, key) {
|
|
21
|
+
return this.getEntityMap(name).get(key);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.Resolver = Resolver;
|
|
25
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/common/src/domain/resolver.ts"],"names":[],"mappings":";;;AAAA,MAAsB,QAAQ;IAA9B;QACS,eAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IAqB1D,CAAC;IAnBU,aAAa,CAAI,QAAa,EAAE,GAAY;QACrD,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAC3E,CAAC;IAES,YAAY,CAAI,IAAY,EAAE,SAAyB;QAChE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAES,YAAY,CAAI,IAAY;QACrC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAES,iBAAiB,CAAI,IAAY,EAAE,QAAa,EAAE,GAAY;QACvE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5D,CAAC;IAES,SAAS,CAAI,IAAY,EAAE,GAAW;QAC/C,OAAO,IAAI,CAAC,YAAY,CAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;CACD;AAtBD,4BAsBC"}
|
package/index.js
ADDED
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/@nx-ddd/common/src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../../../packages/@nx-ddd/common/src/infrastructure/converter.ts"],"names":[],"mappings":";;;AAAA,MAAsB,SAAS;CAG9B;AAHD,8BAGC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
export interface BackupConfig {
|
|
4
|
+
projectId: string;
|
|
5
|
+
bucketName: string;
|
|
6
|
+
databaseName?: string;
|
|
7
|
+
credentials?: any;
|
|
8
|
+
}
|
|
9
|
+
export declare const BACKUP_CONFIG: InjectionToken<BackupConfig>;
|
|
10
|
+
export declare function provideBackupConfig(config: BackupConfig): {
|
|
11
|
+
provide: InjectionToken<BackupConfig>;
|
|
12
|
+
useValue: BackupConfig;
|
|
13
|
+
};
|
|
14
|
+
export declare function injectBackupConfig(): BackupConfig;
|
|
15
|
+
export declare class BackupService {
|
|
16
|
+
private config;
|
|
17
|
+
private opts;
|
|
18
|
+
private client;
|
|
19
|
+
export(name?: string): Promise<string>;
|
|
20
|
+
import(name: string): Promise<string>;
|
|
21
|
+
clean(date?: dayjs.Dayjs): Promise<void>;
|
|
22
|
+
private get databaseName();
|
|
23
|
+
private get bucketName();
|
|
24
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BackupService = exports.BACKUP_CONFIG = void 0;
|
|
4
|
+
exports.provideBackupConfig = provideBackupConfig;
|
|
5
|
+
exports.injectBackupConfig = injectBackupConfig;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const firestore_1 = tslib_1.__importDefault(require("@google-cloud/firestore"));
|
|
8
|
+
const core_1 = require("@angular/core");
|
|
9
|
+
const dayjs_1 = tslib_1.__importDefault(require("dayjs"));
|
|
10
|
+
const firebase_admin_1 = tslib_1.__importDefault(require("firebase-admin"));
|
|
11
|
+
exports.BACKUP_CONFIG = new core_1.InjectionToken('[@nx-ddd/common/backup] Backup Config');
|
|
12
|
+
function provideBackupConfig(config) {
|
|
13
|
+
return { provide: exports.BACKUP_CONFIG, useValue: config };
|
|
14
|
+
}
|
|
15
|
+
function injectBackupConfig() {
|
|
16
|
+
return (0, core_1.inject)(exports.BACKUP_CONFIG);
|
|
17
|
+
}
|
|
18
|
+
let BackupService = class BackupService {
|
|
19
|
+
constructor() {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
this.config = injectBackupConfig();
|
|
22
|
+
this.opts = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.credentials) ? { credentials: (_b = this.config) === null || _b === void 0 ? void 0 : _b.credentials } : undefined;
|
|
23
|
+
this.client = new firestore_1.default.v1.FirestoreAdminClient(this.opts);
|
|
24
|
+
}
|
|
25
|
+
export(name) {
|
|
26
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
return this.client.exportDocuments({
|
|
28
|
+
name: this.databaseName,
|
|
29
|
+
outputUriPrefix: `gs://${this.bucketName}/_backups/${name !== null && name !== void 0 ? name : (0, dayjs_1.default)().toISOString()}`,
|
|
30
|
+
collectionIds: [],
|
|
31
|
+
}).then((responses) => responses[0].name);
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
import(name) {
|
|
35
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
return this.client.importDocuments({
|
|
37
|
+
name: this.databaseName,
|
|
38
|
+
inputUriPrefix: `gs://${this.bucketName}/_backups/${name}`,
|
|
39
|
+
collectionIds: [],
|
|
40
|
+
}).then((responses) => responses[0].name);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
clean() {
|
|
44
|
+
return tslib_1.__awaiter(this, arguments, void 0, function* (date = (0, dayjs_1.default)().add(-30, 'day')) {
|
|
45
|
+
const bucket = firebase_admin_1.default.storage().bucket(`${this.config.projectId}.appspot.com`);
|
|
46
|
+
const [files] = yield bucket.getFiles({ prefix: '_backups', autoPaginate: true });
|
|
47
|
+
const promises = files
|
|
48
|
+
.filter(file => (0, dayjs_1.default)(file.name.split('/')[1]).isBefore(date))
|
|
49
|
+
.map(file => file.delete());
|
|
50
|
+
yield Promise.all(promises);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
get databaseName() {
|
|
54
|
+
if (this.config.databaseName) {
|
|
55
|
+
return this.config.databaseName;
|
|
56
|
+
}
|
|
57
|
+
return this.client.databasePath(this.config.projectId, '(default)');
|
|
58
|
+
}
|
|
59
|
+
get bucketName() {
|
|
60
|
+
return this.config.bucketName;
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
exports.BackupService = BackupService;
|
|
64
|
+
exports.BackupService = BackupService = tslib_1.__decorate([
|
|
65
|
+
(0, core_1.Injectable)({ providedIn: 'root' })
|
|
66
|
+
], BackupService);
|
|
67
|
+
//# sourceMappingURL=backup.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.service.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/backup/backup.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './backup.service';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/backup/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiC"}
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import { EnvironmentProviders } from "@angular/core";
|
|
2
2
|
import { Browser } from "playwright";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
3
|
export interface ChromiumConfig {
|
|
5
4
|
headless: boolean;
|
|
6
5
|
}
|
|
7
|
-
export declare const CHROMIUM_CONFIG:
|
|
6
|
+
export declare const CHROMIUM_CONFIG: {
|
|
7
|
+
token: import("@angular/core").InjectionToken<ChromiumConfig>;
|
|
8
|
+
inject: () => ChromiumConfig;
|
|
9
|
+
provide: (useFactory: () => ChromiumConfig) => {
|
|
10
|
+
provide: import("@angular/core").InjectionToken<ChromiumConfig>;
|
|
11
|
+
useFactory: () => ChromiumConfig;
|
|
12
|
+
};
|
|
13
|
+
};
|
|
8
14
|
export declare class ChromiumService {
|
|
9
15
|
protected readonly config: ChromiumConfig;
|
|
10
16
|
start<R = any>(callback: (browser: Browser) => Promise<R>): Promise<R>;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ChromiumService, never>;
|
|
12
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<ChromiumService>;
|
|
13
17
|
}
|
|
14
18
|
export declare function provideChromium(useFacotry?: () => ChromiumConfig): EnvironmentProviders;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ChromiumService = exports.CHROMIUM_CONFIG = void 0;
|
|
4
|
+
exports.provideChromium = provideChromium;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const core_1 = require("@angular/core");
|
|
7
|
+
const core_2 = require("@nx-ddd/core");
|
|
8
|
+
const playwright_1 = require("playwright");
|
|
9
|
+
const puppeteer_chromium_resolver_1 = tslib_1.__importDefault(require("puppeteer-chromium-resolver"));
|
|
10
|
+
const chromuim_service_1 = require("./chromuim.service");
|
|
11
|
+
exports.CHROMIUM_CONFIG = (0, core_2.makeDI)('[@connect-box/app] ChromiumConfig', { optional: false });
|
|
12
|
+
let ChromiumService = class ChromiumService {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.config = exports.CHROMIUM_CONFIG.inject();
|
|
15
|
+
}
|
|
16
|
+
start(callback) {
|
|
17
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
const stats = yield (0, puppeteer_chromium_resolver_1.default)();
|
|
19
|
+
const executablePath = stats.executablePath;
|
|
20
|
+
console.debug('executablePath:', executablePath);
|
|
21
|
+
const browser = yield playwright_1.chromium.launch({
|
|
22
|
+
headless: this.config.headless,
|
|
23
|
+
executablePath: executablePath !== null ? executablePath : undefined,
|
|
24
|
+
timeout: 60 * 1000,
|
|
25
|
+
args: [
|
|
26
|
+
'--no-sandbox',
|
|
27
|
+
'--disable-setuid-sandbox',
|
|
28
|
+
'--disable-dev-shm-usage', // 追加: /dev/shmの使用を無効化
|
|
29
|
+
'--disable-extensions',
|
|
30
|
+
'--disable-gpu',
|
|
31
|
+
'--disable-software-rasterizer',
|
|
32
|
+
'--no-zygote',
|
|
33
|
+
]
|
|
34
|
+
});
|
|
35
|
+
try {
|
|
36
|
+
const result = yield callback(browser);
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw error;
|
|
41
|
+
}
|
|
42
|
+
finally {
|
|
43
|
+
yield browser.close();
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
exports.ChromiumService = ChromiumService;
|
|
49
|
+
exports.ChromiumService = ChromiumService = tslib_1.__decorate([
|
|
50
|
+
(0, core_1.Injectable)({ providedIn: 'root' })
|
|
51
|
+
], ChromiumService);
|
|
52
|
+
function provideChromium(useFacotry = () => ({ headless: true })) {
|
|
53
|
+
return (0, core_1.makeEnvironmentProviders)([
|
|
54
|
+
exports.CHROMIUM_CONFIG.provide(useFacotry),
|
|
55
|
+
chromuim_service_1.CHROMIUM.provide(() => new ChromiumService()),
|
|
56
|
+
]);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=chromium.service.impl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromium.service.impl.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/chromium/chromium.service.impl.ts"],"names":[],"mappings":";;;AA8CA,0CAKC;;AAnDD,wCAA2F;AAC3F,uCAAsC;AACtC,2CAA+C;AAE/C,sGAAmD;AACnD,yDAA8C;AAMjC,QAAA,eAAe,GAAG,IAAA,aAAM,EAAiB,mCAAmC,EAAE,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;AAGvG,IAAM,eAAe,GAArB,MAAM,eAAe;IAArB;QACc,WAAM,GAAG,uBAAe,CAAC,MAAM,EAAE,CAAC;IA6BvD,CAAC;IA3BO,KAAK,CAAU,QAA0C;;YAC7D,MAAM,KAAK,GAAG,MAAM,IAAA,qCAAS,GAAE,CAAC;YAChC,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;YAC5C,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,MAAM,qBAAQ,CAAC,MAAM,CAAC;gBACpC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;gBAC9B,cAAc,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;gBACpE,OAAO,EAAE,EAAE,GAAG,IAAI;gBAClB,IAAI,EAAE;oBACJ,cAAc;oBACd,0BAA0B;oBAC1B,yBAAyB,EAAE,sBAAsB;oBACjD,sBAAsB;oBACtB,eAAe;oBACf,+BAA+B;oBAC/B,aAAa;iBACd;aACF,CAAC,CAAC;YACH,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACvC,OAAO,MAAM,CAAC;YAChB,CAAC;YAAC,OAAM,KAAK,EAAE,CAAC;gBACd,MAAM,KAAK,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;KAAA;CACF,CAAA;AA9BY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,iBAAU,EAAC,EAAC,UAAU,EAAE,MAAM,EAAC,CAAC;GACpB,eAAe,CA8B3B;AAED,SAAgB,eAAe,CAAC,aAAmC,GAAG,EAAE,CAAC,CAAC,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC;IACzF,OAAO,IAAA,+BAAwB,EAAC;QAC9B,uBAAe,CAAC,OAAO,CAAC,UAAU,CAAC;QACnC,2BAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,eAAe,EAAE,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ChromiumService } from "./chromium.service.impl";
|
|
2
|
+
export declare const CHROMIUM: {
|
|
3
|
+
token: import("@angular/core").InjectionToken<ChromiumService>;
|
|
4
|
+
inject: () => ChromiumService;
|
|
5
|
+
provide: (useFactory: () => ChromiumService) => {
|
|
6
|
+
provide: import("@angular/core").InjectionToken<ChromiumService>;
|
|
7
|
+
useFactory: () => ChromiumService;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chromuim.service.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/chromium/chromuim.service.ts"],"names":[],"mappings":";;;AAAA,uCAAsC;AAGzB,QAAA,QAAQ,GAAG,IAAA,aAAM,EAAkB,4BAA4B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './chromuim.service';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/chromium/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { UploadTask } from '@angular/fire/storage';
|
|
2
2
|
import { Observable } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
3
|
export declare class CloudStorageService {
|
|
5
4
|
private storage;
|
|
6
5
|
private task;
|
|
@@ -11,6 +10,4 @@ export declare class CloudStorageService {
|
|
|
11
10
|
private convertToObservable;
|
|
12
11
|
upload(path: string, file: File): UploadTask;
|
|
13
12
|
cancel(): void;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CloudStorageService, never>;
|
|
15
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<CloudStorageService>;
|
|
16
13
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CloudStorageService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_1 = require("@angular/core");
|
|
6
|
+
const storage_1 = require("@angular/fire/storage");
|
|
7
|
+
const rxjs_interop_1 = require("@angular/core/rxjs-interop");
|
|
8
|
+
const rxjs_1 = require("rxjs");
|
|
9
|
+
let CloudStorageService = class CloudStorageService {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.storage = (0, core_1.inject)(storage_1.Storage);
|
|
12
|
+
this.task = (0, core_1.signal)(null);
|
|
13
|
+
this.task$ = (0, rxjs_interop_1.toObservable)(this.task);
|
|
14
|
+
this.progress = (0, rxjs_interop_1.toSignal)(this.task$.pipe((0, rxjs_1.switchMap)(task => task ? this.convertToObservable(task) : (0, rxjs_1.of)(null))));
|
|
15
|
+
this.progress$ = (0, rxjs_interop_1.toObservable)(this.progress);
|
|
16
|
+
}
|
|
17
|
+
getDownloadUrl(filePath) {
|
|
18
|
+
return (0, storage_1.getDownloadURL)((0, storage_1.ref)(this.storage, filePath));
|
|
19
|
+
}
|
|
20
|
+
convertToObservable(task) {
|
|
21
|
+
return new rxjs_1.Observable(sub => {
|
|
22
|
+
task.on('state_changed', snapshot => sub.next(snapshot.bytesTransferred / snapshot.totalBytes * 100));
|
|
23
|
+
task.then(() => (sub.next(null), sub.complete()));
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
upload(path, file) {
|
|
27
|
+
this.cancel();
|
|
28
|
+
const storageRef = (0, storage_1.ref)(this.storage, path);
|
|
29
|
+
const task = (0, storage_1.uploadBytesResumable)(storageRef, file);
|
|
30
|
+
this.task.set(task);
|
|
31
|
+
return task;
|
|
32
|
+
}
|
|
33
|
+
cancel() {
|
|
34
|
+
var _a;
|
|
35
|
+
(_a = this.task()) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
36
|
+
this.task.set(null);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
exports.CloudStorageService = CloudStorageService;
|
|
40
|
+
exports.CloudStorageService = CloudStorageService = tslib_1.__decorate([
|
|
41
|
+
(0, core_1.Injectable)({ providedIn: 'any' })
|
|
42
|
+
], CloudStorageService);
|
|
43
|
+
//# sourceMappingURL=cloud-storage.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloud-storage.service.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/cloud-storage/cloud-storage.service.ts"],"names":[],"mappings":";;;;AAAA,wCAA2D;AAC3D,mDAAuG;AACvG,6DAAoE;AACpE,+BAAiD;AAG1C,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAAzB;QACG,YAAO,GAAG,IAAA,aAAM,EAAC,iBAAO,CAAC,CAAC;QAC1B,SAAI,GAAG,IAAA,aAAM,EAAoB,IAAI,CAAC,CAAC;QACvC,UAAK,GAAG,IAAA,2BAAY,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/B,aAAQ,GAAG,IAAA,uBAAQ,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAC1C,IAAA,gBAAS,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,SAAE,EAAC,IAAI,CAAC,CAAC,CAEpE,CAAC,CAAC;QACM,cAAS,GAAG,IAAA,2BAAY,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAyBnD,CAAC;IAvBC,cAAc,CAAC,QAAgB;QAC7B,OAAO,IAAA,wBAAc,EAAC,IAAA,aAAG,EAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IACrD,CAAC;IAEO,mBAAmB,CAAC,IAAgB;QAC1C,OAAO,IAAI,iBAAU,CAAgB,GAAG,CAAC,EAAE;YACzC,IAAI,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC;YACtG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,IAAY,EAAE,IAAU;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,UAAU,GAAG,IAAA,aAAG,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAA,8BAAoB,EAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM;;QACJ,MAAA,IAAI,CAAC,IAAI,EAAE,0CAAE,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;CACF,CAAA;AAlCY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,iBAAU,EAAC,EAAC,UAAU,EAAE,KAAK,EAAC,CAAC;GACnB,mBAAmB,CAkC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/@nx-ddd/common/src/infrastructure/externals/cloud-storage/index.ts"],"names":[],"mappings":";;;AAAA,kEAAwC"}
|