From 5ab0251340ba530005747627139e5e14138b4e5a Mon Sep 17 00:00:00 2001 From: Stefan van Herwijnen <5968971+stefanvanherwijnen@users.noreply.github.com> Date: Sat, 26 Mar 2022 13:11:07 +0100 Subject: [PATCH] fix(quasar): replace require() by readFileSync() in QuasarResolver (#339) Co-authored-by: Anthony Fu --- src/core/resolvers/quasar.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/core/resolvers/quasar.ts b/src/core/resolvers/quasar.ts index ed4e3c66..336e736a 100644 --- a/src/core/resolvers/quasar.ts +++ b/src/core/resolvers/quasar.ts @@ -1,4 +1,6 @@ +import { promises as fs } from 'fs' +import { resolveModule } from 'local-pkg' import type { ComponentResolver } from '../../types' /** @@ -7,16 +9,15 @@ import type { ComponentResolver } from '../../types' * @link https://github.com/quasarframework/quasar */ export function QuasarResolver(): ComponentResolver { + let components: unknown[] = [] + return { type: 'component', - resolve: (name: string) => { - let components = [] - - try { - /* eslint-disable @typescript-eslint/no-var-requires */ - components = require('quasar/dist/transforms/api-list.json') - } - catch (e) { + resolve: async(name: string) => { + if (!components.length) { + const quasarApiListPath = resolveModule('quasar/dist/transforms/api-list.json') + if (quasarApiListPath) + components = JSON.parse(await fs.readFile(quasarApiListPath, 'utf-8')) } if (components.includes(name))