UNPKG

@platform/cell.typesystem

Version:

The 'strongly typed sheets' system of the CellOS.

32 lines (31 loc) 1.24 kB
"use strict"; 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;