import-sort-style-capital
Version:
Capital import-sort style
71 lines (67 loc) • 1.97 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
function index (styleApi) {
var and = styleApi.and,
hasMember = styleApi.hasMember,
isAbsoluteModule = styleApi.isAbsoluteModule,
always = styleApi.always,
moduleName = styleApi.moduleName,
name = styleApi.name,
naturally = styleApi.naturally,
not = styleApi.not,
startsWith = styleApi.startsWith,
startsWithUpperCase = styleApi.startsWithUpperCase;
var isReact = moduleName(startsWith('react'));
var moduleStartsWithAt = moduleName(startsWith('@'));
var moduleStartsWithUpperCase = and(moduleName(startsWithUpperCase), not(moduleStartsWithAt));
var isExternalModule = and(isAbsoluteModule, not(moduleStartsWithUpperCase));
var isLocalAbsoluteModule = and(isAbsoluteModule, moduleStartsWithUpperCase);
return [
/* node modules */
{
// React.js comes first
match: and(isExternalModule, isReact),
sort: moduleName(naturally),
sortNamedMembers: name(naturally)
}, {
match: and(isExternalModule, hasMember),
sort: moduleName(naturally),
sortNamedMembers: name(naturally)
}, // ---
{
separator: true
}, // local imports
// import _ from "Foo"
{
match: and(isLocalAbsoluteModule, hasMember),
sort: moduleName(naturally),
sortNamedMembers: name(naturally)
}, // ---
{
separator: true
}, // import _ from "./foo"
{
match: and(hasMember),
sort: moduleName(naturally),
sortNamedMembers: name(naturally)
}, // ---
{
separator: true
}, // imports from node_modules
// import "foo"
{
match: isExternalModule,
sort: moduleName(naturally)
}, // local imports
// import "Foo"
{
match: isLocalAbsoluteModule,
sort: moduleName(naturally)
}, // import "./foo"
{
match: always,
sort: moduleName(naturally)
}];
}
exports.default = index;
//# sourceMappingURL=import-sort-style-capital.cjs.development.js.map