UNPKG

archunit

Version:

ArchUnit TypeScript is an architecture testing library, to specify and assert architecture rules in your TypeScript app

48 lines 2.31 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.determineImportKinds = void 0; const typescript_1 = __importDefault(require("typescript")); const import_kinds_1 = require("./import-kinds"); /** * * * | `ImportKind` | Example | Explanation | * | ------------- | ---------------------------------------------- | -------------------------------------------------------------- | * | `VALUE` | `import { something } from './module';` | A runtime import (default behavior if not `type`). | * | `TYPE` | `import type { SomeType } from './types';` | A compile-time-only import (used for TypeScript types). | * | `DEFAULT` | `import React from 'react';` | A default import—grabs the default export from the module. | * | `NAMED` | `import { useState, useEffect } from 'react';` | Named imports—specific exported bindings. | * | `NAMESPACE` | `import * as React from 'react';` | Namespace import—imports the entire module as an object. | * | `SIDE_EFFECT` | `import './setupGlobals';` | Side-effect-only import—executes the module but binds nothing. | * */ const determineImportKinds = (x) => { const clause = x.importClause; if (!clause) { return []; } const kinds = []; if (clause.isTypeOnly) { kinds.push(import_kinds_1.ImportKind.TYPE); } else { kinds.push(import_kinds_1.ImportKind.VALUE); } if (clause.name) { kinds.push(import_kinds_1.ImportKind.DEFAULT); } if (clause.namedBindings) { if (typescript_1.default.isNamespaceImport(clause.namedBindings)) { kinds.push(import_kinds_1.ImportKind.NAMESPACE); } else if (typescript_1.default.isNamedImports(clause.namedBindings)) { kinds.push(import_kinds_1.ImportKind.NAMED); } } return kinds; }; exports.determineImportKinds = determineImportKinds; //# sourceMappingURL=import-kinds-helper.js.map