e22m4u 1 год назад
Родитель
Сommit
f0d32914bc
3 измененных файлов с 7 добавлено и 326 удалено
  1. 0 1
      build-cjs.js
  2. 5 324
      dist/cjs/index.cjs
  3. 2 1
      package.json

+ 0 - 1
build-cjs.js

@@ -6,6 +6,5 @@ await esbuild.build({
   format: 'cjs',
   platform: 'node',
   target: ['node12'],
-  bundle: true,
   keepNames: true,
 });

+ 5 - 324
dist/cjs/index.cjs

@@ -2,12 +2,6 @@ var __defProp = Object.defineProperty;
 var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
 var __getOwnPropNames = Object.getOwnPropertyNames;
 var __hasOwnProp = Object.prototype.hasOwnProperty;
-var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
-var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
-var __export = (target, all) => {
-  for (var name in all)
-    __defProp(target, name, { get: all[name], enumerable: true });
-};
 var __copyProps = (to, from, except, desc) => {
   if (from && typeof from === "object" || typeof from === "function") {
     for (let key of __getOwnPropNames(from))
@@ -16,327 +10,14 @@ var __copyProps = (to, from, except, desc) => {
   }
   return to;
 };
+var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
 var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
-var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
-
-// src/index.js
 var src_exports = {};
-__export(src_exports, {
-  Service: () => Service,
-  ServiceContainer: () => ServiceContainer
-});
 module.exports = __toCommonJS(src_exports);
-
-// node_modules/@e22m4u/js-format/src/utils/is-class.js
-function isClass(value) {
-  if (!value) return false;
-  return typeof value === "function" && /^class\s/.test(Function.prototype.toString.call(value));
-}
-__name(isClass, "isClass");
-
-// node_modules/@e22m4u/js-format/src/value-to-string.js
-var BASE_CTOR_NAMES = [
-  "String",
-  "Number",
-  "Boolean",
-  "Object",
-  "Array",
-  "Function",
-  "Symbol",
-  "Map",
-  "Set",
-  "Date"
-];
-function valueToString(input) {
-  if (input == null) return String(input);
-  if (typeof input === "string") return `"${input}"`;
-  if (typeof input === "number" || typeof input === "boolean")
-    return String(input);
-  if (isClass(input)) return input.name ? input.name : "Class";
-  if (input.constructor && input.constructor.name)
-    return BASE_CTOR_NAMES.includes(input.constructor.name) ? input.constructor.name : `${input.constructor.name} (instance)`;
-  if (typeof input === "object" && input.constructor == null) return "Object";
-  return String(input);
-}
-__name(valueToString, "valueToString");
-
-// node_modules/@e22m4u/js-format/src/array-to-list.js
-var SEPARATOR = ", ";
-function arrayToList(input) {
-  if (Array.isArray(input) && input.length)
-    return input.map(valueToString).join(SEPARATOR);
-  return valueToString(input);
-}
-__name(arrayToList, "arrayToList");
-
-// node_modules/@e22m4u/js-format/src/format.js
-function format(pattern) {
-  if (pattern instanceof Date) {
-    pattern = pattern.toISOString();
-  } else if (typeof pattern !== "string") {
-    pattern = String(pattern);
-  }
-  const re = /(%?)(%([sdjvl]))/g;
-  const args = Array.prototype.slice.call(arguments, 1);
-  if (args.length) {
-    pattern = pattern.replace(re, function(match, escaped, ptn, flag) {
-      let arg = args.shift();
-      switch (flag) {
-        case "s":
-          arg = String(arg);
-          break;
-        case "d":
-          arg = Number(arg);
-          break;
-        case "j":
-          arg = JSON.stringify(arg);
-          break;
-        case "v":
-          arg = valueToString(arg);
-          break;
-        case "l":
-          arg = arrayToList(arg);
-          break;
-      }
-      if (!escaped) return arg;
-      args.unshift(arg);
-      return match;
-    });
-  }
-  if (args.length) pattern += " " + args.join(" ");
-  pattern = pattern.replace(/%{2}/g, "%");
-  return "" + pattern;
-}
-__name(format, "format");
-
-// node_modules/@e22m4u/js-format/src/errorf.js
-var _Errorf = class _Errorf extends Error {
-  /**
-   * Constructor.
-   *
-   * @param {string|undefined} pattern
-   * @param {any} args
-   */
-  constructor(pattern = void 0, ...args) {
-    const message = pattern != null ? format(pattern, ...args) : void 0;
-    super(message);
-  }
-};
-__name(_Errorf, "Errorf");
-var Errorf = _Errorf;
-
-// src/errors/invalid-argument-error.js
-var _InvalidArgumentError = class _InvalidArgumentError extends Errorf {
-};
-__name(_InvalidArgumentError, "InvalidArgumentError");
-var InvalidArgumentError = _InvalidArgumentError;
-
-// src/service-container.js
-var _ServiceContainer = class _ServiceContainer {
-  /**
-   * Services map.
-   *
-   * @type {Map<any, any>}
-   * @private
-   */
-  _services = /* @__PURE__ */ new Map();
-  /**
-   * Parent container.
-   *
-   * @type {ServiceContainer}
-   * @private
-   */
-  _parent;
-  /**
-   * Constructor.
-   *
-   * @param {ServiceContainer|undefined} parent
-   */
-  constructor(parent = void 0) {
-    if (parent != null) {
-      if (!(parent instanceof _ServiceContainer))
-        throw new InvalidArgumentError(
-          'The provided parameter "parent" of ServicesContainer.constructor must be an instance ServiceContainer, but %v given.',
-          parent
-        );
-      this._parent = parent;
-    }
-  }
-  /**
-   * Получить существующий или новый экземпляр.
-   *
-   * @param {*} ctor
-   * @param {*} args
-   * @return {*}
-   */
-  get(ctor, ...args) {
-    if (!ctor || typeof ctor !== "function")
-      throw new InvalidArgumentError(
-        "The first argument of ServicesContainer.get must be a class constructor, but %v given.",
-        ctor
-      );
-    if (!this._services.has(ctor) && this._parent && this._parent.has(ctor)) {
-      return this._parent.get(ctor);
-    }
-    let service = this._services.get(ctor);
-    if (!service || args.length) {
-      service = ctor.kind === "Service" ? new ctor(this, ...args) : new ctor(...args);
-      this._services.set(ctor, service);
-    } else if (typeof service === "function") {
-      service = service();
-      this._services.set(ctor, service);
-    }
-    return service;
-  }
-  /**
-   * Проверка существования конструктора в контейнере.
-   *
-   * @param {*} ctor
-   * @return {boolean}
-   */
-  has(ctor) {
-    if (this._services.has(ctor)) return true;
-    if (this._parent) return this._parent.has(ctor);
-    return false;
-  }
-  /**
-   * Добавить конструктор в контейнер.
-   *
-   * @param {*} ctor
-   * @param {*} args
-   * @return {this}
-   */
-  add(ctor, ...args) {
-    if (!ctor || typeof ctor !== "function")
-      throw new InvalidArgumentError(
-        "The first argument of ServicesContainer.add must be a class constructor, but %v given.",
-        ctor
-      );
-    const factory = /* @__PURE__ */ __name(() => ctor.kind === "Service" ? new ctor(this, ...args) : new ctor(...args), "factory");
-    this._services.set(ctor, factory);
-    return this;
-  }
-  /**
-   * Добавить конструктор и создать экземпляр.
-   *
-   * @param {*} ctor
-   * @param {*} args
-   * @return {this}
-   */
-  use(ctor, ...args) {
-    if (!ctor || typeof ctor !== "function")
-      throw new InvalidArgumentError(
-        "The first argument of ServicesContainer.use must be a class constructor, but %v given.",
-        ctor
-      );
-    const service = ctor.kind === "Service" ? new ctor(this, ...args) : new ctor(...args);
-    this._services.set(ctor, service);
-    return this;
-  }
-  /**
-   * Добавить конструктор и связанный экземпляр.
-   *
-   * @param {*} ctor
-   * @param {*} service
-   * @return {this}
-   */
-  set(ctor, service) {
-    if (!ctor || typeof ctor !== "function")
-      throw new InvalidArgumentError(
-        "The first argument of ServicesContainer.set must be a class constructor, but %v given.",
-        ctor
-      );
-    if (!service || typeof service !== "object" || Array.isArray(service))
-      throw new InvalidArgumentError(
-        "The second argument of ServicesContainer.set must be an Object, but %v given.",
-        service
-      );
-    this._services.set(ctor, service);
-    return this;
-  }
-};
-__name(_ServiceContainer, "ServiceContainer");
-var ServiceContainer = _ServiceContainer;
-
-// src/service.js
-var _Service = class _Service {
-  /**
-   * Container.
-   *
-   * @type {ServiceContainer}
-   */
-  container;
-  /**
-   * Constructor.
-   *
-   * @param {ServiceContainer|undefined} container
-   */
-  constructor(container = void 0) {
-    this.container = container instanceof ServiceContainer ? container : new ServiceContainer();
-  }
-  /**
-   * Получить существующий или новый экземпляр.
-   *
-   * @param {*} ctor
-   * @param {*} args
-   * @return {*}
-   */
-  getService(ctor, ...args) {
-    return this.container.get(ctor, ...args);
-  }
-  /**
-   * Проверка существования конструктора в контейнере.
-   *
-   * @param {*} ctor
-   * @return {boolean}
-   */
-  hasService(ctor) {
-    return this.container.has(ctor);
-  }
-  /**
-   * Добавить конструктор в контейнер.
-   *
-   * @param {*} ctor
-   * @param {*} args
-   * @return {this}
-   */
-  addService(ctor, ...args) {
-    this.container.add(ctor, ...args);
-    return this;
-  }
-  /**
-   * Добавить конструктор и создать экземпляр.
-   *
-   * @param {*} ctor
-   * @param {*} args
-   * @return {this}
-   */
-  useService(ctor, ...args) {
-    this.container.use(ctor, ...args);
-    return this;
-  }
-  /**
-   * Добавить конструктор и связанный экземпляр.
-   *
-   * @param {*} ctor
-   * @param {*} service
-   * @return {this}
-   */
-  setService(ctor, service) {
-    this.container.set(ctor, service);
-    return this;
-  }
-};
-__name(_Service, "Service");
-/**
- * Kind.
- *
- * @type {string}
- */
-__publicField(_Service, "kind", "Service");
-var Service = _Service;
+__reExport(src_exports, require("./service.js"), module.exports);
+__reExport(src_exports, require("./service-container.js"), module.exports);
 // Annotate the CommonJS export names for ESM import in node:
 0 && (module.exports = {
-  Service,
-  ServiceContainer
+  ...require("./service.js"),
+  ...require("./service-container.js")
 });

+ 2 - 1
package.json

@@ -20,7 +20,7 @@
     "format": "prettier --write \"./src/**/*.js\"",
     "test": "npm run lint && c8 --reporter=text-summary mocha",
     "test:coverage": "npm run lint && c8 --reporter=text mocha",
-    "build:cjs": "node build-cjs.js",
+    "build:cjs": "rimraf ./dist/cjs && node build-cjs.js",
     "prepare": "husky"
   },
   "repository": {
@@ -54,6 +54,7 @@
     "husky": "~9.1.6",
     "mocha": "~10.8.2",
     "prettier": "~3.3.3",
+    "rimraf": "^6.0.1",
     "typescript": "~5.6.3"
   }
 }