@platform/cell.typesystem
Version:
The 'strongly typed sheets' system of the CellOS.
32 lines (31 loc) • 1.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TypeBuilderNs = void 0;
var common_1 = require("../common");
var TypeBuilderType_1 = require("./TypeBuilderType");
var TypeBuilderNs = (function () {
function TypeBuilderNs(args) {
this.types = [];
this.uri = common_1.Uri.ns(args.uri);
}
TypeBuilderNs.prototype.toString = function () {
return this.uri.toString();
};
TypeBuilderNs.prototype.type = function (typename, options) {
if (options === void 0) { options = {}; }
var startColumn = options.startColumn;
var uri = this.uri;
typename = (typename || '').trim();
var exists = this.types.some(function (item) { return item.typename === typename; });
if (exists) {
var err = "The typename '" + typename + "' already exists";
throw new Error(err);
}
var type = TypeBuilderType_1.TypeBuilderType.create({ uri: uri, typename: typename, startColumn: startColumn });
this.types.push(type);
return type;
};
TypeBuilderNs.create = function (args) { return new TypeBuilderNs(args); };
return TypeBuilderNs;
}());
exports.TypeBuilderNs = TypeBuilderNs;