@o-lang/olang 1.0.18 → 1.0.19
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/cli.js +19 -7
- package/package.json +1 -1
package/cli.js
CHANGED
|
@@ -90,27 +90,39 @@ function createResolverChain(resolvers, verbose = false) {
|
|
|
90
90
|
* Load a single resolver — NO fallback to defaultMockResolver
|
|
91
91
|
*/
|
|
92
92
|
function loadSingleResolver(specifier) {
|
|
93
|
-
// ❌ Remove fallback: do NOT return defaultMockResolver
|
|
94
93
|
if (!specifier) {
|
|
95
94
|
throw new Error('Empty resolver specifier provided');
|
|
96
95
|
}
|
|
96
|
+
|
|
97
|
+
let resolver;
|
|
97
98
|
try {
|
|
98
|
-
|
|
99
|
-
if (typeof resolver !== 'function') throw new Error(`Resolver must export a function`);
|
|
100
|
-
console.log(` 📦 Loaded resolver: ${specifier}`);
|
|
101
|
-
return resolver;
|
|
99
|
+
resolver = require(specifier);
|
|
102
100
|
} catch (e1) {
|
|
103
101
|
try {
|
|
104
102
|
const absolutePath = path.resolve(process.cwd(), specifier);
|
|
105
|
-
|
|
103
|
+
resolver = require(absolutePath);
|
|
106
104
|
console.log(` 📁 Loaded resolver: ${absolutePath}`);
|
|
107
|
-
return resolver;
|
|
108
105
|
} catch (e2) {
|
|
109
106
|
throw new Error(
|
|
110
107
|
`Failed to load resolver '${specifier}':\n npm: ${e1.message}\n file: ${e2.message}`
|
|
111
108
|
);
|
|
112
109
|
}
|
|
113
110
|
}
|
|
111
|
+
|
|
112
|
+
if (typeof resolver !== 'function') {
|
|
113
|
+
throw new Error(`Resolver must export a function`);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// ✅ Enforce that resolvers self-identify
|
|
117
|
+
if (!resolver.resolverName || typeof resolver.resolverName !== 'string') {
|
|
118
|
+
throw new Error(
|
|
119
|
+
`Resolver from '${specifier}' is missing a valid .resolverName property.\n` +
|
|
120
|
+
`All O-Lang resolvers must export: \`module.exports.resolverName = "MyResolver";\``
|
|
121
|
+
);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
console.log(` 📦 Loaded resolver: ${specifier} (name: ${resolver.resolverName})`);
|
|
125
|
+
return resolver;
|
|
114
126
|
}
|
|
115
127
|
|
|
116
128
|
/**
|
package/package.json
CHANGED