12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.createClass = exports.inherit = void 0;
- const extendStatics = Object.setPrototypeOf ||
- ({ __proto__: [] } instanceof Array &&
- function (d, b) {
- d.__proto__ = b; // eslint-disable-line no-proto
- }) ||
- function (d, b) {
- // eslint-disable-next-line no-restricted-syntax
- for (const p in b) {
- if (Object.prototype.hasOwnProperty.call(b, p)) {
- d[p] = b[p];
- }
- }
- };
- /**
- * @see https://github.com/microsoft/TypeScript/blob/5c85febb0ce9d6088cbe9b09cb42f73f9ee8ea05/src/compiler/transformers/es2015.ts#L4309
- */
- // eslint-disable-next-line
- function inherit(cls, base) {
- extendStatics(cls, base);
- function tmp() {
- this.constructor = cls;
- }
- cls.prototype =
- base === null
- ? Object.create(base)
- : ((tmp.prototype = base.prototype), new tmp());
- }
- exports.inherit = inherit;
- class A {
- }
- const isNativeClass = /^\s*class\s+/.test(`${A}`) || /^\s*class\s*\{/.test(`${class {
- }}`);
- /**
- * Extends class with specified class name.
- */
- function createClass(className, base) {
- let cls;
- if (isNativeClass) {
- cls = class extends base {
- };
- }
- else {
- cls = function () {
- return base.apply(this, arguments); // eslint-disable-line
- };
- inherit(cls, base);
- }
- Object.defineProperty(cls, 'name', { value: className });
- return cls;
- }
- exports.createClass = createClass;
- //# sourceMappingURL=inherit.js.map
|