UNPKG

piral-cli

Version:

The standard CLI for creating and building a Piral instance or a Pilet.

40 lines (34 loc) 1.11 kB
import { PiletRuleContext } from '../types'; import { getSourceFiles } from '../common'; export type Options = 'ignore' | 'active'; /** * Checks if the used Piral instance is not referenced in the code. */ export default async function (context: PiletRuleContext, options: Options = 'ignore') { if (options !== 'ignore') { const { name } = context.apps[0].appPackage; const names = ['piral', 'piral-core', 'piral-base', name]; const files = await getSourceFiles(context.entry); const testers: Array<RegExp> = []; for (const packageName of names) { testers.push( new RegExp(`(import\\s+.*\\s+from\\s+["'\`]${packageName}["'\`]|require\\(["'\`]${packageName}["'\`]\\));`), ); } for (const file of files) { const fileContent = await file.read(); for (const tester of testers) { if (tester.test(fileContent)) { context.error( ` The Piral instance is referenced in "${file.path}". Expected: No import of "${name}" or Piral itself. Received: Import seen. `, ); break; } } } } }