st-open-api
Version:
Generates API client SDKs from an OpenAPI specification written in OpenAPI version 3.x.x
68 lines • 2.5 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Ref = exports.GROUP_SERVICE = void 0;
var path_1 = require("path");
exports.GROUP_SERVICE = 'SERVICE';
var Ref = /** @class */ (function () {
function Ref() {
var _this = this;
this.refs = {};
this.groups = {};
this.getImportAndTypeByRef = function (ref, path) {
var reference = _this.refs[ref];
if (!reference) {
throw new Error("Reference ".concat(ref, " not found."));
}
var relativePath = (0, path_1.relative)(path, reference.folderPath).split(path_1.sep).join('/');
if (!relativePath) {
relativePath = './';
}
else {
if (!relativePath.startsWith('../')) {
relativePath = "./".concat(relativePath);
}
relativePath += '/';
}
return {
className: reference.className,
import: "import {".concat(reference.className, "} from '").concat(relativePath).concat(reference.fileName, "';"),
schema: reference.schema
};
};
this.addReference = function (refKey, data, group) {
if (group === void 0) { group = undefined; }
var ref = {
fileName: data.fileName,
className: data.className,
folderPath: data.folderPath,
schema: data === null || data === void 0 ? void 0 : data.schema
};
_this.refs[refKey] = ref;
if (!!group) {
var groupArr = _this.groups[group];
if (!groupArr) {
groupArr = [];
_this.groups[group] = groupArr;
}
groupArr.push(__assign(__assign({}, ref), { refKey: refKey }));
}
};
}
Ref.prototype.getByGroup = function (group) {
return this.groups[group] || [];
};
return Ref;
}());
exports.Ref = Ref;
//# sourceMappingURL=ref.js.map