@stemy/backend 2.6.1 → 2.7.3
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 +2 -2
- package/bundles/stemy-backend.umd.js +5553 -5465
- package/bundles/stemy-backend.umd.js.map +1 -1
- package/bundles/stemy-backend.umd.min.js +1 -1
- package/bundles/stemy-backend.umd.min.js.map +1 -1
- package/common-types.d.ts +226 -214
- package/esm2015/common-types.js +18 -18
- package/esm2015/public_api.js +338 -338
- package/esm2015/rest-controllers/assets.controller.js +116 -116
- package/esm2015/rest-controllers/auth.controller.js +75 -75
- package/esm2015/rest-controllers/gallery.controller.js +37 -37
- package/esm2015/rest-controllers/progresses.controller.js +57 -57
- package/esm2015/rest-middlewares/container.middleware.js +32 -32
- package/esm2015/rest-middlewares/error-handler.middleware.js +83 -83
- package/esm2015/rest-middlewares/language.middleware.js +28 -28
- package/esm2015/rest-middlewares/request-ended.middleware.js +25 -25
- package/esm2015/rest-middlewares/request-started.middleware.js +24 -24
- package/esm2015/rest-openapi.js +44 -44
- package/esm2015/services/asset-processor.js +101 -101
- package/esm2015/services/asset-resolver.js +53 -53
- package/esm2015/services/assets.js +110 -110
- package/esm2015/services/backend-provider.js +32 -32
- package/esm2015/services/cache-processor.js +34 -34
- package/esm2015/services/cache.js +94 -94
- package/esm2015/services/configuration.js +55 -55
- package/esm2015/services/endpoint-provider.js +29 -29
- package/esm2015/services/entities/asset.js +166 -112
- package/esm2015/services/entities/lazy-asset.js +93 -93
- package/esm2015/services/entities/progress.js +181 -181
- package/esm2015/services/fixtures.js +45 -45
- package/esm2015/services/gallery-cache.js +36 -36
- package/esm2015/services/gallery-image.js +48 -48
- package/esm2015/services/gallery.js +138 -138
- package/esm2015/services/id-generator.js +63 -63
- package/esm2015/services/job-manager.js +203 -203
- package/esm2015/services/lazy-assets.js +74 -74
- package/esm2015/services/mail-sender.js +59 -59
- package/esm2015/services/memory-cache.js +84 -84
- package/esm2015/services/mongo-connector.js +61 -61
- package/esm2015/services/progresses.js +91 -91
- package/esm2015/services/template-renderer.js +89 -89
- package/esm2015/services/translation-provider.js +31 -31
- package/esm2015/services/translator.js +85 -85
- package/esm2015/services/user-manager.js +47 -47
- package/esm2015/socket-controllers/progress.controller.js +82 -82
- package/esm2015/socket-middlewares/compression.middleware.js +19 -19
- package/esm2015/static.js +33 -33
- package/esm2015/stemy-backend.js +4 -4
- package/esm2015/utilities/di-container.js +84 -84
- package/esm2015/utilities/lazy-asset-generator.js +40 -40
- package/esm2015/utilities/tree.js +111 -111
- package/esm2015/utils.js +618 -601
- package/esm2015/validators.js +51 -51
- package/fesm2015/stemy-backend.js +3656 -3585
- package/fesm2015/stemy-backend.js.map +1 -1
- package/package.json +1 -1
- package/public_api.d.ts +33 -33
- package/rest-controllers/assets.controller.d.ts +16 -16
- package/rest-controllers/auth.controller.d.ts +14 -14
- package/rest-controllers/gallery.controller.d.ts +7 -7
- package/rest-controllers/progresses.controller.d.ts +9 -9
- package/rest-middlewares/container.middleware.d.ts +8 -8
- package/rest-middlewares/error-handler.middleware.d.ts +13 -13
- package/rest-middlewares/language.middleware.d.ts +8 -8
- package/rest-middlewares/request-ended.middleware.d.ts +5 -5
- package/rest-middlewares/request-started.middleware.d.ts +5 -5
- package/rest-openapi.d.ts +3 -3
- package/services/asset-processor.d.ts +12 -12
- package/services/asset-resolver.d.ts +9 -9
- package/services/assets.d.ts +19 -19
- package/services/backend-provider.d.ts +11 -11
- package/services/cache-processor.d.ts +4 -4
- package/services/cache.d.ts +23 -23
- package/services/configuration.d.ts +10 -10
- package/services/endpoint-provider.d.ts +4 -4
- package/services/entities/asset.d.ts +25 -23
- package/services/entities/lazy-asset.d.ts +29 -29
- package/services/entities/progress.d.ts +49 -49
- package/services/fixtures.d.ts +6 -6
- package/services/gallery-cache.d.ts +9 -9
- package/services/gallery-image.d.ts +11 -11
- package/services/gallery.d.ts +13 -13
- package/services/id-generator.d.ts +11 -11
- package/services/job-manager.d.ts +27 -27
- package/services/lazy-assets.d.ts +19 -19
- package/services/mail-sender.d.ts +20 -20
- package/services/memory-cache.d.ts +10 -10
- package/services/mongo-connector.d.ts +14 -14
- package/services/progresses.d.ts +18 -18
- package/services/template-renderer.d.ts +14 -14
- package/services/translation-provider.d.ts +10 -10
- package/services/translator.d.ts +15 -15
- package/services/user-manager.d.ts +6 -6
- package/socket-controllers/progress.controller.d.ts +10 -10
- package/socket-middlewares/compression.middleware.d.ts +4 -4
- package/static.d.ts +2 -2
- package/stemy-backend.d.ts +4 -4
- package/stemy-backend.metadata.json +1 -1
- package/utilities/di-container.d.ts +43 -43
- package/utilities/lazy-asset-generator.d.ts +15 -15
- package/utilities/tree.d.ts +14 -14
- package/utils.d.ts +76 -73
- package/validators.d.ts +7 -7
- package/di-container.d.ts +0 -40
- package/esm2015/di-container.js +0 -75
- package/esm2015/models/lazy-asset.js +0 -12
- package/esm2015/models/progress.js +0 -23
- package/esm2015/rest-middlewares/injector.middleware.js +0 -26
- package/esm2015/services/lazy-asset-helper.js +0 -74
- package/esm2015/services/logger.js +0 -14
- package/esm2015/services/progress-helper.js +0 -168
- package/models/lazy-asset.d.ts +0 -45
- package/models/progress.d.ts +0 -56
- package/rest-middlewares/injector.middleware.d.ts +0 -8
- package/services/lazy-asset-helper.d.ts +0 -15
- package/services/logger.d.ts +0 -2
- package/services/progress-helper.d.ts +0 -37
package/esm2015/rest-openapi.js
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
import { getMetadataArgsStorage } from "routing-controllers";
|
|
2
|
-
import { routingControllersToSpec } from "routing-controllers-openapi";
|
|
3
|
-
import { defaultMetadataStorage } from "class-transformer/storage";
|
|
4
|
-
import { ValidationTypes } from "class-validator";
|
|
5
|
-
import { validationMetadatasToSchemas } from "class-validator-jsonschema";
|
|
6
|
-
import { isFunction } from "./utils";
|
|
7
|
-
import { IsFile, IsObjectId } from "./validators";
|
|
8
|
-
let apiDocs = null;
|
|
9
|
-
export function getApiDocs(customValidation) {
|
|
10
|
-
if (apiDocs)
|
|
11
|
-
return apiDocs;
|
|
12
|
-
const storage = getMetadataArgsStorage();
|
|
13
|
-
const spec = routingControllersToSpec(storage);
|
|
14
|
-
spec.basePath = "/api/";
|
|
15
|
-
spec.definitions = validationMetadatasToSchemas({
|
|
16
|
-
classTransformerMetadataStorage: defaultMetadataStorage,
|
|
17
|
-
additionalConverters: {
|
|
18
|
-
[ValidationTypes.CUSTOM_VALIDATION]: (meta, options) => {
|
|
19
|
-
const res = isFunction(customValidation) ? customValidation(meta, options) : customValidation;
|
|
20
|
-
if (!!res)
|
|
21
|
-
return res;
|
|
22
|
-
const constraints = meta.constraints || [];
|
|
23
|
-
if (meta.constraintCls === IsFile) {
|
|
24
|
-
return {
|
|
25
|
-
multi: constraints[0] || false,
|
|
26
|
-
type: "file"
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
if (meta.constraintCls === IsObjectId) {
|
|
30
|
-
return {
|
|
31
|
-
endpoint: constraints[0] || false,
|
|
32
|
-
multi: constraints[1] || false,
|
|
33
|
-
type: "list"
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
return null;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
spec.components.schemas = spec.definitions;
|
|
41
|
-
apiDocs = JSON.stringify(spec);
|
|
42
|
-
return apiDocs;
|
|
43
|
-
}
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { getMetadataArgsStorage } from "routing-controllers";
|
|
2
|
+
import { routingControllersToSpec } from "routing-controllers-openapi";
|
|
3
|
+
import { defaultMetadataStorage } from "class-transformer/storage";
|
|
4
|
+
import { ValidationTypes } from "class-validator";
|
|
5
|
+
import { validationMetadatasToSchemas } from "class-validator-jsonschema";
|
|
6
|
+
import { isFunction } from "./utils";
|
|
7
|
+
import { IsFile, IsObjectId } from "./validators";
|
|
8
|
+
let apiDocs = null;
|
|
9
|
+
export function getApiDocs(customValidation) {
|
|
10
|
+
if (apiDocs)
|
|
11
|
+
return apiDocs;
|
|
12
|
+
const storage = getMetadataArgsStorage();
|
|
13
|
+
const spec = routingControllersToSpec(storage);
|
|
14
|
+
spec.basePath = "/api/";
|
|
15
|
+
spec.definitions = validationMetadatasToSchemas({
|
|
16
|
+
classTransformerMetadataStorage: defaultMetadataStorage,
|
|
17
|
+
additionalConverters: {
|
|
18
|
+
[ValidationTypes.CUSTOM_VALIDATION]: (meta, options) => {
|
|
19
|
+
const res = isFunction(customValidation) ? customValidation(meta, options) : customValidation;
|
|
20
|
+
if (!!res)
|
|
21
|
+
return res;
|
|
22
|
+
const constraints = meta.constraints || [];
|
|
23
|
+
if (meta.constraintCls === IsFile) {
|
|
24
|
+
return {
|
|
25
|
+
multi: constraints[0] || false,
|
|
26
|
+
type: "file"
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
if (meta.constraintCls === IsObjectId) {
|
|
30
|
+
return {
|
|
31
|
+
endpoint: constraints[0] || false,
|
|
32
|
+
multi: constraints[1] || false,
|
|
33
|
+
type: "list"
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
spec.components.schemas = spec.definitions;
|
|
41
|
+
apiDocs = JSON.stringify(spec);
|
|
42
|
+
return apiDocs;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1vcGVuYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Jlc3Qtb3BlbmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVyRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0saUJBQWlCLENBQUE7QUFDL0MsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sNEJBQTRCLENBQUE7QUFFdkUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQUVoRCxJQUFJLE9BQU8sR0FBVyxJQUFJLENBQUM7QUFFM0IsTUFBTSxVQUFVLFVBQVUsQ0FBQyxnQkFBZ0Q7SUFDdkUsSUFBSSxPQUFPO1FBQUUsT0FBTyxPQUFPLENBQUM7SUFDNUIsTUFBTSxPQUFPLEdBQUcsc0JBQXNCLEVBQUUsQ0FBQztJQUN6QyxNQUFNLElBQUksR0FBa0Isd0JBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyw0QkFBNEIsQ0FBQztRQUM1QywrQkFBK0IsRUFBRSxzQkFBc0I7UUFDdkQsb0JBQW9CLEVBQUU7WUFDbEIsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUUsRUFBRTtnQkFDbkQsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzlGLElBQUksQ0FBQyxDQUFDLEdBQUc7b0JBQUUsT0FBTyxHQUFHLENBQUM7Z0JBQ3RCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDO2dCQUMzQyxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssTUFBTSxFQUFFO29CQUMvQixPQUFPO3dCQUNILEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSzt3QkFDOUIsSUFBSSxFQUFFLE1BQU07cUJBQ2YsQ0FBQTtpQkFDSjtnQkFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssVUFBVSxFQUFFO29CQUNuQyxPQUFPO3dCQUNILFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSzt3QkFDakMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLO3dCQUM5QixJQUFJLEVBQUUsTUFBTTtxQkFDZixDQUFBO2lCQUNKO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7U0FDSjtLQUNKLENBQUMsQ0FBQztJQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDM0MsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0IsT0FBTyxPQUFPLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2V0TWV0YWRhdGFBcmdzU3RvcmFnZX0gZnJvbSBcInJvdXRpbmctY29udHJvbGxlcnNcIjtcclxuaW1wb3J0IHtyb3V0aW5nQ29udHJvbGxlcnNUb1NwZWN9IGZyb20gXCJyb3V0aW5nLWNvbnRyb2xsZXJzLW9wZW5hcGlcIjtcclxuaW1wb3J0IHtPcGVuQVBJT2JqZWN0LCBTY2hlbWFPYmplY3R9IGZyb20gXCJvcGVuYXBpMy10c1wiO1xyXG5pbXBvcnQge2RlZmF1bHRNZXRhZGF0YVN0b3JhZ2V9IGZyb20gXCJjbGFzcy10cmFuc2Zvcm1lci9zdG9yYWdlXCI7XHJcbmltcG9ydCB7VmFsaWRhdGlvblR5cGVzfSBmcm9tIFwiY2xhc3MtdmFsaWRhdG9yXCJcclxuaW1wb3J0IHt2YWxpZGF0aW9uTWV0YWRhdGFzVG9TY2hlbWFzfSBmcm9tIFwiY2xhc3MtdmFsaWRhdG9yLWpzb25zY2hlbWFcIlxyXG5pbXBvcnQge1NjaGVtYUNvbnZlcnRlcn0gZnJvbSBcIi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7aXNGdW5jdGlvbn0gZnJvbSBcIi4vdXRpbHNcIjtcclxuaW1wb3J0IHtJc0ZpbGUsIElzT2JqZWN0SWR9IGZyb20gXCIuL3ZhbGlkYXRvcnNcIjtcclxuXHJcbmxldCBhcGlEb2NzOiBzdHJpbmcgPSBudWxsO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwaURvY3MoY3VzdG9tVmFsaWRhdGlvbjogU2NoZW1hQ29udmVydGVyIHwgU2NoZW1hT2JqZWN0KTogc3RyaW5nIHtcclxuICAgIGlmIChhcGlEb2NzKSByZXR1cm4gYXBpRG9jcztcclxuICAgIGNvbnN0IHN0b3JhZ2UgPSBnZXRNZXRhZGF0YUFyZ3NTdG9yYWdlKCk7XHJcbiAgICBjb25zdCBzcGVjOiBPcGVuQVBJT2JqZWN0ID0gcm91dGluZ0NvbnRyb2xsZXJzVG9TcGVjKHN0b3JhZ2UpO1xyXG4gICAgc3BlYy5iYXNlUGF0aCA9IFwiL2FwaS9cIjtcclxuICAgIHNwZWMuZGVmaW5pdGlvbnMgPSB2YWxpZGF0aW9uTWV0YWRhdGFzVG9TY2hlbWFzKHtcclxuICAgICAgICBjbGFzc1RyYW5zZm9ybWVyTWV0YWRhdGFTdG9yYWdlOiBkZWZhdWx0TWV0YWRhdGFTdG9yYWdlLFxyXG4gICAgICAgIGFkZGl0aW9uYWxDb252ZXJ0ZXJzOiB7XHJcbiAgICAgICAgICAgIFtWYWxpZGF0aW9uVHlwZXMuQ1VTVE9NX1ZBTElEQVRJT05dOiAobWV0YSwgb3B0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gaXNGdW5jdGlvbihjdXN0b21WYWxpZGF0aW9uKSA/IGN1c3RvbVZhbGlkYXRpb24obWV0YSwgb3B0aW9ucykgOiBjdXN0b21WYWxpZGF0aW9uO1xyXG4gICAgICAgICAgICAgICAgaWYgKCEhcmVzKSByZXR1cm4gcmVzO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29uc3RyYWludHMgPSBtZXRhLmNvbnN0cmFpbnRzIHx8IFtdO1xyXG4gICAgICAgICAgICAgICAgaWYgKG1ldGEuY29uc3RyYWludENscyA9PT0gSXNGaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGk6IGNvbnN0cmFpbnRzWzBdIHx8IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmIChtZXRhLmNvbnN0cmFpbnRDbHMgPT09IElzT2JqZWN0SWQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBlbmRwb2ludDogY29uc3RyYWludHNbMF0gfHwgZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpOiBjb25zdHJhaW50c1sxXSB8fCBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJsaXN0XCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgc3BlYy5jb21wb25lbnRzLnNjaGVtYXMgPSBzcGVjLmRlZmluaXRpb25zO1xyXG4gICAgYXBpRG9jcyA9IEpTT04uc3RyaW5naWZ5KHNwZWMpO1xyXG4gICAgcmV0dXJuIGFwaURvY3M7XHJcbn1cclxuIl19
|
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var AssetProcessor_1;
|
|
17
|
-
import { injectable, Lifecycle, scoped } from "tsyringe";
|
|
18
|
-
import fontKit_ from "fontkit";
|
|
19
|
-
import { fromBuffer } from "file-type";
|
|
20
|
-
import sharp_ from "sharp";
|
|
21
|
-
const sharp = sharp_;
|
|
22
|
-
const fontKit = fontKit_;
|
|
23
|
-
const fontTypes = [
|
|
24
|
-
"application/font-woff", "application/font-woff2", "application/x-font-opentype", "application/x-font-truetype", "application/x-font-datafork",
|
|
25
|
-
"font/woff", "font/woff2", "font/otf", "font/ttf", "font/datafork"
|
|
26
|
-
];
|
|
27
|
-
const imageTypes = ["image/jpeg", "image/jpg", "image/png"];
|
|
28
|
-
const fontProps = [
|
|
29
|
-
"postscriptName", "fullName", "familyName", "subfamilyName",
|
|
30
|
-
"copyright", "version", "unitsPerEm", "ascent", "descent", "lineGap",
|
|
31
|
-
"underlinePosition", "underlineThickness", "italicAngle", "capHeight",
|
|
32
|
-
"xHeight", "numGlyphs", "characterSet", "availableFeatures"
|
|
33
|
-
];
|
|
34
|
-
let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
|
|
35
|
-
static getMimeType(buffer, mimeType) {
|
|
36
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
try {
|
|
38
|
-
mimeType = (yield fromBuffer(buffer)).mime;
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
if (!mimeType) {
|
|
42
|
-
throw `Can't determine mime type`;
|
|
43
|
-
}
|
|
44
|
-
console.log(`Can't determine mime type`, e);
|
|
45
|
-
}
|
|
46
|
-
return mimeType;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
static extractFontFormat(font) {
|
|
50
|
-
const name = font.constructor.name;
|
|
51
|
-
const tag = font["directory"].tag;
|
|
52
|
-
switch (name) {
|
|
53
|
-
case "TTFFont":
|
|
54
|
-
return tag === "OTTO" ? "opentype" : "truetype";
|
|
55
|
-
case "WOFF2Font":
|
|
56
|
-
return "woff2";
|
|
57
|
-
case "WOFFFont":
|
|
58
|
-
return "woff";
|
|
59
|
-
case "DFont":
|
|
60
|
-
return "datafork";
|
|
61
|
-
}
|
|
62
|
-
return null;
|
|
63
|
-
}
|
|
64
|
-
static isImage(contentType) {
|
|
65
|
-
return imageTypes.indexOf(contentType) >= 0;
|
|
66
|
-
}
|
|
67
|
-
static copyImageMeta(buffer, metadata) {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
const output = yield sharp(buffer).rotate().toBuffer({ resolveWithObject: true });
|
|
70
|
-
Object.assign(metadata, output.info);
|
|
71
|
-
return output.data;
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
static isFont(contentType) {
|
|
75
|
-
return fontTypes.indexOf(contentType) >= 0;
|
|
76
|
-
}
|
|
77
|
-
static copyFontMeta(buffer, metadata) {
|
|
78
|
-
const font = fontKit.create(buffer);
|
|
79
|
-
metadata.format = AssetProcessor_1.extractFontFormat(font);
|
|
80
|
-
fontProps.forEach(prop => {
|
|
81
|
-
metadata[prop] = font[prop];
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
process(buffer, metadata, contentType) {
|
|
85
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
-
if (AssetProcessor_1.isImage(contentType)) {
|
|
87
|
-
buffer = yield AssetProcessor_1.copyImageMeta(buffer, metadata);
|
|
88
|
-
}
|
|
89
|
-
if (AssetProcessor_1.isFont(contentType)) {
|
|
90
|
-
AssetProcessor_1.copyFontMeta(buffer, metadata);
|
|
91
|
-
}
|
|
92
|
-
return buffer;
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
AssetProcessor = AssetProcessor_1 = __decorate([
|
|
97
|
-
injectable(),
|
|
98
|
-
scoped(Lifecycle.ContainerScoped)
|
|
99
|
-
], AssetProcessor);
|
|
100
|
-
export { AssetProcessor };
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
var AssetProcessor_1;
|
|
17
|
+
import { injectable, Lifecycle, scoped } from "tsyringe";
|
|
18
|
+
import fontKit_ from "fontkit";
|
|
19
|
+
import { fromBuffer } from "file-type";
|
|
20
|
+
import sharp_ from "sharp";
|
|
21
|
+
const sharp = sharp_;
|
|
22
|
+
const fontKit = fontKit_;
|
|
23
|
+
const fontTypes = [
|
|
24
|
+
"application/font-woff", "application/font-woff2", "application/x-font-opentype", "application/x-font-truetype", "application/x-font-datafork",
|
|
25
|
+
"font/woff", "font/woff2", "font/otf", "font/ttf", "font/datafork"
|
|
26
|
+
];
|
|
27
|
+
const imageTypes = ["image/jpeg", "image/jpg", "image/png"];
|
|
28
|
+
const fontProps = [
|
|
29
|
+
"postscriptName", "fullName", "familyName", "subfamilyName",
|
|
30
|
+
"copyright", "version", "unitsPerEm", "ascent", "descent", "lineGap",
|
|
31
|
+
"underlinePosition", "underlineThickness", "italicAngle", "capHeight",
|
|
32
|
+
"xHeight", "numGlyphs", "characterSet", "availableFeatures"
|
|
33
|
+
];
|
|
34
|
+
let AssetProcessor = AssetProcessor_1 = class AssetProcessor {
|
|
35
|
+
static getMimeType(buffer, mimeType) {
|
|
36
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
37
|
+
try {
|
|
38
|
+
mimeType = (yield fromBuffer(buffer)).mime;
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
if (!mimeType) {
|
|
42
|
+
throw `Can't determine mime type`;
|
|
43
|
+
}
|
|
44
|
+
console.log(`Can't determine mime type`, e);
|
|
45
|
+
}
|
|
46
|
+
return mimeType;
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
static extractFontFormat(font) {
|
|
50
|
+
const name = font.constructor.name;
|
|
51
|
+
const tag = font["directory"].tag;
|
|
52
|
+
switch (name) {
|
|
53
|
+
case "TTFFont":
|
|
54
|
+
return tag === "OTTO" ? "opentype" : "truetype";
|
|
55
|
+
case "WOFF2Font":
|
|
56
|
+
return "woff2";
|
|
57
|
+
case "WOFFFont":
|
|
58
|
+
return "woff";
|
|
59
|
+
case "DFont":
|
|
60
|
+
return "datafork";
|
|
61
|
+
}
|
|
62
|
+
return null;
|
|
63
|
+
}
|
|
64
|
+
static isImage(contentType) {
|
|
65
|
+
return imageTypes.indexOf(contentType) >= 0;
|
|
66
|
+
}
|
|
67
|
+
static copyImageMeta(buffer, metadata) {
|
|
68
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
const output = yield sharp(buffer).rotate().toBuffer({ resolveWithObject: true });
|
|
70
|
+
Object.assign(metadata, output.info);
|
|
71
|
+
return output.data;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
static isFont(contentType) {
|
|
75
|
+
return fontTypes.indexOf(contentType) >= 0;
|
|
76
|
+
}
|
|
77
|
+
static copyFontMeta(buffer, metadata) {
|
|
78
|
+
const font = fontKit.create(buffer);
|
|
79
|
+
metadata.format = AssetProcessor_1.extractFontFormat(font);
|
|
80
|
+
fontProps.forEach(prop => {
|
|
81
|
+
metadata[prop] = font[prop];
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
process(buffer, metadata, contentType) {
|
|
85
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
86
|
+
if (AssetProcessor_1.isImage(contentType)) {
|
|
87
|
+
buffer = yield AssetProcessor_1.copyImageMeta(buffer, metadata);
|
|
88
|
+
}
|
|
89
|
+
if (AssetProcessor_1.isFont(contentType)) {
|
|
90
|
+
AssetProcessor_1.copyFontMeta(buffer, metadata);
|
|
91
|
+
}
|
|
92
|
+
return buffer;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
AssetProcessor = AssetProcessor_1 = __decorate([
|
|
97
|
+
injectable(),
|
|
98
|
+
scoped(Lifecycle.ContainerScoped)
|
|
99
|
+
], AssetProcessor);
|
|
100
|
+
export { AssetProcessor };
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NlcnZpY2VzL2Fzc2V0LXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3ZELE9BQU8sUUFBZ0IsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNyQyxPQUFPLE1BQU0sTUFBTSxPQUFPLENBQUM7QUFHM0IsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDO0FBQ3JCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQztBQUV6QixNQUFNLFNBQVMsR0FBRztJQUNkLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLDZCQUE2QixFQUFFLDZCQUE2QixFQUFFLDZCQUE2QjtJQUM5SSxXQUFXLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsZUFBZTtDQUNyRSxDQUFDO0FBRUYsTUFBTSxVQUFVLEdBQUcsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRTVELE1BQU0sU0FBUyxHQUFHO0lBQ2QsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxlQUFlO0lBQzNELFdBQVcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsU0FBUztJQUNwRSxtQkFBbUIsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUsV0FBVztJQUNyRSxTQUFTLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxtQkFBbUI7Q0FDOUQsQ0FBQztJQUlXLGNBQWMsNEJBQWQsY0FBYztJQUV2QixNQUFNLENBQU8sV0FBVyxDQUFDLE1BQWMsRUFBRSxRQUFpQjs7WUFDdEQsSUFBSTtnQkFDQSxRQUFRLEdBQUcsQ0FBQyxN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ZWN0YWJsZSwgTGlmZWN5Y2xlLCBzY29wZWR9IGZyb20gXCJ0c3lyaW5nZVwiO1xyXG5pbXBvcnQgZm9udEtpdF8sIHtGb250fSBmcm9tIFwiZm9udGtpdFwiO1xyXG5pbXBvcnQge2Zyb21CdWZmZXJ9IGZyb20gXCJmaWxlLXR5cGVcIjtcclxuaW1wb3J0IHNoYXJwXyBmcm9tIFwic2hhcnBcIjtcclxuaW1wb3J0IHtGb250Rm9ybWF0LCBJQXNzZXRNZXRhfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcblxyXG5jb25zdCBzaGFycCA9IHNoYXJwXztcclxuY29uc3QgZm9udEtpdCA9IGZvbnRLaXRfO1xyXG5cclxuY29uc3QgZm9udFR5cGVzID0gW1xyXG4gICAgXCJhcHBsaWNhdGlvbi9mb250LXdvZmZcIiwgXCJhcHBsaWNhdGlvbi9mb250LXdvZmYyXCIsIFwiYXBwbGljYXRpb24veC1mb250LW9wZW50eXBlXCIsIFwiYXBwbGljYXRpb24veC1mb250LXRydWV0eXBlXCIsIFwiYXBwbGljYXRpb24veC1mb250LWRhdGFmb3JrXCIsXHJcbiAgICBcImZvbnQvd29mZlwiLCBcImZvbnQvd29mZjJcIiwgXCJmb250L290ZlwiLCBcImZvbnQvdHRmXCIsIFwiZm9udC9kYXRhZm9ya1wiXHJcbl07XHJcblxyXG5jb25zdCBpbWFnZVR5cGVzID0gW1wiaW1hZ2UvanBlZ1wiLCBcImltYWdlL2pwZ1wiLCBcImltYWdlL3BuZ1wiXTtcclxuXHJcbmNvbnN0IGZvbnRQcm9wcyA9IFtcclxuICAgIFwicG9zdHNjcmlwdE5hbWVcIiwgXCJmdWxsTmFtZVwiLCBcImZhbWlseU5hbWVcIiwgXCJzdWJmYW1pbHlOYW1lXCIsXHJcbiAgICBcImNvcHlyaWdodFwiLCBcInZlcnNpb25cIiwgXCJ1bml0c1BlckVtXCIsIFwiYXNjZW50XCIsIFwiZGVzY2VudFwiLCBcImxpbmVHYXBcIixcclxuICAgIFwidW5kZXJsaW5lUG9zaXRpb25cIiwgXCJ1bmRlcmxpbmVUaGlja25lc3NcIiwgXCJpdGFsaWNBbmdsZVwiLCBcImNhcEhlaWdodFwiLFxyXG4gICAgXCJ4SGVpZ2h0XCIsIFwibnVtR2x5cGhzXCIsIFwiY2hhcmFjdGVyU2V0XCIsIFwiYXZhaWxhYmxlRmVhdHVyZXNcIlxyXG5dO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5Ac2NvcGVkKExpZmVjeWNsZS5Db250YWluZXJTY29wZWQpXHJcbmV4cG9ydCBjbGFzcyBBc3NldFByb2Nlc3NvciB7XHJcblxyXG4gICAgc3RhdGljIGFzeW5jIGdldE1pbWVUeXBlKGJ1ZmZlcjogQnVmZmVyLCBtaW1lVHlwZT86IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgbWltZVR5cGUgPSAoYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXIpKS5taW1lO1xyXG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgICAgaWYgKCFtaW1lVHlwZSkge1xyXG4gICAgICAgICAgICAgICAgdGhyb3cgYENhbid0IGRldGVybWluZSBtaW1lIHR5cGVgO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBDYW4ndCBkZXRlcm1pbmUgbWltZSB0eXBlYCwgZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBtaW1lVHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgZXh0cmFjdEZvbnRGb3JtYXQoZm9udDogRm9udCk6IEZvbnRGb3JtYXQge1xyXG4gICAgICAgIGNvbnN0IG5hbWU6IHN0cmluZyA9IGZvbnQuY29uc3RydWN0b3IubmFtZTtcclxuICAgICAgICBjb25zdCB0YWc6IHN0cmluZyAgPSBmb250W1wiZGlyZWN0b3J5XCJdLnRhZztcclxuICAgICAgICBzd2l0Y2ggKG5hbWUpIHtcclxuICAgICAgICAgICAgY2FzZSBcIlRURkZvbnRcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0YWcgPT09IFwiT1RUT1wiID8gXCJvcGVudHlwZVwiIDogXCJ0cnVldHlwZVwiO1xyXG4gICAgICAgICAgICBjYXNlIFwiV09GRjJGb250XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJ3b2ZmMlwiO1xyXG4gICAgICAgICAgICBjYXNlIFwiV09GRkZvbnRcIjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBcIndvZmZcIjtcclxuICAgICAgICAgICAgY2FzZSBcIkRGb250XCI6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gXCJkYXRhZm9ya1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNJbWFnZShjb250ZW50VHlwZTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIGltYWdlVHlwZXMuaW5kZXhPZihjb250ZW50VHlwZSkgPj0gMDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgYXN5bmMgY29weUltYWdlTWV0YShidWZmZXI6IEJ1ZmZlciwgbWV0YWRhdGE6IElBc3NldE1ldGEpOiBQcm9taXNlPEJ1ZmZlcj4ge1xyXG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGF3YWl0IHNoYXJwKGJ1ZmZlcikucm90YXRlKCkudG9CdWZmZXIoe3Jlc29sdmVXaXRoT2JqZWN0OiB0cnVlfSk7XHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbihtZXRhZGF0YSwgb3V0cHV0LmluZm8pO1xyXG4gICAgICAgIHJldHVybiBvdXRwdXQuZGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaXNGb250KGNvbnRlbnRUeXBlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gZm9udFR5cGVzLmluZGV4T2YoY29udGVudFR5cGUpID49IDA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGNvcHlGb250TWV0YShidWZmZXI6IEJ1ZmZlciwgbWV0YWRhdGE6IElBc3NldE1ldGEpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmb250OiBGb250ID0gZm9udEtpdC5jcmVhdGUoYnVmZmVyKTtcclxuICAgICAgICBtZXRhZGF0YS5mb3JtYXQgPSBBc3NldFByb2Nlc3Nvci5leHRyYWN0Rm9udEZvcm1hdChmb250KTtcclxuICAgICAgICBmb250UHJvcHMuZm9yRWFjaChwcm9wID0+IHtcclxuICAgICAgICAgICAgbWV0YWRhdGFbcHJvcF0gPSBmb250W3Byb3BdO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGFzeW5jIHByb2Nlc3MoYnVmZmVyOiBCdWZmZXIsIG1ldGFkYXRhOiBJQXNzZXRNZXRhLCBjb250ZW50VHlwZTogc3RyaW5nKTogUHJvbWlzZTxCdWZmZXI+IHtcclxuICAgICAgICBpZiAoQXNzZXRQcm9jZXNzb3IuaXNJbWFnZShjb250ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgYnVmZmVyID0gYXdhaXQgQXNzZXRQcm9jZXNzb3IuY29weUltYWdlTWV0YShidWZmZXIsIG1ldGFkYXRhKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKEFzc2V0UHJvY2Vzc29yLmlzRm9udChjb250ZW50VHlwZSkpIHtcclxuICAgICAgICAgICAgQXNzZXRQcm9jZXNzb3IuY29weUZvbnRNZXRhKGJ1ZmZlciwgbWV0YWRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYnVmZmVyO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
-
});
|
|
18
|
-
};
|
|
19
|
-
import { injectable, Lifecycle, scoped } from "tsyringe";
|
|
20
|
-
import { Assets } from "./assets";
|
|
21
|
-
import { LazyAssets } from "./lazy-assets";
|
|
22
|
-
let AssetResolver = class AssetResolver {
|
|
23
|
-
constructor(assets, lazyAssets) {
|
|
24
|
-
this.assets = assets;
|
|
25
|
-
this.lazyAssets = lazyAssets;
|
|
26
|
-
}
|
|
27
|
-
resolve(id, lazy = false) {
|
|
28
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
-
let asset = null;
|
|
30
|
-
if (lazy) {
|
|
31
|
-
const lazyAsset = yield this.lazyAssets.read(id);
|
|
32
|
-
if (!lazyAsset)
|
|
33
|
-
return null;
|
|
34
|
-
return lazyAsset.loadAsset();
|
|
35
|
-
}
|
|
36
|
-
asset = yield this.assets.read(id);
|
|
37
|
-
if (!asset) {
|
|
38
|
-
const lazyAsset = yield this.lazyAssets.read(id);
|
|
39
|
-
if (!lazyAsset)
|
|
40
|
-
return null;
|
|
41
|
-
return lazyAsset.loadAsset();
|
|
42
|
-
}
|
|
43
|
-
return asset;
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
AssetResolver = __decorate([
|
|
48
|
-
injectable(),
|
|
49
|
-
scoped(Lifecycle.ContainerScoped),
|
|
50
|
-
__metadata("design:paramtypes", [Assets, LazyAssets])
|
|
51
|
-
], AssetResolver);
|
|
52
|
-
export { AssetResolver };
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
11
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
12
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
13
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
14
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
15
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
16
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
import { injectable, Lifecycle, scoped } from "tsyringe";
|
|
20
|
+
import { Assets } from "./assets";
|
|
21
|
+
import { LazyAssets } from "./lazy-assets";
|
|
22
|
+
let AssetResolver = class AssetResolver {
|
|
23
|
+
constructor(assets, lazyAssets) {
|
|
24
|
+
this.assets = assets;
|
|
25
|
+
this.lazyAssets = lazyAssets;
|
|
26
|
+
}
|
|
27
|
+
resolve(id, lazy = false) {
|
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
let asset = null;
|
|
30
|
+
if (lazy) {
|
|
31
|
+
const lazyAsset = yield this.lazyAssets.read(id);
|
|
32
|
+
if (!lazyAsset)
|
|
33
|
+
return null;
|
|
34
|
+
return lazyAsset.loadAsset();
|
|
35
|
+
}
|
|
36
|
+
asset = yield this.assets.read(id);
|
|
37
|
+
if (!asset) {
|
|
38
|
+
const lazyAsset = yield this.lazyAssets.read(id);
|
|
39
|
+
if (!lazyAsset)
|
|
40
|
+
return null;
|
|
41
|
+
return lazyAsset.loadAsset();
|
|
42
|
+
}
|
|
43
|
+
return asset;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
AssetResolver = __decorate([
|
|
48
|
+
injectable(),
|
|
49
|
+
scoped(Lifecycle.ContainerScoped),
|
|
50
|
+
__metadata("design:paramtypes", [Assets, LazyAssets])
|
|
51
|
+
], AssetResolver);
|
|
52
|
+
export { AssetResolver };
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcmVzb2x2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvYXNzZXQtcmVzb2x2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFDLE1BQU0sVUFBVSxDQUFDO0FBRXZELE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDaEMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztJQUk1QixhQUFhLFNBQWIsYUFBYTtJQUV0QixZQUFxQixNQUFjLEVBQVcsVUFBc0I7UUFBL0MsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFXLGVBQVUsR0FBVixVQUFVLENBQVk7SUFFcEUsQ0FBQztJQUVLLE9BQU8sQ0FBQyxFQUFVLEVBQUUsT0FBZ0IsS0FBSzs7WUFDM0MsSUFBSSxLQUFLLEdBQVcsSUFBSSxDQUFDO1lBQ3pCLElBQUksSUFBSSxFQUFFO2dCQUNOLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ2pELElBQUksQ0FBQyxTQUFTO29CQUFFLE9BQU8sSUFBSSxDQUFDO2dCQUM1QixPQUFPLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNoQztZQUNELEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUU7Z0JBQ1IsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLFNBQVM7b0JBQUUsT0FBTyxJQUFJLENBQUM7Z0JBQzVCLE9BQU8sU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO2FBQ2hDO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDakIsQ0FBQztLQUFBO0NBQ0osQ0FBQTtBQXJCWSxhQUFhO0lBRnpCLFVBQVUsRUFBRTtJQUNaLE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDO3FDQUdELE1BQU0sRUFBdUIsVUFBVTtHQUYzRCxhQUFhLENBcUJ6QjtTQXJCWSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3RhYmxlLCBMaWZlY3ljbGUsIHNjb3BlZH0gZnJvbSBcInRzeXJpbmdlXCI7XHJcbmltcG9ydCB7SUFzc2V0fSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7QXNzZXRzfSBmcm9tIFwiLi9hc3NldHNcIjtcclxuaW1wb3J0IHtMYXp5QXNzZXRzfSBmcm9tIFwiLi9sYXp5LWFzc2V0c1wiO1xyXG5cclxuQGluamVjdGFibGUoKVxyXG5Ac2NvcGVkKExpZmVjeWNsZS5Db250YWluZXJTY29wZWQpXHJcbmV4cG9ydCBjbGFzcyBBc3NldFJlc29sdmVyIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihyZWFkb25seSBhc3NldHM6IEFzc2V0cywgcmVhZG9ubHkgbGF6eUFzc2V0czogTGF6eUFzc2V0cykge1xyXG5cclxuICAgIH1cclxuXHJcbiAgICBhc3luYyByZXNvbHZlKGlkOiBzdHJpbmcsIGxhenk6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8SUFzc2V0PiB7XHJcbiAgICAgICAgbGV0IGFzc2V0OiBJQXNzZXQgPSBudWxsO1xyXG4gICAgICAgIGlmIChsYXp5KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhenlBc3NldCA9IGF3YWl0IHRoaXMubGF6eUFzc2V0cy5yZWFkKGlkKTtcclxuICAgICAgICAgICAgaWYgKCFsYXp5QXNzZXQpIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICByZXR1cm4gbGF6eUFzc2V0LmxvYWRBc3NldCgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBhc3NldCA9IGF3YWl0IHRoaXMuYXNzZXRzLnJlYWQoaWQpO1xyXG4gICAgICAgIGlmICghYXNzZXQpIHtcclxuICAgICAgICAgICAgY29uc3QgbGF6eUFzc2V0ID0gYXdhaXQgdGhpcy5sYXp5QXNzZXRzLnJlYWQoaWQpO1xyXG4gICAgICAgICAgICBpZiAoIWxhenlBc3NldCkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIHJldHVybiBsYXp5QXNzZXQubG9hZEFzc2V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhc3NldDtcclxuICAgIH1cclxufVxyXG4iXX0=
|