30 lines
1.2 KiB
JavaScript
30 lines
1.2 KiB
JavaScript
|
|
import { Stub } from '@efforting.tech/feature/stub';
|
|
/*
|
|
|
|
export function Stub(meta, name, description, module_name, function_name) {
|
|
return function stub() {
|
|
throw new Error(`The feature "${name}" of "${meta.url}" is not enabled. Enable it by calling "${function_name}(${this.name})" imported from "${module_name}"`); //TODO - specific error
|
|
}
|
|
}
|
|
|
|
*/
|
|
|
|
class Thing {
|
|
|
|
static from_stuff = Stub(import.meta, 'stuff-loader', 'Creates Thing from stuff', '@efforting.tech/stuff/loader', 'enable_stuff_loader');
|
|
|
|
}
|
|
|
|
Thing.from_stuff()
|
|
|
|
/*
|
|
|
|
Error: The feature "stuff-loader" of "file:///srv/Projekt/efforting.tech/nodejs.esm-library/experiments/generic-parser-2.mjs" is not enabled. Enable it by calling "enable_stuff_loader(Thing)" imported from "@efforting.tech/stuff/loader"
|
|
at Thing.stub [as from_stuff] (file:///srv/Projekt/efforting.tech/nodejs.esm-library/build/packages/feature/stub.mjs:4:9)
|
|
at file:///srv/Projekt/efforting.tech/nodejs.esm-library/experiments/generic-parser-2.mjs:10:7
|
|
at ModuleJob.run (node:internal/modules/esm/module_job:430:25)
|
|
at async node:internal/modules/esm/loader:639:26
|
|
at async asyncRunEntryPointWithESMLoader (node:internal/modules/run_main:101:5)
|
|
|
|
*/ |