UNPKG

@rapido/scripts

Version:

A library of scripts useed to develop Rapido apps.

79 lines (69 loc) 2.27 kB
// @remove-on-eject-begin /** * Copyright (c) 2019-present Verum Technologies * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ // @remove-on-eject-end 'use strict'; const path = require('path'); const fs = require('fs'); // Make sure any symlinks in the project folder are resolved const appDirectory = fs.realpathSync(process.cwd()); const resolveApp = relativePath => path.resolve(appDirectory, relativePath); const moduleFileExtensions = [ 'web.mjs', 'mjs', 'web.js', 'js', 'web.ts', 'ts', 'web.tsx', 'tsx', 'json', 'web.jsx', 'jsx', ]; // Resolve file paths in the same order as webpack const resolveModule = (resolveFn, filePath) => { const extension = moduleFileExtensions.find(extension => fs.existsSync(resolveFn(`${filePath}.${extension}`)) ); if (extension) { return resolveFn(`${filePath}.${extension}`); } return resolveFn(`${filePath}.js`); }; // config after eject: we're in ./config/ module.exports = { dotenv: resolveApp('.env'), appPath: resolveApp('.'), appPackageJson: resolveApp('package.json'), appJson: resolveApp('app.json'), appTsConfig: resolveApp('tsconfig.json'), appJsConfig: resolveApp('jsconfig.json'), yarnLockFile: resolveApp('yarn.lock'), testsSetup: resolveModule(resolveApp, 'setupTests'), appNodeModules: resolveApp('node_modules'), }; // @remove-on-eject-begin const resolveOwn = relativePath => path.resolve(__dirname, '..', relativePath); // config before eject: we're in ./node_modules/@rapido/scripts/config/ module.exports = { dotenv: resolveApp('.env'), appPath: resolveApp('.'), appPackageJson: resolveApp('package.json'), appJson: resolveApp('app.json'), appTsConfig: resolveApp('tsconfig.json'), appJsConfig: resolveApp('jsconfig.json'), yarnLockFile: resolveApp('yarn.lock'), testsSetup: resolveModule(resolveApp, 'setupTests'), appNodeModules: resolveApp('node_modules'), // These properties only exist before ejecting: ownPath: resolveOwn('.'), ownNodeModules: resolveOwn('node_modules'), // This is empty on npm 3 appTypeDeclarations: resolveApp('rapido-env.d.ts'), ownTypeDeclarations: resolveOwn('lib/rapido.d.ts'), }; // @remove-on-eject-end