begin converting WakatimeCore

This commit is contained in:
Vu Nguyen
2021-01-16 20:04:53 -06:00
parent d194bcfe60
commit 0c39fbbc79
25 changed files with 1205 additions and 55 deletions

View File

@@ -13,11 +13,16 @@ const graphicsFolder = join(__dirname, 'graphics');
const srcFolder = join(__dirname, 'src');
const htmlFolder = join(srcFolder, 'html');
const manifestFolder = join(srcFolder, 'manifests');
const browserPolyfill = join(
__dirname,
'node_modules/webextension-polyfill/dist/browser-polyfill.min.js',
);
const getConfigByBrowser = (isProd: boolean, browser: BrowserTypes): webpack.Configuration => {
const cfg: webpack.Configuration = {
devtool: isProd ? 'none' : 'inline-source-map',
entry: {
background: [join(srcFolder, 'background.ts')],
devtools: [join(srcFolder, 'devtools.ts')],
options: [join(srcFolder, 'options.tsx')],
popup: [join(srcFolder, 'popup.tsx')],
},
@@ -26,7 +31,7 @@ const getConfigByBrowser = (isProd: boolean, browser: BrowserTypes): webpack.Con
rules: [
{
test: /\.(js|jsx|ts|tsx)$/,
use: 'ts-loader',
use: 'babel-loader',
},
],
},
@@ -44,8 +49,25 @@ const getConfigByBrowser = (isProd: boolean, browser: BrowserTypes): webpack.Con
{ from: htmlFolder },
// TODO: Create a mechanism to have a firefox manifest vs chrome
{ from: join(manifestFolder, `${browser}.json`), to: 'manifest.json' },
{
from: browserPolyfill,
to: 'public/js/browser-polyfill.min.js',
},
],
}),
new webpack.DefinePlugin({
['process.env.CURRENT_USER_API_URL']: JSON.stringify(
'https://wakatime.com/api/v1/users/current',
),
['process.env.HEART_BEAT_API_URL']: JSON.stringify(
'https://wakatime.com/api/v1/users/current/heartbeats',
),
['process.env.LOGOUT_USER_URL']: JSON.stringify('https://wakatime.com/logout'),
['process.env.NODE_ENV']: JSON.stringify(isProd ? 'production' : 'development'),
['process.env.SUMMARIES_API_URL']: JSON.stringify(
'https://wakatime.com/api/v1/users/current/summaries',
),
}),
],
resolve: {
extensions: ['.js', '.jsx', '.ts', '.tsx'],