I'm writing some code that I want to apply only to the token from
import * as name from 'module-name'
__ESModule
import * as someModule from 'module-name'
import someDefault from 'module-name'
import { someNamed } from 'module-name'
import otherImport = require('cjs-module')
let somethingElse = {} // anything
checkIsStarModule(someModule) // true
checkIsStarModule(someDefault) // false
checkIsStarModule(someNamed) // false
checkIsStarModule(otherImport) // false
checkIsStarModule(somethingElse) // false
import * as name ...
aurelia
FrameworkConfiguration
someModule
configure()
get(key: Newable<T> | T): Promise<T>
key
Newable<T>
__esModule
There is nothing that really distinguishes module namespace objects from others, anyone could create an object like that. You can test for
function isModuleNamespaceLike(o) {
return o === Object(o)
&& o[Symbol.toStringTag] === "Module"
&& Object.getPrototypeOf(o) === null
&& !Object.isExtensible(o)
&& Object.getOwnPropertyNames(o).every(function(p) {
var d = Object.getOwnPropertyDescriptor(o, p);
return d.enumerable && !d.configurable;
});
}
or try to look for __esModule
, but that depends on your transpiler.