UNPKG

@mw-components/ali-oss

Version:

阿里云 OSS 命令行工具 ossutil 封装 midway.js 组件,提供 TypeScript 类型定义

76 lines 3.06 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AliOssManager = void 0; const node_assert_1 = __importDefault(require("node:assert")); const types_1 = require("node:util/types"); const decorator_1 = require("@midwayjs/decorator"); const source_manager_1 = require("./source-manager"); const types_2 = require("./types"); let AliOssManager = class AliOssManager { ctx; sourceManager; getName() { return types_2.ConfigKey.managerName; } instCacheMap = new Map(); async createInstance(config, clientName, options) { await this.sourceManager.createInstance(config, clientName, options); return this.getDataSource(clientName); } /** * Check the data source is connected */ async isConnected(dataSourceName) { return this.sourceManager.isConnected(dataSourceName); } getDataSource(dataSourceName) { const cacheInst = this.instCacheMap.get(dataSourceName); if (cacheInst) { return cacheInst; } const inst = this.sourceManager.getDataSource(dataSourceName); (0, node_assert_1.default)(inst); const reqCtx = this.ctx; if (!reqCtx) { return inst; } const db2 = this.createCtxProxy(inst, reqCtx); this.instCacheMap.set(dataSourceName, db2); return db2; } createCtxProxy(inst, reqCtx) { (0, node_assert_1.default)(reqCtx); if ((0, types_1.isProxy)(inst)) { return inst; } const ret = new Proxy(inst, { get: (target, propKey) => propKey === 'ctx' ? reqCtx : target[propKey], }); return ret; } }; __decorate([ (0, decorator_1.Inject)(), __metadata("design:type", Object) ], AliOssManager.prototype, "ctx", void 0); __decorate([ (0, decorator_1.Inject)(), __metadata("design:type", source_manager_1.AliOssSourceManager) ], AliOssManager.prototype, "sourceManager", void 0); AliOssManager = __decorate([ (0, decorator_1.Provide)() ], AliOssManager); exports.AliOssManager = AliOssManager; //# sourceMappingURL=manager.js.map