@strapi/admin 4.2.0-beta.2 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/admin/src/app.js +4 -7
  2. package/admin/src/assets/images/homepage-logo.png +0 -0
  3. package/admin/src/components/AutoReloadOverlayBlockerProvider/Blocker.js +2 -6
  4. package/admin/src/components/ConfigurationsProvider/index.js +51 -0
  5. package/admin/src/components/ConfigurationsProvider/reducer.js +28 -0
  6. package/admin/src/components/GuidedTour/Homepage/index.js +1 -2
  7. package/admin/src/components/GuidedTour/Modal/components/Stepper.js +1 -2
  8. package/admin/src/components/LeftMenu/index.js +19 -7
  9. package/admin/src/components/Notifications/Notification/index.js +2 -2
  10. package/admin/src/components/Providers/index.js +8 -4
  11. package/admin/src/components/UnauthenticatedLogo/index.js +4 -2
  12. package/admin/src/components/UpgradePlanModal/index.js +6 -2
  13. package/admin/src/content-manager/components/DynamicZone/components/ComponentPicker/Category/ComponentCard/index.js +1 -1
  14. package/admin/src/content-manager/components/SelectMany/ListItem.js +1 -2
  15. package/admin/src/content-manager/components/SelectWrapper/index.js +8 -7
  16. package/admin/src/content-manager/components/SelectWrapper/utils/getSelectStyles.js +1 -1
  17. package/admin/src/content-manager/components/SingleTypeFormWrapper/index.js +2 -2
  18. package/admin/src/content-manager/components/Wysiwyg/Editor.js +2 -0
  19. package/admin/src/content-manager/pages/App/LeftMenu/index.js +8 -7
  20. package/admin/src/content-manager/pages/EditSettingsView/components/ComponentFieldList.js +1 -1
  21. package/admin/src/content-manager/pages/EditSettingsView/components/LinkToCTB.js +1 -2
  22. package/admin/src/content-manager/pages/EditSettingsView/index.js +1 -2
  23. package/admin/src/content-manager/pages/EditView/Header/index.js +3 -3
  24. package/admin/src/content-manager/pages/EditView/index.js +1 -4
  25. package/admin/src/content-manager/pages/ListSettingsView/index.js +1 -2
  26. package/admin/src/content-manager/pages/ListView/index.js +1 -1
  27. package/admin/src/content-manager/pages/NoContentType/index.js +1 -2
  28. package/admin/src/hooks/useFetchMarketplaceProviders/index.js +23 -0
  29. package/admin/src/hooks/useFetchMarketplaceProviders/utils/api.js +11 -0
  30. package/admin/src/pages/Admin/index.js +5 -15
  31. package/admin/src/pages/App/index.js +9 -18
  32. package/admin/src/pages/AuthPage/components/ForgotPassword/index.js +1 -2
  33. package/admin/src/pages/AuthPage/components/ForgotPasswordSuccess/index.js +1 -1
  34. package/admin/src/pages/AuthPage/components/Login/BaseLogin.js +1 -2
  35. package/admin/src/pages/AuthPage/components/Oops/index.js +1 -2
  36. package/admin/src/pages/AuthPage/components/Register/index.js +12 -12
  37. package/admin/src/pages/AuthPage/components/ResetPassword/index.js +3 -4
  38. package/admin/src/pages/HomePage/ContentBlocks.js +15 -2
  39. package/admin/src/pages/HomePage/HomeHeader.js +2 -2
  40. package/admin/src/pages/HomePage/SocialLinks.js +4 -3
  41. package/admin/src/pages/InternalErrorPage/index.js +1 -2
  42. package/admin/src/pages/MarketplacePage/components/{EmptyPluginSearch/EmptyPluginGrid.js → EmptyNpmPackageSearch/EmptyNpmPackageGrid.js} +1 -1
  43. package/admin/src/pages/MarketplacePage/components/{EmptyPluginSearch → EmptyNpmPackageSearch}/index.js +6 -4
  44. package/admin/src/pages/MarketplacePage/components/{PluginCard → NpmPackageCard}/InstallPluginButton.js +0 -0
  45. package/admin/src/pages/MarketplacePage/components/{PluginCard → NpmPackageCard}/index.js +26 -13
  46. package/admin/src/pages/MarketplacePage/components/NpmPackagesGrid/index.js +42 -0
  47. package/admin/src/pages/MarketplacePage/components/PageHeader/index.js +14 -6
  48. package/admin/src/pages/MarketplacePage/index.js +99 -37
  49. package/admin/src/pages/NotFoundPage/index.js +1 -2
  50. package/admin/src/pages/SettingsPage/components/SettingsNav/index.js +5 -4
  51. package/admin/src/pages/SettingsPage/pages/ApiTokens/EditView/index.js +1 -1
  52. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/DynamicTable/UpdateButton/index.js +1 -1
  53. package/admin/src/pages/SettingsPage/pages/ApiTokens/ListView/index.js +1 -1
  54. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/index.js +85 -0
  55. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/init.js +13 -0
  56. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/Form/reducer.js +43 -0
  57. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/index.js +118 -0
  58. package/admin/src/pages/{App → SettingsPage/pages/ApplicationInfosPage/components/LogoInput}/reducer.js +13 -7
  59. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoInput/stepper.js +25 -0
  60. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/AddLogoDialog.js +67 -0
  61. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromComputerForm.js +176 -0
  62. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/FromUrlForm.js +82 -0
  63. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/ImageCardAsset.js +51 -0
  64. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/PendingLogoDialog.js +97 -0
  65. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/index.js +85 -0
  66. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/components/LogoModalStepper/reducer.js +28 -0
  67. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/index.js +155 -87
  68. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/api.js +16 -0
  69. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/constants.js +3 -0
  70. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/getFormData.js +17 -0
  71. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/parseFileMetadatas.js +76 -0
  72. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/prefixAllUrls.js +17 -0
  73. package/admin/src/pages/SettingsPage/pages/ApplicationInfosPage/utils/urlToFile.js +21 -0
  74. package/admin/src/pages/SettingsPage/pages/Roles/EditPage/index.js +1 -1
  75. package/admin/src/pages/SettingsPage/pages/Users/EditPage/index.js +1 -1
  76. package/admin/src/pages/SettingsPage/pages/Webhooks/EditView/components/WebhookForm/index.js +1 -2
  77. package/admin/src/pages/SettingsPage/pages/Webhooks/ListView/index.js +1 -1
  78. package/admin/src/reducers.js +2 -4
  79. package/admin/src/translations/en.json +33 -3
  80. package/admin/src/translations/pl.json +264 -12
  81. package/admin/src/translations/vi.json +17 -17
  82. package/build/1856.6a94980b.chunk.js +172 -0
  83. package/build/2077.5456ccd1.chunk.js +194 -0
  84. package/build/2758.9475712b.chunk.js +162 -0
  85. package/build/2912.dd031292.chunk.js +253 -0
  86. package/build/4715.4588fdf5.chunk.js +385 -0
  87. package/build/4800.d3ebc81d.chunk.js +1 -0
  88. package/build/4982.c57c5675.chunk.js +308 -0
  89. package/build/7197.ed8d6752.chunk.js +113 -0
  90. package/build/7589.577cf729.chunk.js +194 -0
  91. package/build/{7393.8ae60738.chunk.js → 7757.f6eb5e92.chunk.js} +89 -87
  92. package/build/7841.9e9cf739.chunk.js +253 -0
  93. package/build/8681.aec05472.chunk.js +163 -0
  94. package/build/9066.2847fdff.chunk.js +101 -0
  95. package/build/9115.abdf4e3b.chunk.js +1 -0
  96. package/build/9158.e48d88af.chunk.js +503 -0
  97. package/build/{7191.3bde3cbf.chunk.js → 9298.cb3b6bc1.chunk.js} +112 -113
  98. package/build/9420.ba035f29.chunk.js +508 -0
  99. package/build/948.d64fb515.chunk.js +2 -0
  100. package/build/Admin-authenticatedApp.e7ed0550.chunk.js +80 -0
  101. package/build/Admin_homePage.8c00145e.chunk.js +71 -0
  102. package/build/Admin_marketplace.a88d5bda.chunk.js +11 -0
  103. package/build/Admin_pluginsPage.e895d79f.chunk.js +1 -0
  104. package/build/{Admin_profilePage.62c203ad.chunk.js → Admin_profilePage.33cfed9b.chunk.js} +2 -2
  105. package/build/Admin_settingsPage.fe33e0a2.chunk.js +180 -0
  106. package/build/admin-edit-roles-page.e77a2acc.chunk.js +1 -0
  107. package/build/admin-edit-users.4c49fe98.chunk.js +11 -0
  108. package/build/admin-users.b89adf82.chunk.js +12 -0
  109. package/build/api-tokens-create-page.618b3e40.chunk.js +1 -0
  110. package/build/api-tokens-edit-page.8d19dfe1.chunk.js +1 -0
  111. package/build/api-tokens-list-page.274e1c80.chunk.js +15 -0
  112. package/build/{codemirror-css.b467b1de.chunk.js → codemirror-css.98490df3.chunk.js} +2 -2
  113. package/build/{codemirror-javacript.41bdefda.chunk.js → codemirror-javacript.cafbda9c.chunk.js} +1 -1
  114. package/build/codemirror-theme.b3c64617.chunk.js +34 -0
  115. package/build/content-manager.04b93497.chunk.js +1204 -0
  116. package/build/content-type-builder.b3139cb1.chunk.js +141 -0
  117. package/build/{cropper-css.ecc0d670.chunk.js → cropper-css.0055cd53.chunk.js} +2 -2
  118. package/build/email-settings-page.4ae595f6.chunk.js +103 -0
  119. package/build/en-json.0a5ba154.chunk.js +1 -0
  120. package/build/fb376b132d18bf4522ca.png +0 -0
  121. package/build/{fontawesome-css-all.04f33619.chunk.js → fontawesome-css-all.b88d464e.chunk.js} +3 -3
  122. package/build/{fontawesome-css.477ba714.chunk.js → fontawesome-css.59dc4459.chunk.js} +2 -2
  123. package/build/highlight.js.9d8ef460.chunk.js +86 -0
  124. package/build/i18n-settings-page.bdac3c7b.chunk.js +101 -0
  125. package/build/index.html +1 -1
  126. package/build/main.3257934a.js +8404 -0
  127. package/build/pl-json.f65302c2.chunk.js +1 -0
  128. package/build/{runtime~main.a32b12c8.js → runtime~main.de49adfd.js} +1 -1
  129. package/build/sso-settings-page.0b4d2106.chunk.js +1 -0
  130. package/build/upload-settings.cadfd452.chunk.js +101 -0
  131. package/build/upload-translation-ca-json.79159984.chunk.js +1 -0
  132. package/build/upload.fbc65439.chunk.js +105 -0
  133. package/build/users-advanced-settings-page.646b6f29.chunk.js +101 -0
  134. package/build/users-email-settings-page.8b561ea3.chunk.js +1 -0
  135. package/build/users-providers-settings-page.82141ace.chunk.js +1 -0
  136. package/build/users-roles-settings-page.28bf6bdc.chunk.js +30 -0
  137. package/build/vi-json.bf3424be.chunk.js +1 -0
  138. package/build/webhook-edit-page.ca670f8d.chunk.js +23 -0
  139. package/build/webhook-list-page.7057f1e8.chunk.js +133 -0
  140. package/ee/admin/pages/AuthPage/components/Providers/index.js +1 -1
  141. package/ee/admin/pages/SettingsPage/pages/Roles/CreatePage/index.js +1 -1
  142. package/ee/server/controllers/user.js +4 -0
  143. package/index.js +239 -53
  144. package/package.json +8 -12
  145. package/scripts/build.js +3 -17
  146. package/server/config/admin-actions.js +14 -0
  147. package/server/controllers/admin.js +29 -12
  148. package/server/controllers/user.js +4 -0
  149. package/server/policies/index.js +0 -1
  150. package/server/routes/admin.js +28 -9
  151. package/server/routes/serve-admin-panel.js +1 -1
  152. package/server/services/index.js +1 -0
  153. package/server/services/permission/permissions-manager/sanitize.js +22 -0
  154. package/server/services/project-settings.js +173 -0
  155. package/server/services/user.js +1 -1
  156. package/server/utils/index.d.ts +2 -0
  157. package/server/validation/project-settings.js +39 -0
  158. package/webpack.config.js +5 -28
  159. package/admin/src/content-manager/components/DynamicComponentCard/index.js +0 -43
  160. package/admin/src/pages/App/constants.js +0 -1
  161. package/admin/src/tsconfig.json +0 -10
  162. package/build/1856.521a99fd.chunk.js +0 -172
  163. package/build/20.cf744c35.chunk.js +0 -308
  164. package/build/2077.51485bfb.chunk.js +0 -194
  165. package/build/2135.95ee6de1.chunk.js +0 -162
  166. package/build/2524.688d0355.chunk.js +0 -1
  167. package/build/2897.8e7d5853.chunk.js +0 -184
  168. package/build/2912.79c2b3c8.chunk.js +0 -253
  169. package/build/2a9e9ef5c4c775bb7c7b.png +0 -0
  170. package/build/4073.f3936352.chunk.js +0 -1
  171. package/build/4715.77e04177.chunk.js +0 -385
  172. package/build/5232.928fea74.chunk.js +0 -989
  173. package/build/6229.26d93336.chunk.js +0 -194
  174. package/build/6281.f10a7e3a.chunk.js +0 -1
  175. package/build/6404.80bf5858.chunk.js +0 -506
  176. package/build/7009.79fce86d.chunk.js +0 -164
  177. package/build/7841.f0e7d629.chunk.js +0 -253
  178. package/build/7863.c1938f3f.chunk.js +0 -112
  179. package/build/9066.118ecccd.chunk.js +0 -101
  180. package/build/Admin-authenticatedApp.1f76af8f.chunk.js +0 -80
  181. package/build/Admin_homePage.8b391120.chunk.js +0 -71
  182. package/build/Admin_marketplace.21730109.chunk.js +0 -11
  183. package/build/Admin_pluginsPage.788fb2f6.chunk.js +0 -1
  184. package/build/Admin_settingsPage.9ce20f16.chunk.js +0 -170
  185. package/build/admin-edit-roles-page.75380ed4.chunk.js +0 -1
  186. package/build/admin-edit-users.05f7f389.chunk.js +0 -10
  187. package/build/admin-users.e03db115.chunk.js +0 -11
  188. package/build/api-tokens-create-page.c44e0c62.chunk.js +0 -1
  189. package/build/api-tokens-edit-page.30d0924d.chunk.js +0 -1
  190. package/build/api-tokens-list-page.6049cd23.chunk.js +0 -15
  191. package/build/codemirror-theme.cf9f9eb6.chunk.js +0 -34
  192. package/build/content-manager.2f0f9b15.chunk.js +0 -1204
  193. package/build/content-type-builder.ce7b7f42.chunk.js +0 -141
  194. package/build/email-settings-page.f67d13b2.chunk.js +0 -103
  195. package/build/en-json.3e1a222e.chunk.js +0 -1
  196. package/build/highlight.js.3381ffc3.chunk.js +0 -86
  197. package/build/i18n-settings-page.6b67cb75.chunk.js +0 -101
  198. package/build/main.e6045245.js +0 -7909
  199. package/build/pl-json.94f05d2c.chunk.js +0 -1
  200. package/build/sso-settings-page.e9034e22.chunk.js +0 -1
  201. package/build/upload-settings.3db55de0.chunk.js +0 -101
  202. package/build/upload.070c189b.chunk.js +0 -105
  203. package/build/users-advanced-settings-page.a23cda17.chunk.js +0 -101
  204. package/build/users-email-settings-page.0a096388.chunk.js +0 -1
  205. package/build/users-providers-settings-page.bfe7755a.chunk.js +0 -1
  206. package/build/users-roles-settings-page.c01bec1d.chunk.js +0 -30
  207. package/build/vi-json.3d14e91e.chunk.js +0 -1
  208. package/build/webhook-edit-page.d457087d.chunk.js +0 -23
  209. package/build/webhook-list-page.a4217ff2.chunk.js +0 -133
  210. package/server/policies/isTelemetryEnabled.js +0 -16
  211. package/utils/create-cache-dir.js +0 -161
  212. package/utils/get-custom-app-config-file.js +0 -23
  213. package/utils/get-custom-webpack-config.js +0 -38
  214. package/utils/get-plugins-path.js +0 -26
  215. package/utils/index.js +0 -13
  216. package/utils/should-build-admin.js +0 -52
  217. package/utils/watch-admin-files.js +0 -59
@@ -1,23 +0,0 @@
1
- 'use strict';
2
-
3
- const { join } = require('path');
4
- const fse = require('fs-extra');
5
- const { isUsingTypeScript } = require('@strapi/typescript-utils');
6
-
7
- /**
8
- * Retrieve the custom admin entry file name
9
- * @param {String} dir - Directory of the admin panel
10
- * @returns String
11
- */
12
- const getCustomAppConfigFile = async dir => {
13
- const adminSrcPath = join(dir, 'src', 'admin');
14
- const useTypeScript = await isUsingTypeScript(adminSrcPath, 'tsconfig.json');
15
-
16
- const files = await fse.readdir(adminSrcPath);
17
-
18
- const appRegex = new RegExp(`app.${useTypeScript ? 't' : 'j'}sx?$`);
19
-
20
- return files.find(file => file.match(appRegex));
21
- };
22
-
23
- module.exports = getCustomAppConfigFile;
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- const path = require('path');
4
- const chalk = require('chalk');
5
- const _ = require('lodash');
6
- const webpack = require('webpack');
7
- const fs = require('fs-extra');
8
- const getWebpackConfig = require('../webpack.config');
9
-
10
- const getCustomWebpackConfig = (dir, config) => {
11
- const adminConfigPath = path.join(dir, 'src', 'admin', 'webpack.config.js');
12
-
13
- let webpackConfig = getWebpackConfig(config);
14
-
15
- if (fs.existsSync(adminConfigPath)) {
16
- const webpackAdminConfig = require(path.resolve(adminConfigPath));
17
-
18
- if (_.isFunction(webpackAdminConfig)) {
19
- // Expose the devServer configuration
20
- if (config.devServer) {
21
- webpackConfig.devServer = config.devServer;
22
- }
23
-
24
- webpackConfig = webpackAdminConfig(webpackConfig, webpack);
25
-
26
- if (!webpackConfig) {
27
- console.error(
28
- `${chalk.red('Error:')} Nothing was returned from your custom webpack configuration`
29
- );
30
- process.exit(1);
31
- }
32
- }
33
- }
34
-
35
- return webpackConfig;
36
- };
37
-
38
- module.exports = getCustomWebpackConfig;
@@ -1,26 +0,0 @@
1
- 'use strict';
2
-
3
- const { join, resolve } = require('path');
4
- const fs = require('fs-extra');
5
- // eslint-disable-next-line node/no-extraneous-require
6
- const glob = require('glob');
7
-
8
- const getPluginsPath = () => {
9
- const rootPath = resolve(__dirname, '..', join('..', '..', '..', 'packages'));
10
- const corePath = join(rootPath, 'core', '*');
11
- const pluginsPath = join(rootPath, 'plugins', '*');
12
- const corePackageDirs = glob.sync(corePath);
13
- const pluginsPackageDirs = glob.sync(pluginsPath);
14
-
15
- const packageDirs = [...corePackageDirs, ...pluginsPackageDirs].filter(dir => {
16
- const isCoreAdmin = dir.includes('packages/core/admin');
17
- const pathToEntryPoint = join(dir, 'admin', 'src', 'index.js');
18
- const doesAdminFolderExist = fs.pathExistsSync(pathToEntryPoint);
19
-
20
- return !isCoreAdmin && doesAdminFolderExist;
21
- });
22
-
23
- return packageDirs.map(dir => resolve(__dirname, '..', join(dir, 'admin', 'src')));
24
- };
25
-
26
- module.exports = getPluginsPath;
package/utils/index.js DELETED
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- const createCacheDir = require('./create-cache-dir');
4
- const getCustomWebpackConfig = require('./get-custom-webpack-config');
5
- const shouldBuildAdmin = require('./should-build-admin');
6
- const watchAdminFiles = require('./watch-admin-files');
7
-
8
- module.exports = {
9
- createCacheDir,
10
- getCustomWebpackConfig,
11
- shouldBuildAdmin,
12
- watchAdminFiles,
13
- };
@@ -1,52 +0,0 @@
1
- 'use strict';
2
-
3
- const path = require('path');
4
- const fs = require('fs-extra');
5
- const getCustomAppConfigFile = require('./get-custom-app-config-file');
6
-
7
- const DEFAULT_PLUGINS = [
8
- 'content-type-builder',
9
- 'content-manager',
10
- 'upload',
11
- 'email',
12
- 'i18n',
13
- 'users-permissions',
14
- ];
15
-
16
- /**
17
- * Checks if the project's installed plugins are not the same as a default one.
18
- * @param {Object} plugins
19
- * @returns {boolean}
20
- */
21
- const hasNonDefaultPlugins = plugins => {
22
- // List of plugins that are not the ones installed in a generated app
23
- const installedPlugins = Object.keys(plugins).filter(x => !DEFAULT_PLUGINS.includes(x));
24
-
25
- // List of default plugins uninstalled from a generated app
26
- const missingPlugins = DEFAULT_PLUGINS.filter(x => !Object.keys(plugins).includes(x));
27
-
28
- const diff = [...installedPlugins, ...missingPlugins];
29
-
30
- return diff.length > 0;
31
- };
32
-
33
- const hasCustomAdminCode = async dir => {
34
- const customAdminPath = path.join(dir, 'src', 'admin');
35
-
36
- const customAdminAppConfigFile = await getCustomAppConfigFile(dir);
37
- const customAdminWebpackFile = path.join(customAdminPath, 'webpack.config.js');
38
-
39
- const hasCustomConfigFile = !!customAdminAppConfigFile;
40
- const hasCustomWebpackFile = await fs.pathExists(customAdminWebpackFile);
41
-
42
- return hasCustomConfigFile || hasCustomWebpackFile;
43
- };
44
-
45
- const shouldBuildAdmin = async ({ appDir, plugins }) => {
46
- const appHasCustomAdminCode = await hasCustomAdminCode(appDir);
47
- const appHasNonDefaultPlugins = hasNonDefaultPlugins(plugins);
48
-
49
- return appHasCustomAdminCode || appHasNonDefaultPlugins;
50
- };
51
-
52
- module.exports = shouldBuildAdmin;
@@ -1,59 +0,0 @@
1
- 'use strict';
2
-
3
- const path = require('path');
4
- const fs = require('fs-extra');
5
- const chokidar = require('chokidar');
6
- const { isUsingTypeScript } = require('@strapi/typescript-utils');
7
-
8
- /**
9
- * Listen to files change and copy the changed files in the .cache/admin folder
10
- * when using the dev mode
11
- * @param {string} dir
12
- */
13
- async function watchAdminFiles(dir) {
14
- const useTypeScript = await isUsingTypeScript(path.join(dir, 'src', 'admin'), 'tsconfig.json');
15
-
16
- const cacheDir = path.join(dir, '.cache');
17
- const targetExtensionFile = useTypeScript ? 'app.tsx' : 'app.js';
18
- const appExtensionFile = path.join(dir, 'src', 'admin', targetExtensionFile);
19
- const extensionsPath = path.join(dir, 'src', 'admin', 'extensions');
20
-
21
- // Only watch the admin/app.js file and the files that are in the ./admin/extensions/folder
22
- const filesToWatch = [appExtensionFile, extensionsPath];
23
-
24
- const watcher = chokidar.watch(filesToWatch, {
25
- ignoreInitial: true,
26
- ignorePermissionErrors: true,
27
- });
28
-
29
- watcher.on('all', async (event, filePath) => {
30
- const isAppFile = filePath.includes(appExtensionFile);
31
-
32
- // The app.js file needs to be copied in the .cache/admin/src/app.js and the other ones needs to
33
- // be copied in the .cache/admin/src/extensions folder
34
- const targetPath = isAppFile
35
- ? path.join(path.normalize(filePath.split(appExtensionFile)[1]), targetExtensionFile)
36
- : path.join('extensions', path.normalize(filePath.split(extensionsPath)[1]));
37
-
38
- const destFolder = path.join(cacheDir, 'admin', 'src');
39
-
40
- if (event === 'unlink' || event === 'unlinkDir') {
41
- // Remove the file or folder
42
- // We need to copy the original files when deleting an override one
43
- try {
44
- fs.removeSync(path.join(destFolder, targetPath));
45
- } catch (err) {
46
- console.log('An error occured while deleting the file', err);
47
- }
48
- } else {
49
- // In any other case just copy the file into the .cache/admin/src folder
50
- try {
51
- await fs.copy(filePath, path.join(destFolder, targetPath));
52
- } catch (err) {
53
- console.log(err);
54
- }
55
- }
56
- });
57
- }
58
-
59
- module.exports = watchAdminFiles;