awilix 12.0.5 → 12.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/awilix.browser.mjs +49 -55
- package/lib/awilix.module.mjs +137 -56
- package/lib/awilix.umd.js +49 -55
- package/lib/camel-case.d.ts +13 -0
- package/lib/camel-case.js +91 -0
- package/lib/camel-case.js.map +1 -0
- package/lib/container.js +36 -36
- package/lib/container.js.map +1 -1
- package/lib/load-modules.js +1 -1
- package/lib/load-modules.js.map +1 -1
- package/lib/resolvers.js +13 -7
- package/lib/resolvers.js.map +1 -1
- package/package.json +3 -2
package/lib/awilix.browser.mjs
CHANGED
|
@@ -511,18 +511,6 @@ fn) {
|
|
|
511
511
|
function isFunction(val) {
|
|
512
512
|
return typeof val === 'function';
|
|
513
513
|
}
|
|
514
|
-
/**
|
|
515
|
-
* Returns the unique items in the array.
|
|
516
|
-
*
|
|
517
|
-
* @param {Array<T>}
|
|
518
|
-
* The array to remove dupes from.
|
|
519
|
-
*
|
|
520
|
-
* @return {Array<T>}
|
|
521
|
-
* The deduped array.
|
|
522
|
-
*/
|
|
523
|
-
function uniq(arr) {
|
|
524
|
-
return Array.from(new Set(arr));
|
|
525
|
-
}
|
|
526
514
|
|
|
527
515
|
/*
|
|
528
516
|
* Parses the parameter list of a function string, including ES6 class constructors.
|
|
@@ -884,10 +872,16 @@ function wrapWithLocals(container, locals) {
|
|
|
884
872
|
*/
|
|
885
873
|
function createInjectorProxy(container, injector) {
|
|
886
874
|
const locals = injector(container);
|
|
887
|
-
const
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
875
|
+
const keySet = new Set(Object.keys(container.registrations));
|
|
876
|
+
for (const s of Object.getOwnPropertySymbols(container.registrations)) {
|
|
877
|
+
keySet.add(s);
|
|
878
|
+
}
|
|
879
|
+
for (const k of Object.keys(locals)) {
|
|
880
|
+
keySet.add(k);
|
|
881
|
+
}
|
|
882
|
+
for (const s of Object.getOwnPropertySymbols(locals)) {
|
|
883
|
+
keySet.add(s);
|
|
884
|
+
}
|
|
891
885
|
// TODO: Lots of duplication here from the container proxy.
|
|
892
886
|
// Need to refactor.
|
|
893
887
|
const proxy = new Proxy({}, {
|
|
@@ -914,13 +908,13 @@ function createInjectorProxy(container, injector) {
|
|
|
914
908
|
* Used for `Object.keys`.
|
|
915
909
|
*/
|
|
916
910
|
ownKeys() {
|
|
917
|
-
return
|
|
911
|
+
return [...keySet];
|
|
918
912
|
},
|
|
919
913
|
/**
|
|
920
914
|
* Used for `Object.keys`.
|
|
921
915
|
*/
|
|
922
|
-
getOwnPropertyDescriptor(
|
|
923
|
-
if (
|
|
916
|
+
getOwnPropertyDescriptor(_target, key) {
|
|
917
|
+
if (keySet.has(key)) {
|
|
924
918
|
return {
|
|
925
919
|
enumerable: true,
|
|
926
920
|
configurable: true,
|
|
@@ -1227,8 +1221,11 @@ function createContainerInternal(options, parentContainer, parentResolutionStack
|
|
|
1227
1221
|
try {
|
|
1228
1222
|
// Grab the registration by name.
|
|
1229
1223
|
const resolver = getRegistration(name);
|
|
1230
|
-
|
|
1231
|
-
|
|
1224
|
+
// Cycle detection: scan the resolution stack.
|
|
1225
|
+
for (let i = 0; i < resolutionStack.length; i++) {
|
|
1226
|
+
if (resolutionStack[i].name === name) {
|
|
1227
|
+
throw new AwilixResolutionError(name, resolutionStack, 'Cyclic dependencies detected.');
|
|
1228
|
+
}
|
|
1232
1229
|
}
|
|
1233
1230
|
// Used in JSON.stringify.
|
|
1234
1231
|
if (name === 'toJSON') {
|
|
@@ -1263,57 +1260,54 @@ function createContainerInternal(options, parentContainer, parentResolutionStack
|
|
|
1263
1260
|
throw new AwilixResolutionError(name, resolutionStack);
|
|
1264
1261
|
}
|
|
1265
1262
|
const lifetime = resolver.lifetime || Lifetime.TRANSIENT;
|
|
1266
|
-
// if
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1263
|
+
// Throws if a shorter-lived dependency is resolved through a longer-lived ancestor.
|
|
1264
|
+
function throwIfLifetimeLeakage(depName, depLifetime, dep) {
|
|
1265
|
+
if (!options.strict || dep.isLeakSafe)
|
|
1266
|
+
return;
|
|
1267
|
+
for (let i = 0; i < resolutionStack.length; i++) {
|
|
1268
|
+
if (isLifetimeLonger(resolutionStack[i].lifetime, depLifetime)) {
|
|
1269
|
+
throw new AwilixResolutionError(depName, resolutionStack, `Dependency '${depName.toString()}' has a shorter lifetime than its ancestor: '${resolutionStack[i].name.toString()}'`);
|
|
1270
|
+
}
|
|
1271
|
+
}
|
|
1272
|
+
}
|
|
1273
|
+
// Fast path: cached singletons can always be returned immediately
|
|
1274
|
+
// since nothing has a longer lifetime.
|
|
1275
|
+
if (lifetime === Lifetime.SINGLETON) {
|
|
1276
|
+
const cached = rootContainer.cache.get(name);
|
|
1277
|
+
if (cached) {
|
|
1278
|
+
return cached.value;
|
|
1279
|
+
}
|
|
1280
|
+
}
|
|
1281
|
+
// Fast path: cached scoped values can be returned immediately,
|
|
1282
|
+
// but in strict mode we still need to verify lifetime constraints.
|
|
1283
|
+
if (lifetime === Lifetime.SCOPED) {
|
|
1284
|
+
const cached = container.cache.get(name);
|
|
1285
|
+
if (cached !== undefined) {
|
|
1286
|
+
throwIfLifetimeLeakage(name, lifetime, resolver);
|
|
1287
|
+
return cached.value;
|
|
1272
1288
|
}
|
|
1273
1289
|
}
|
|
1274
|
-
//
|
|
1290
|
+
// Slow path: need to invoke the factory.
|
|
1291
|
+
throwIfLifetimeLeakage(name, lifetime, resolver);
|
|
1275
1292
|
resolutionStack.push({ name, lifetime });
|
|
1276
|
-
// Do the thing
|
|
1277
|
-
let cached;
|
|
1278
1293
|
let resolved;
|
|
1279
1294
|
switch (lifetime) {
|
|
1280
1295
|
case Lifetime.TRANSIENT:
|
|
1281
|
-
// Transient lifetime means resolve every time.
|
|
1282
1296
|
resolved = resolver.resolve(container);
|
|
1283
1297
|
break;
|
|
1284
1298
|
case Lifetime.SINGLETON:
|
|
1285
|
-
//
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
// if we are running in strict mode, perform singleton resolution using the root
|
|
1289
|
-
// container only.
|
|
1290
|
-
resolved = resolver.resolve(options.strict ? rootContainer : container);
|
|
1291
|
-
rootContainer.cache.set(name, { resolver, value: resolved });
|
|
1292
|
-
}
|
|
1293
|
-
else {
|
|
1294
|
-
resolved = cached.value;
|
|
1295
|
-
}
|
|
1299
|
+
// Cache was already checked above, so this is always a miss.
|
|
1300
|
+
resolved = resolver.resolve(options.strict ? rootContainer : container);
|
|
1301
|
+
rootContainer.cache.set(name, { resolver, value: resolved });
|
|
1296
1302
|
break;
|
|
1297
1303
|
case Lifetime.SCOPED:
|
|
1298
|
-
//
|
|
1299
|
-
// that resolves the registration also caches it.
|
|
1300
|
-
// If this container cache does not have it,
|
|
1301
|
-
// resolve and cache it rather than using the parent
|
|
1302
|
-
// container's cache.
|
|
1303
|
-
cached = container.cache.get(name);
|
|
1304
|
-
if (cached !== undefined) {
|
|
1305
|
-
// We found one!
|
|
1306
|
-
resolved = cached.value;
|
|
1307
|
-
break;
|
|
1308
|
-
}
|
|
1309
|
-
// If we still have not found one, we need to resolve and cache it.
|
|
1304
|
+
// Cache was already checked above, so this is always a miss.
|
|
1310
1305
|
resolved = resolver.resolve(container);
|
|
1311
1306
|
container.cache.set(name, { resolver, value: resolved });
|
|
1312
1307
|
break;
|
|
1313
1308
|
default:
|
|
1314
1309
|
throw new AwilixResolutionError(name, resolutionStack, `Unknown lifetime "${resolver.lifetime}"`);
|
|
1315
1310
|
}
|
|
1316
|
-
// Pop it from the stack again, ready for the next resolution
|
|
1317
1311
|
resolutionStack.pop();
|
|
1318
1312
|
return resolved;
|
|
1319
1313
|
}
|
package/lib/awilix.module.mjs
CHANGED
|
@@ -2,7 +2,6 @@ import * as util from 'util';
|
|
|
2
2
|
import glob from 'fast-glob';
|
|
3
3
|
import * as path from 'path';
|
|
4
4
|
import { importModule } from './load-module-native.js';
|
|
5
|
-
import { camelCase } from 'camel-case';
|
|
6
5
|
import { pathToFileURL } from 'url';
|
|
7
6
|
|
|
8
7
|
/**
|
|
@@ -536,18 +535,6 @@ fn) {
|
|
|
536
535
|
function isFunction(val) {
|
|
537
536
|
return typeof val === 'function';
|
|
538
537
|
}
|
|
539
|
-
/**
|
|
540
|
-
* Returns the unique items in the array.
|
|
541
|
-
*
|
|
542
|
-
* @param {Array<T>}
|
|
543
|
-
* The array to remove dupes from.
|
|
544
|
-
*
|
|
545
|
-
* @return {Array<T>}
|
|
546
|
-
* The deduped array.
|
|
547
|
-
*/
|
|
548
|
-
function uniq(arr) {
|
|
549
|
-
return Array.from(new Set(arr));
|
|
550
|
-
}
|
|
551
538
|
|
|
552
539
|
// Regex to extract the module name.
|
|
553
540
|
const nameExpr = /(.*)\..*/i;
|
|
@@ -605,6 +592,94 @@ function listModules(globPatterns, opts) {
|
|
|
605
592
|
return _listModules(globPatterns, opts);
|
|
606
593
|
}
|
|
607
594
|
|
|
595
|
+
/**
|
|
596
|
+
* Hyperoptimized camelCase conversion.
|
|
597
|
+
*
|
|
598
|
+
* Single-pass, zero-regex, zero-allocation (beyond the result string).
|
|
599
|
+
* Splits on non-alphanumeric separators and case transitions:
|
|
600
|
+
* - lowercase/digit followed by uppercase (e.g. fooBar → foo|Bar)
|
|
601
|
+
* - uppercase followed by uppercase+lower (e.g. HTMLParser → HTML|Parser)
|
|
602
|
+
*
|
|
603
|
+
* First word is lowercased; subsequent words are capitalized (first char
|
|
604
|
+
* uppercased, rest lowercased). A subsequent word that starts with a digit
|
|
605
|
+
* is prefixed with '_'.
|
|
606
|
+
*/
|
|
607
|
+
function camelCase(input) {
|
|
608
|
+
const len = input.length;
|
|
609
|
+
if (len === 0) {
|
|
610
|
+
return '';
|
|
611
|
+
}
|
|
612
|
+
let result = '';
|
|
613
|
+
let wordIdx = 0;
|
|
614
|
+
let wordPos = 0;
|
|
615
|
+
let inWord = false;
|
|
616
|
+
// Character type of the previous character:
|
|
617
|
+
// 0 = separator / start, 1 = uppercase, 2 = lowercase, 3 = digit
|
|
618
|
+
let prevType = 0;
|
|
619
|
+
for (let i = 0; i < len; i++) {
|
|
620
|
+
const c = input.charCodeAt(i);
|
|
621
|
+
// Classify – check lowercase first (most frequent in identifiers).
|
|
622
|
+
const type = c >= 97 && c <= 122
|
|
623
|
+
? 2
|
|
624
|
+
: c >= 65 && c <= 90
|
|
625
|
+
? 1
|
|
626
|
+
: c >= 48 && c <= 57
|
|
627
|
+
? 3
|
|
628
|
+
: 0;
|
|
629
|
+
if (type === 0) {
|
|
630
|
+
// Non-alphanumeric separator – end the current word.
|
|
631
|
+
if (inWord) {
|
|
632
|
+
wordIdx++;
|
|
633
|
+
inWord = false;
|
|
634
|
+
}
|
|
635
|
+
prevType = 0;
|
|
636
|
+
continue;
|
|
637
|
+
}
|
|
638
|
+
if (!inWord) {
|
|
639
|
+
// First alphanumeric char after separator(s) or string start.
|
|
640
|
+
inWord = true;
|
|
641
|
+
wordPos = 0;
|
|
642
|
+
}
|
|
643
|
+
else if (type === 1) {
|
|
644
|
+
// Uppercase while already inside a word – detect word boundary.
|
|
645
|
+
if (prevType >= 2 || // preceded by lowercase (2) or digit (3)
|
|
646
|
+
(prevType === 1 && // preceded by uppercase …
|
|
647
|
+
i + 1 < len &&
|
|
648
|
+
input.charCodeAt(i + 1) >= 97 &&
|
|
649
|
+
input.charCodeAt(i + 1) <= 122) // … and followed by lowercase
|
|
650
|
+
) {
|
|
651
|
+
wordIdx++;
|
|
652
|
+
wordPos = 0;
|
|
653
|
+
}
|
|
654
|
+
}
|
|
655
|
+
// Emit the character with the correct casing.
|
|
656
|
+
if (wordIdx === 0) {
|
|
657
|
+
// First word – everything lowercase.
|
|
658
|
+
// c | 0x20 sets bit-5, converting A-Z → a-z (no-op for a-z / 0-9).
|
|
659
|
+
result += type === 1 ? String.fromCharCode(c | 0x20) : input[i];
|
|
660
|
+
}
|
|
661
|
+
else if (wordPos === 0) {
|
|
662
|
+
// First char of a subsequent word.
|
|
663
|
+
if (type === 3) {
|
|
664
|
+
// Digit-leading word: prefix with '_'.
|
|
665
|
+
result += '_';
|
|
666
|
+
result += input[i];
|
|
667
|
+
}
|
|
668
|
+
else {
|
|
669
|
+
// c & 0x5f clears bit-5, converting a-z → A-Z (no-op for A-Z).
|
|
670
|
+
result += type === 2 ? String.fromCharCode(c & 0x5f) : input[i];
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
else {
|
|
674
|
+
// Remaining chars of a subsequent word – lowercase.
|
|
675
|
+
result += type === 1 ? String.fromCharCode(c | 0x20) : input[i];
|
|
676
|
+
}
|
|
677
|
+
wordPos++;
|
|
678
|
+
prevType = type;
|
|
679
|
+
}
|
|
680
|
+
return result;
|
|
681
|
+
}
|
|
682
|
+
|
|
608
683
|
/*
|
|
609
684
|
* Parses the parameter list of a function string, including ES6 class constructors.
|
|
610
685
|
*
|
|
@@ -965,10 +1040,16 @@ function wrapWithLocals(container, locals) {
|
|
|
965
1040
|
*/
|
|
966
1041
|
function createInjectorProxy(container, injector) {
|
|
967
1042
|
const locals = injector(container);
|
|
968
|
-
const
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
1043
|
+
const keySet = new Set(Object.keys(container.registrations));
|
|
1044
|
+
for (const s of Object.getOwnPropertySymbols(container.registrations)) {
|
|
1045
|
+
keySet.add(s);
|
|
1046
|
+
}
|
|
1047
|
+
for (const k of Object.keys(locals)) {
|
|
1048
|
+
keySet.add(k);
|
|
1049
|
+
}
|
|
1050
|
+
for (const s of Object.getOwnPropertySymbols(locals)) {
|
|
1051
|
+
keySet.add(s);
|
|
1052
|
+
}
|
|
972
1053
|
// TODO: Lots of duplication here from the container proxy.
|
|
973
1054
|
// Need to refactor.
|
|
974
1055
|
const proxy = new Proxy({}, {
|
|
@@ -995,13 +1076,13 @@ function createInjectorProxy(container, injector) {
|
|
|
995
1076
|
* Used for `Object.keys`.
|
|
996
1077
|
*/
|
|
997
1078
|
ownKeys() {
|
|
998
|
-
return
|
|
1079
|
+
return [...keySet];
|
|
999
1080
|
},
|
|
1000
1081
|
/**
|
|
1001
1082
|
* Used for `Object.keys`.
|
|
1002
1083
|
*/
|
|
1003
|
-
getOwnPropertyDescriptor(
|
|
1004
|
-
if (
|
|
1084
|
+
getOwnPropertyDescriptor(_target, key) {
|
|
1085
|
+
if (keySet.has(key)) {
|
|
1005
1086
|
return {
|
|
1006
1087
|
enumerable: true,
|
|
1007
1088
|
configurable: true,
|
|
@@ -1494,8 +1575,11 @@ function createContainerInternal(options, parentContainer, parentResolutionStack
|
|
|
1494
1575
|
try {
|
|
1495
1576
|
// Grab the registration by name.
|
|
1496
1577
|
const resolver = getRegistration(name);
|
|
1497
|
-
|
|
1498
|
-
|
|
1578
|
+
// Cycle detection: scan the resolution stack.
|
|
1579
|
+
for (let i = 0; i < resolutionStack.length; i++) {
|
|
1580
|
+
if (resolutionStack[i].name === name) {
|
|
1581
|
+
throw new AwilixResolutionError(name, resolutionStack, 'Cyclic dependencies detected.');
|
|
1582
|
+
}
|
|
1499
1583
|
}
|
|
1500
1584
|
// Used in JSON.stringify.
|
|
1501
1585
|
if (name === 'toJSON') {
|
|
@@ -1531,57 +1615,54 @@ function createContainerInternal(options, parentContainer, parentResolutionStack
|
|
|
1531
1615
|
throw new AwilixResolutionError(name, resolutionStack);
|
|
1532
1616
|
}
|
|
1533
1617
|
const lifetime = resolver.lifetime || Lifetime.TRANSIENT;
|
|
1534
|
-
// if
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1618
|
+
// Throws if a shorter-lived dependency is resolved through a longer-lived ancestor.
|
|
1619
|
+
function throwIfLifetimeLeakage(depName, depLifetime, dep) {
|
|
1620
|
+
if (!options.strict || dep.isLeakSafe)
|
|
1621
|
+
return;
|
|
1622
|
+
for (let i = 0; i < resolutionStack.length; i++) {
|
|
1623
|
+
if (isLifetimeLonger(resolutionStack[i].lifetime, depLifetime)) {
|
|
1624
|
+
throw new AwilixResolutionError(depName, resolutionStack, `Dependency '${depName.toString()}' has a shorter lifetime than its ancestor: '${resolutionStack[i].name.toString()}'`);
|
|
1625
|
+
}
|
|
1626
|
+
}
|
|
1627
|
+
}
|
|
1628
|
+
// Fast path: cached singletons can always be returned immediately
|
|
1629
|
+
// since nothing has a longer lifetime.
|
|
1630
|
+
if (lifetime === Lifetime.SINGLETON) {
|
|
1631
|
+
const cached = rootContainer.cache.get(name);
|
|
1632
|
+
if (cached) {
|
|
1633
|
+
return cached.value;
|
|
1634
|
+
}
|
|
1635
|
+
}
|
|
1636
|
+
// Fast path: cached scoped values can be returned immediately,
|
|
1637
|
+
// but in strict mode we still need to verify lifetime constraints.
|
|
1638
|
+
if (lifetime === Lifetime.SCOPED) {
|
|
1639
|
+
const cached = container.cache.get(name);
|
|
1640
|
+
if (cached !== undefined) {
|
|
1641
|
+
throwIfLifetimeLeakage(name, lifetime, resolver);
|
|
1642
|
+
return cached.value;
|
|
1540
1643
|
}
|
|
1541
1644
|
}
|
|
1542
|
-
//
|
|
1645
|
+
// Slow path: need to invoke the factory.
|
|
1646
|
+
throwIfLifetimeLeakage(name, lifetime, resolver);
|
|
1543
1647
|
resolutionStack.push({ name, lifetime });
|
|
1544
|
-
// Do the thing
|
|
1545
|
-
let cached;
|
|
1546
1648
|
let resolved;
|
|
1547
1649
|
switch (lifetime) {
|
|
1548
1650
|
case Lifetime.TRANSIENT:
|
|
1549
|
-
// Transient lifetime means resolve every time.
|
|
1550
1651
|
resolved = resolver.resolve(container);
|
|
1551
1652
|
break;
|
|
1552
1653
|
case Lifetime.SINGLETON:
|
|
1553
|
-
//
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
// if we are running in strict mode, perform singleton resolution using the root
|
|
1557
|
-
// container only.
|
|
1558
|
-
resolved = resolver.resolve(options.strict ? rootContainer : container);
|
|
1559
|
-
rootContainer.cache.set(name, { resolver, value: resolved });
|
|
1560
|
-
}
|
|
1561
|
-
else {
|
|
1562
|
-
resolved = cached.value;
|
|
1563
|
-
}
|
|
1654
|
+
// Cache was already checked above, so this is always a miss.
|
|
1655
|
+
resolved = resolver.resolve(options.strict ? rootContainer : container);
|
|
1656
|
+
rootContainer.cache.set(name, { resolver, value: resolved });
|
|
1564
1657
|
break;
|
|
1565
1658
|
case Lifetime.SCOPED:
|
|
1566
|
-
//
|
|
1567
|
-
// that resolves the registration also caches it.
|
|
1568
|
-
// If this container cache does not have it,
|
|
1569
|
-
// resolve and cache it rather than using the parent
|
|
1570
|
-
// container's cache.
|
|
1571
|
-
cached = container.cache.get(name);
|
|
1572
|
-
if (cached !== undefined) {
|
|
1573
|
-
// We found one!
|
|
1574
|
-
resolved = cached.value;
|
|
1575
|
-
break;
|
|
1576
|
-
}
|
|
1577
|
-
// If we still have not found one, we need to resolve and cache it.
|
|
1659
|
+
// Cache was already checked above, so this is always a miss.
|
|
1578
1660
|
resolved = resolver.resolve(container);
|
|
1579
1661
|
container.cache.set(name, { resolver, value: resolved });
|
|
1580
1662
|
break;
|
|
1581
1663
|
default:
|
|
1582
1664
|
throw new AwilixResolutionError(name, resolutionStack, `Unknown lifetime "${resolver.lifetime}"`);
|
|
1583
1665
|
}
|
|
1584
|
-
// Pop it from the stack again, ready for the next resolution
|
|
1585
1666
|
resolutionStack.pop();
|
|
1586
1667
|
return resolved;
|
|
1587
1668
|
}
|
package/lib/awilix.umd.js
CHANGED
|
@@ -517,18 +517,6 @@
|
|
|
517
517
|
function isFunction(val) {
|
|
518
518
|
return typeof val === 'function';
|
|
519
519
|
}
|
|
520
|
-
/**
|
|
521
|
-
* Returns the unique items in the array.
|
|
522
|
-
*
|
|
523
|
-
* @param {Array<T>}
|
|
524
|
-
* The array to remove dupes from.
|
|
525
|
-
*
|
|
526
|
-
* @return {Array<T>}
|
|
527
|
-
* The deduped array.
|
|
528
|
-
*/
|
|
529
|
-
function uniq(arr) {
|
|
530
|
-
return Array.from(new Set(arr));
|
|
531
|
-
}
|
|
532
520
|
|
|
533
521
|
/*
|
|
534
522
|
* Parses the parameter list of a function string, including ES6 class constructors.
|
|
@@ -890,10 +878,16 @@
|
|
|
890
878
|
*/
|
|
891
879
|
function createInjectorProxy(container, injector) {
|
|
892
880
|
const locals = injector(container);
|
|
893
|
-
const
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
881
|
+
const keySet = new Set(Object.keys(container.registrations));
|
|
882
|
+
for (const s of Object.getOwnPropertySymbols(container.registrations)) {
|
|
883
|
+
keySet.add(s);
|
|
884
|
+
}
|
|
885
|
+
for (const k of Object.keys(locals)) {
|
|
886
|
+
keySet.add(k);
|
|
887
|
+
}
|
|
888
|
+
for (const s of Object.getOwnPropertySymbols(locals)) {
|
|
889
|
+
keySet.add(s);
|
|
890
|
+
}
|
|
897
891
|
// TODO: Lots of duplication here from the container proxy.
|
|
898
892
|
// Need to refactor.
|
|
899
893
|
const proxy = new Proxy({}, {
|
|
@@ -920,13 +914,13 @@
|
|
|
920
914
|
* Used for `Object.keys`.
|
|
921
915
|
*/
|
|
922
916
|
ownKeys() {
|
|
923
|
-
return
|
|
917
|
+
return [...keySet];
|
|
924
918
|
},
|
|
925
919
|
/**
|
|
926
920
|
* Used for `Object.keys`.
|
|
927
921
|
*/
|
|
928
|
-
getOwnPropertyDescriptor(
|
|
929
|
-
if (
|
|
922
|
+
getOwnPropertyDescriptor(_target, key) {
|
|
923
|
+
if (keySet.has(key)) {
|
|
930
924
|
return {
|
|
931
925
|
enumerable: true,
|
|
932
926
|
configurable: true,
|
|
@@ -1233,8 +1227,11 @@
|
|
|
1233
1227
|
try {
|
|
1234
1228
|
// Grab the registration by name.
|
|
1235
1229
|
const resolver = getRegistration(name);
|
|
1236
|
-
|
|
1237
|
-
|
|
1230
|
+
// Cycle detection: scan the resolution stack.
|
|
1231
|
+
for (let i = 0; i < resolutionStack.length; i++) {
|
|
1232
|
+
if (resolutionStack[i].name === name) {
|
|
1233
|
+
throw new AwilixResolutionError(name, resolutionStack, 'Cyclic dependencies detected.');
|
|
1234
|
+
}
|
|
1238
1235
|
}
|
|
1239
1236
|
// Used in JSON.stringify.
|
|
1240
1237
|
if (name === 'toJSON') {
|
|
@@ -1269,57 +1266,54 @@
|
|
|
1269
1266
|
throw new AwilixResolutionError(name, resolutionStack);
|
|
1270
1267
|
}
|
|
1271
1268
|
const lifetime = resolver.lifetime || Lifetime.TRANSIENT;
|
|
1272
|
-
// if
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1269
|
+
// Throws if a shorter-lived dependency is resolved through a longer-lived ancestor.
|
|
1270
|
+
function throwIfLifetimeLeakage(depName, depLifetime, dep) {
|
|
1271
|
+
if (!options.strict || dep.isLeakSafe)
|
|
1272
|
+
return;
|
|
1273
|
+
for (let i = 0; i < resolutionStack.length; i++) {
|
|
1274
|
+
if (isLifetimeLonger(resolutionStack[i].lifetime, depLifetime)) {
|
|
1275
|
+
throw new AwilixResolutionError(depName, resolutionStack, `Dependency '${depName.toString()}' has a shorter lifetime than its ancestor: '${resolutionStack[i].name.toString()}'`);
|
|
1276
|
+
}
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1279
|
+
// Fast path: cached singletons can always be returned immediately
|
|
1280
|
+
// since nothing has a longer lifetime.
|
|
1281
|
+
if (lifetime === Lifetime.SINGLETON) {
|
|
1282
|
+
const cached = rootContainer.cache.get(name);
|
|
1283
|
+
if (cached) {
|
|
1284
|
+
return cached.value;
|
|
1285
|
+
}
|
|
1286
|
+
}
|
|
1287
|
+
// Fast path: cached scoped values can be returned immediately,
|
|
1288
|
+
// but in strict mode we still need to verify lifetime constraints.
|
|
1289
|
+
if (lifetime === Lifetime.SCOPED) {
|
|
1290
|
+
const cached = container.cache.get(name);
|
|
1291
|
+
if (cached !== undefined) {
|
|
1292
|
+
throwIfLifetimeLeakage(name, lifetime, resolver);
|
|
1293
|
+
return cached.value;
|
|
1278
1294
|
}
|
|
1279
1295
|
}
|
|
1280
|
-
//
|
|
1296
|
+
// Slow path: need to invoke the factory.
|
|
1297
|
+
throwIfLifetimeLeakage(name, lifetime, resolver);
|
|
1281
1298
|
resolutionStack.push({ name, lifetime });
|
|
1282
|
-
// Do the thing
|
|
1283
|
-
let cached;
|
|
1284
1299
|
let resolved;
|
|
1285
1300
|
switch (lifetime) {
|
|
1286
1301
|
case Lifetime.TRANSIENT:
|
|
1287
|
-
// Transient lifetime means resolve every time.
|
|
1288
1302
|
resolved = resolver.resolve(container);
|
|
1289
1303
|
break;
|
|
1290
1304
|
case Lifetime.SINGLETON:
|
|
1291
|
-
//
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
// if we are running in strict mode, perform singleton resolution using the root
|
|
1295
|
-
// container only.
|
|
1296
|
-
resolved = resolver.resolve(options.strict ? rootContainer : container);
|
|
1297
|
-
rootContainer.cache.set(name, { resolver, value: resolved });
|
|
1298
|
-
}
|
|
1299
|
-
else {
|
|
1300
|
-
resolved = cached.value;
|
|
1301
|
-
}
|
|
1305
|
+
// Cache was already checked above, so this is always a miss.
|
|
1306
|
+
resolved = resolver.resolve(options.strict ? rootContainer : container);
|
|
1307
|
+
rootContainer.cache.set(name, { resolver, value: resolved });
|
|
1302
1308
|
break;
|
|
1303
1309
|
case Lifetime.SCOPED:
|
|
1304
|
-
//
|
|
1305
|
-
// that resolves the registration also caches it.
|
|
1306
|
-
// If this container cache does not have it,
|
|
1307
|
-
// resolve and cache it rather than using the parent
|
|
1308
|
-
// container's cache.
|
|
1309
|
-
cached = container.cache.get(name);
|
|
1310
|
-
if (cached !== undefined) {
|
|
1311
|
-
// We found one!
|
|
1312
|
-
resolved = cached.value;
|
|
1313
|
-
break;
|
|
1314
|
-
}
|
|
1315
|
-
// If we still have not found one, we need to resolve and cache it.
|
|
1310
|
+
// Cache was already checked above, so this is always a miss.
|
|
1316
1311
|
resolved = resolver.resolve(container);
|
|
1317
1312
|
container.cache.set(name, { resolver, value: resolved });
|
|
1318
1313
|
break;
|
|
1319
1314
|
default:
|
|
1320
1315
|
throw new AwilixResolutionError(name, resolutionStack, `Unknown lifetime "${resolver.lifetime}"`);
|
|
1321
1316
|
}
|
|
1322
|
-
// Pop it from the stack again, ready for the next resolution
|
|
1323
1317
|
resolutionStack.pop();
|
|
1324
1318
|
return resolved;
|
|
1325
1319
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hyperoptimized camelCase conversion.
|
|
3
|
+
*
|
|
4
|
+
* Single-pass, zero-regex, zero-allocation (beyond the result string).
|
|
5
|
+
* Splits on non-alphanumeric separators and case transitions:
|
|
6
|
+
* - lowercase/digit followed by uppercase (e.g. fooBar → foo|Bar)
|
|
7
|
+
* - uppercase followed by uppercase+lower (e.g. HTMLParser → HTML|Parser)
|
|
8
|
+
*
|
|
9
|
+
* First word is lowercased; subsequent words are capitalized (first char
|
|
10
|
+
* uppercased, rest lowercased). A subsequent word that starts with a digit
|
|
11
|
+
* is prefixed with '_'.
|
|
12
|
+
*/
|
|
13
|
+
export declare function camelCase(input: string): string;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.camelCase = camelCase;
|
|
4
|
+
/**
|
|
5
|
+
* Hyperoptimized camelCase conversion.
|
|
6
|
+
*
|
|
7
|
+
* Single-pass, zero-regex, zero-allocation (beyond the result string).
|
|
8
|
+
* Splits on non-alphanumeric separators and case transitions:
|
|
9
|
+
* - lowercase/digit followed by uppercase (e.g. fooBar → foo|Bar)
|
|
10
|
+
* - uppercase followed by uppercase+lower (e.g. HTMLParser → HTML|Parser)
|
|
11
|
+
*
|
|
12
|
+
* First word is lowercased; subsequent words are capitalized (first char
|
|
13
|
+
* uppercased, rest lowercased). A subsequent word that starts with a digit
|
|
14
|
+
* is prefixed with '_'.
|
|
15
|
+
*/
|
|
16
|
+
function camelCase(input) {
|
|
17
|
+
const len = input.length;
|
|
18
|
+
if (len === 0) {
|
|
19
|
+
return '';
|
|
20
|
+
}
|
|
21
|
+
let result = '';
|
|
22
|
+
let wordIdx = 0;
|
|
23
|
+
let wordPos = 0;
|
|
24
|
+
let inWord = false;
|
|
25
|
+
// Character type of the previous character:
|
|
26
|
+
// 0 = separator / start, 1 = uppercase, 2 = lowercase, 3 = digit
|
|
27
|
+
let prevType = 0;
|
|
28
|
+
for (let i = 0; i < len; i++) {
|
|
29
|
+
const c = input.charCodeAt(i);
|
|
30
|
+
// Classify – check lowercase first (most frequent in identifiers).
|
|
31
|
+
const type = c >= 97 && c <= 122
|
|
32
|
+
? 2
|
|
33
|
+
: c >= 65 && c <= 90
|
|
34
|
+
? 1
|
|
35
|
+
: c >= 48 && c <= 57
|
|
36
|
+
? 3
|
|
37
|
+
: 0;
|
|
38
|
+
if (type === 0) {
|
|
39
|
+
// Non-alphanumeric separator – end the current word.
|
|
40
|
+
if (inWord) {
|
|
41
|
+
wordIdx++;
|
|
42
|
+
inWord = false;
|
|
43
|
+
}
|
|
44
|
+
prevType = 0;
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
if (!inWord) {
|
|
48
|
+
// First alphanumeric char after separator(s) or string start.
|
|
49
|
+
inWord = true;
|
|
50
|
+
wordPos = 0;
|
|
51
|
+
}
|
|
52
|
+
else if (type === 1) {
|
|
53
|
+
// Uppercase while already inside a word – detect word boundary.
|
|
54
|
+
if (prevType >= 2 || // preceded by lowercase (2) or digit (3)
|
|
55
|
+
(prevType === 1 && // preceded by uppercase …
|
|
56
|
+
i + 1 < len &&
|
|
57
|
+
input.charCodeAt(i + 1) >= 97 &&
|
|
58
|
+
input.charCodeAt(i + 1) <= 122) // … and followed by lowercase
|
|
59
|
+
) {
|
|
60
|
+
wordIdx++;
|
|
61
|
+
wordPos = 0;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
// Emit the character with the correct casing.
|
|
65
|
+
if (wordIdx === 0) {
|
|
66
|
+
// First word – everything lowercase.
|
|
67
|
+
// c | 0x20 sets bit-5, converting A-Z → a-z (no-op for a-z / 0-9).
|
|
68
|
+
result += type === 1 ? String.fromCharCode(c | 0x20) : input[i];
|
|
69
|
+
}
|
|
70
|
+
else if (wordPos === 0) {
|
|
71
|
+
// First char of a subsequent word.
|
|
72
|
+
if (type === 3) {
|
|
73
|
+
// Digit-leading word: prefix with '_'.
|
|
74
|
+
result += '_';
|
|
75
|
+
result += input[i];
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// c & 0x5f clears bit-5, converting a-z → A-Z (no-op for A-Z).
|
|
79
|
+
result += type === 2 ? String.fromCharCode(c & 0x5f) : input[i];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
// Remaining chars of a subsequent word – lowercase.
|
|
84
|
+
result += type === 1 ? String.fromCharCode(c | 0x20) : input[i];
|
|
85
|
+
}
|
|
86
|
+
wordPos++;
|
|
87
|
+
prevType = type;
|
|
88
|
+
}
|
|
89
|
+
return result;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=camel-case.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camel-case.js","sourceRoot":"","sources":["../src/camel-case.ts"],"names":[],"mappings":"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"}
|
package/lib/container.js
CHANGED
|
@@ -265,8 +265,11 @@ function createContainerInternal(options, parentContainer, parentResolutionStack
|
|
|
265
265
|
try {
|
|
266
266
|
// Grab the registration by name.
|
|
267
267
|
const resolver = getRegistration(name);
|
|
268
|
-
|
|
269
|
-
|
|
268
|
+
// Cycle detection: scan the resolution stack.
|
|
269
|
+
for (let i = 0; i < resolutionStack.length; i++) {
|
|
270
|
+
if (resolutionStack[i].name === name) {
|
|
271
|
+
throw new errors_1.AwilixResolutionError(name, resolutionStack, 'Cyclic dependencies detected.');
|
|
272
|
+
}
|
|
270
273
|
}
|
|
271
274
|
// Used in JSON.stringify.
|
|
272
275
|
if (name === 'toJSON') {
|
|
@@ -302,57 +305,54 @@ function createContainerInternal(options, parentContainer, parentResolutionStack
|
|
|
302
305
|
throw new errors_1.AwilixResolutionError(name, resolutionStack);
|
|
303
306
|
}
|
|
304
307
|
const lifetime = resolver.lifetime || lifetime_1.Lifetime.TRANSIENT;
|
|
305
|
-
// if
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
308
|
+
// Throws if a shorter-lived dependency is resolved through a longer-lived ancestor.
|
|
309
|
+
function throwIfLifetimeLeakage(depName, depLifetime, dep) {
|
|
310
|
+
if (!options.strict || dep.isLeakSafe)
|
|
311
|
+
return;
|
|
312
|
+
for (let i = 0; i < resolutionStack.length; i++) {
|
|
313
|
+
if ((0, lifetime_1.isLifetimeLonger)(resolutionStack[i].lifetime, depLifetime)) {
|
|
314
|
+
throw new errors_1.AwilixResolutionError(depName, resolutionStack, `Dependency '${depName.toString()}' has a shorter lifetime than its ancestor: '${resolutionStack[i].name.toString()}'`);
|
|
315
|
+
}
|
|
311
316
|
}
|
|
312
317
|
}
|
|
313
|
-
//
|
|
318
|
+
// Fast path: cached singletons can always be returned immediately
|
|
319
|
+
// since nothing has a longer lifetime.
|
|
320
|
+
if (lifetime === lifetime_1.Lifetime.SINGLETON) {
|
|
321
|
+
const cached = rootContainer.cache.get(name);
|
|
322
|
+
if (cached) {
|
|
323
|
+
return cached.value;
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
// Fast path: cached scoped values can be returned immediately,
|
|
327
|
+
// but in strict mode we still need to verify lifetime constraints.
|
|
328
|
+
if (lifetime === lifetime_1.Lifetime.SCOPED) {
|
|
329
|
+
const cached = container.cache.get(name);
|
|
330
|
+
if (cached !== undefined) {
|
|
331
|
+
throwIfLifetimeLeakage(name, lifetime, resolver);
|
|
332
|
+
return cached.value;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
// Slow path: need to invoke the factory.
|
|
336
|
+
throwIfLifetimeLeakage(name, lifetime, resolver);
|
|
314
337
|
resolutionStack.push({ name, lifetime });
|
|
315
|
-
// Do the thing
|
|
316
|
-
let cached;
|
|
317
338
|
let resolved;
|
|
318
339
|
switch (lifetime) {
|
|
319
340
|
case lifetime_1.Lifetime.TRANSIENT:
|
|
320
|
-
// Transient lifetime means resolve every time.
|
|
321
341
|
resolved = resolver.resolve(container);
|
|
322
342
|
break;
|
|
323
343
|
case lifetime_1.Lifetime.SINGLETON:
|
|
324
|
-
//
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
// if we are running in strict mode, perform singleton resolution using the root
|
|
328
|
-
// container only.
|
|
329
|
-
resolved = resolver.resolve(options.strict ? rootContainer : container);
|
|
330
|
-
rootContainer.cache.set(name, { resolver, value: resolved });
|
|
331
|
-
}
|
|
332
|
-
else {
|
|
333
|
-
resolved = cached.value;
|
|
334
|
-
}
|
|
344
|
+
// Cache was already checked above, so this is always a miss.
|
|
345
|
+
resolved = resolver.resolve(options.strict ? rootContainer : container);
|
|
346
|
+
rootContainer.cache.set(name, { resolver, value: resolved });
|
|
335
347
|
break;
|
|
336
348
|
case lifetime_1.Lifetime.SCOPED:
|
|
337
|
-
//
|
|
338
|
-
// that resolves the registration also caches it.
|
|
339
|
-
// If this container cache does not have it,
|
|
340
|
-
// resolve and cache it rather than using the parent
|
|
341
|
-
// container's cache.
|
|
342
|
-
cached = container.cache.get(name);
|
|
343
|
-
if (cached !== undefined) {
|
|
344
|
-
// We found one!
|
|
345
|
-
resolved = cached.value;
|
|
346
|
-
break;
|
|
347
|
-
}
|
|
348
|
-
// If we still have not found one, we need to resolve and cache it.
|
|
349
|
+
// Cache was already checked above, so this is always a miss.
|
|
349
350
|
resolved = resolver.resolve(container);
|
|
350
351
|
container.cache.set(name, { resolver, value: resolved });
|
|
351
352
|
break;
|
|
352
353
|
default:
|
|
353
354
|
throw new errors_1.AwilixResolutionError(name, resolutionStack, `Unknown lifetime "${resolver.lifetime}"`);
|
|
354
355
|
}
|
|
355
|
-
// Pop it from the stack again, ready for the next resolution
|
|
356
356
|
resolutionStack.pop();
|
|
357
357
|
return resolved;
|
|
358
358
|
}
|
package/lib/container.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
|
package/lib/load-modules.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.loadModules = loadModules;
|
|
4
|
-
const camel_case_1 = require("camel-case");
|
|
4
|
+
const camel_case_1 = require("./camel-case");
|
|
5
5
|
const url_1 = require("url");
|
|
6
6
|
const lifetime_1 = require("./lifetime");
|
|
7
7
|
const resolvers_1 = require("./resolvers");
|
package/lib/load-modules.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load-modules.js","sourceRoot":"","sources":["../src/load-modules.ts"],"names":[],"mappings":";;AA0GA,kCAmBC;AA7HD,
|
|
1
|
+
{"version":3,"file":"load-modules.js","sourceRoot":"","sources":["../src/load-modules.ts"],"names":[],"mappings":"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"}
|
package/lib/resolvers.js
CHANGED
|
@@ -229,10 +229,16 @@ function wrapWithLocals(container, locals) {
|
|
|
229
229
|
*/
|
|
230
230
|
function createInjectorProxy(container, injector) {
|
|
231
231
|
const locals = injector(container);
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
232
|
+
const keySet = new Set(Object.keys(container.registrations));
|
|
233
|
+
for (const s of Object.getOwnPropertySymbols(container.registrations)) {
|
|
234
|
+
keySet.add(s);
|
|
235
|
+
}
|
|
236
|
+
for (const k of Object.keys(locals)) {
|
|
237
|
+
keySet.add(k);
|
|
238
|
+
}
|
|
239
|
+
for (const s of Object.getOwnPropertySymbols(locals)) {
|
|
240
|
+
keySet.add(s);
|
|
241
|
+
}
|
|
236
242
|
// TODO: Lots of duplication here from the container proxy.
|
|
237
243
|
// Need to refactor.
|
|
238
244
|
const proxy = new Proxy({}, {
|
|
@@ -259,13 +265,13 @@ function createInjectorProxy(container, injector) {
|
|
|
259
265
|
* Used for `Object.keys`.
|
|
260
266
|
*/
|
|
261
267
|
ownKeys() {
|
|
262
|
-
return
|
|
268
|
+
return [...keySet];
|
|
263
269
|
},
|
|
264
270
|
/**
|
|
265
271
|
* Used for `Object.keys`.
|
|
266
272
|
*/
|
|
267
|
-
getOwnPropertyDescriptor(
|
|
268
|
-
if (
|
|
273
|
+
getOwnPropertyDescriptor(_target, key) {
|
|
274
|
+
if (keySet.has(key)) {
|
|
269
275
|
return {
|
|
270
276
|
enumerable: true,
|
|
271
277
|
configurable: true,
|
package/lib/resolvers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../src/resolvers.ts"],"names":[],"mappings":";;;AAoIA,0BAKC;AAkBD,gCAqBC;AAiBD,0BA0BC;AAMD,0BASC;AAYD,kDAkCC;AAOD,4DAaC;AA3SD,qCAA0C;AAC1C,qDAAmE;AACnE,yCAAmD;AACnD,iDAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../src/resolvers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "awilix",
|
|
3
|
-
"version": "12.
|
|
3
|
+
"version": "12.1.1",
|
|
4
4
|
"description": "Extremely powerful dependency injection container.",
|
|
5
5
|
"main": "lib/awilix.js",
|
|
6
6
|
"module": "lib/awilix.module.mjs",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"check": "tsc -p tsconfig.json --noEmit --pretty",
|
|
45
45
|
"test": "npm run check && jest",
|
|
46
46
|
"lint": "npm run check && eslint --fix \"{src,examples}/**/*.ts\" && prettier --write \"{src,examples}/**/*.{ts,js}\"",
|
|
47
|
+
"bench": "npx tsx benchmarks/run-all.ts",
|
|
47
48
|
"cover": "npm run test -- --coverage",
|
|
48
49
|
"publish:pre": "npm run lint && npm run build && npm run cover",
|
|
49
50
|
"publish:post": "npm publish && git push --follow-tags",
|
|
@@ -95,13 +96,13 @@
|
|
|
95
96
|
"rollup-plugin-copy": "^3.5.0",
|
|
96
97
|
"rollup-plugin-typescript2": "^0.36.0",
|
|
97
98
|
"smid": "^0.1.1",
|
|
99
|
+
"tinybench": "^6.0.0",
|
|
98
100
|
"ts-jest": "^29.2.6",
|
|
99
101
|
"tslib": "^2.8.1",
|
|
100
102
|
"typescript": "^5.8.2",
|
|
101
103
|
"typescript-eslint": "^8.26.1"
|
|
102
104
|
},
|
|
103
105
|
"dependencies": {
|
|
104
|
-
"camel-case": "^4.1.2",
|
|
105
106
|
"fast-glob": "^3.3.3"
|
|
106
107
|
},
|
|
107
108
|
"lint-staged": {
|