From f536ba9ffc50f1066899c5a3320f1622417fb950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E6=96=87=E6=B6=9B?= Date: Tue, 28 Jul 2020 18:20:05 +0800 Subject: [PATCH] style: fix by prettier (#354) * feat: add prettier * feat: add prettier to CI * chore: keep scripts same style * feat: add prettier as deps * feat: use @ice/spec * style: fix by prettier --- .eslintrc.js | 10 +- .prettierrc.js | 8 +- extensions/iceworks-app/.vscode/launch.json | 12 +- extensions/iceworks-app/.vscode/tasks.json | 2 +- extensions/iceworks-app/package.json | 2 +- extensions/iceworks-app/package.nls.json | 2 +- .../iceworks-app/package.nls.zh-cn.json | 2 +- .../src/commands/executeCommand.ts | 2 +- .../iceworks-app/src/commands/stopCommand.ts | 2 +- extensions/iceworks-app/src/constants.ts | 13 +- extensions/iceworks-app/src/extension.ts | 22 +- extensions/iceworks-app/src/i18n.ts | 2 +- .../src/inputBoxs/showDepsInputBox.ts | 8 +- .../iceworks-app/src/locales/en-US.json | 38 ++-- .../iceworks-app/src/locales/zh-CN.json | 36 +-- .../quickPicks/showDefPublishEnvQuickPick.ts | 29 ++- .../src/quickPicks/showDepsQuickPick.ts | 12 +- .../src/quickPicks/showExtensionsQuickPick.ts | 36 +-- extensions/iceworks-app/src/services.ts | 2 +- .../statusBar/createExtensionsStatusBar.ts | 2 +- .../iceworks-app/src/views/componentsView.ts | 14 +- .../src/views/nodeDependenciesView.ts | 131 +++++++---- .../iceworks-app/src/views/npmScriptsView.ts | 46 ++-- .../iceworks-app/src/views/pagesView.ts | 18 +- extensions/iceworks-app/tsconfig.json | 24 +- extensions/iceworks-app/web/build.json | 6 +- extensions/iceworks-app/web/src/app.tsx | 2 +- extensions/iceworks-app/web/src/constants.ts | 7 +- extensions/iceworks-app/web/src/i18n.tsx | 36 +-- .../iceworks-app/web/src/locales/en-US.json | 52 ++--- .../iceworks-app/web/src/locales/zh-CN.json | 52 ++--- .../ConfigHelper/CustomMaterialSource.tsx | 51 +++-- .../pages/ConfigHelper/MaterialSourceForm.tsx | 46 ++-- .../web/src/pages/ConfigHelper/index.tsx | 86 +++++--- extensions/iceworks-app/web/src/routes.ts | 4 +- extensions/iceworks-app/web/tsconfig.json | 24 +- extensions/iceworks-app/webpack.config.js | 16 +- .../.vscode/launch.json | 12 +- .../iceworks-component-builder/package.json | 2 +- .../package.nls.json | 2 +- .../package.nls.zh-cn.json | 2 +- .../src/extension.ts | 23 +- .../iceworks-component-builder/src/i18n.ts | 2 +- .../src/locales/en-US.json | 4 +- .../src/locales/zh-CN.json | 4 +- .../src/services/block.ts | 4 +- .../iceworks-component-builder/src/types.d.ts | 3 +- .../iceworks-component-builder/tsconfig.json | 23 +- .../iceworks-component-builder/web/build.json | 6 +- .../web/build.plugin.js | 7 +- .../web/mocks/material/getData.json | 54 ++--- .../material/getSourcesByProjectType.json | 2 +- .../web/src/global.scss | 2 +- .../web/src/i18n.tsx | 36 +-- .../web/src/locales/en-US.json | 20 +- .../web/src/locales/zh-CN.json | 20 +- .../web/src/pages/Home/index.module.scss | 2 +- .../web/src/pages/Home/index.tsx | 46 ++-- .../web/src/variables.scss | 5 +- .../web/tsconfig.json | 26 +-- .../webpack.config.js | 16 +- .../.vscode/launch.json | 14 +- .../schemas/ice.build.json | 161 ++++---------- .../schemas/rax.build.json | 42 +--- .../iceworks-config-helper/src/index.ts | 10 +- .../iceworks-config-helper/tsconfig.json | 6 +- .../.vscode/launch.json | 10 +- .../iceworks-material-helper/src/extension.ts | 23 +- .../iceworks-material-helper/src/i18n.ts | 2 +- .../src/locales/en-US.json | 4 +- .../src/locales/zh-CN.json | 4 +- .../getBabelParserPlugins.ts | 4 +- .../propsAutoComplete/getCompletionItem.ts | 2 +- .../propsAutoComplete/getCurrentJsxElement.ts | 47 ++-- .../src/propsAutoComplete/getDefinitions.ts | 4 +- .../getPropKeyCompletionItems.ts | 5 +- .../propsAutoComplete/getPropKeysFromCode.ts | 75 +++---- .../getPropKeysFromDefinition.ts | 19 +- .../src/propsAutoComplete/index.ts | 9 +- .../iceworks-material-helper/tsconfig.json | 9 +- .../iceworks-material-helper/web/build.json | 6 +- .../web/build.plugin.js | 9 +- .../web/mocks/material/getData.json | 54 ++--- .../material/getSourcesByProjectType.json | 2 +- .../web/src/global.scss | 2 +- .../iceworks-material-helper/web/src/i18n.tsx | 36 +-- .../web/src/locales/en-US.json | 6 +- .../web/src/locales/zh-CN.json | 6 +- .../web/src/pages/Home/index.tsx | 34 +-- .../web/tsconfig.json | 24 +- .../webpack.config.js | 16 +- .../iceworks-page-builder/.vscode/launch.json | 12 +- extensions/iceworks-page-builder/package.json | 1 - .../iceworks-page-builder/package.nls.json | 2 +- .../package.nls.zh-cn.json | 2 +- .../iceworks-page-builder/src/extension.ts | 23 +- extensions/iceworks-page-builder/src/i18n.ts | 2 +- .../src/locales/en-US.json | 4 +- .../src/locales/zh-CN.json | 4 +- .../iceworks-page-builder/src/types.d.ts | 3 +- .../iceworks-page-builder/tsconfig.json | 23 +- .../iceworks-page-builder/web/build.json | 6 +- .../iceworks-page-builder/web/build.plugin.js | 9 +- .../web/mocks/blocks.json | 60 +++-- .../web/mocks/material/getData.json | 54 ++--- .../material/getSourcesByProjectType.json | 2 +- .../iceworks-page-builder/web/src/global.scss | 2 +- .../iceworks-page-builder/web/src/i18n.tsx | 36 +-- .../web/src/locales/en-US.json | 20 +- .../web/src/locales/zh-CN.json | 20 +- .../Home/components/PageSelected/index.tsx | 43 ++-- .../web/src/pages/Home/index.module.scss | 2 +- .../web/src/pages/Home/index.tsx | 33 ++- .../web/src/variables.scss | 5 +- .../iceworks-page-builder/web/tsconfig.json | 24 +- .../iceworks-page-builder/webpack.config.js | 16 +- .../.vscode/launch.json | 30 ++- .../.vscode/tasks.json | 32 +-- .../iceworks-project-creator/package.json | 2 +- .../iceworks-project-creator/package.nls.json | 2 +- .../package.nls.zh-cn.json | 2 +- .../iceworks-project-creator/src/extension.ts | 23 +- .../iceworks-project-creator/src/i18n.ts | 2 +- .../src/locales/en-US.json | 4 +- .../src/locales/zh-CN.json | 4 +- .../iceworks-project-creator/src/types.d.ts | 3 +- .../iceworks-project-creator/tsconfig.json | 23 +- .../iceworks-project-creator/web/build.json | 6 +- .../web/build.plugin.js | 11 +- .../web/mocks/material/getSources.json | 2 +- .../web/mocks/project/getScaffolds.json | 58 ++--- .../iceworks-project-creator/web/package.json | 2 +- .../web/src/components/MenuCard/index.tsx | 12 +- .../components/MobileScaffoldCard/index.tsx | 19 +- .../web/src/components/NotFound/index.tsx | 11 +- .../web/src/components/ScaffoldCard/index.tsx | 4 +- .../web/src/constant.ts | 10 +- .../iceworks-project-creator/web/src/i18n.tsx | 36 +-- .../web/src/locales/en-US.json | 58 ++--- .../web/src/locales/zh-CN.json | 58 ++--- .../components/CreateDEFProjectForm/index.tsx | 89 ++++---- .../components/CreateProjectForm/index.tsx | 60 +++-- .../components/RaxScaffoldTypeForm/config.ts | 24 +- .../components/RaxScaffoldTypeForm/index.tsx | 65 +++--- .../components/ScaffoldMarket/index.tsx | 183 +++++++++------- .../web/src/pages/CreateProject/index.tsx | 116 ++++++---- .../web/src/routes.ts | 4 +- .../iceworks-project-creator/web/src/types.ts | 14 +- .../web/src/typings.d.ts | 2 +- .../web/tsconfig.json | 24 +- .../webpack.config.js | 16 +- .../iceworks-style-helper/.vscode/launch.json | 12 +- .../src/cssClassAutoCompete/index.ts | 12 +- .../src/getFocusCodeInfo.ts | 2 +- extensions/iceworks-style-helper/src/index.ts | 4 +- .../src/inlineStyleAutoComplete/cssData.d.ts | 4 +- .../getCompletionItem.ts | 2 +- .../src/inlineStyleAutoComplete/index.ts | 12 +- .../inlineStyleAutoComplete/isEditStyleKey.ts | 22 +- .../colorPreviewDisplay.ts | 5 +- .../src/sassVariablesViewer/findVariables.ts | 6 +- .../sassVariablesViewer/getFullModulePath.ts | 3 +- .../src/sassVariablesViewer/index.ts | 44 ++-- .../src/styleInfoViewer/findStyle.ts | 15 +- .../styleInfoViewer/findStyleDependencies.ts | 12 +- .../src/styleInfoViewer/findStyleSelectors.ts | 5 +- .../src/styleInfoViewer/index.ts | 27 +-- .../iceworks-style-helper/tsconfig.json | 8 +- extensions/iceworks/.vscode/launch.json | 18 +- jest.config.js | 14 +- lerna.json | 4 +- packages/block-service/package.json | 2 +- packages/block-service/src/i18n.ts | 4 +- packages/block-service/src/index.ts | 57 ++--- packages/block-service/src/locales/en-US.json | 28 +-- packages/block-service/src/locales/zh-CN.json | 28 +-- .../src/utils/generateBlockName.ts | 2 +- packages/block-service/src/utils/getBlocks.ts | 2 +- .../block-service/src/utils/scanDirectory.ts | 41 ++-- packages/block-service/tsconfig.json | 7 +- packages/common-service/package.json | 2 +- .../scripts/get-def-login-client.ts | 11 +- .../scripts/install-def-login-client-deps.ts | 4 +- packages/common-service/src/index.ts | 47 ++-- packages/common-service/src/log.ts | 58 ++--- .../src/utils/getImportDeclarations.ts | 6 +- packages/common-service/tsconfig.json | 10 +- packages/common-service/webpack.config.js | 18 +- packages/component-service/package.json | 2 +- packages/component-service/src/i18n.ts | 2 +- packages/component-service/src/index.ts | 30 +-- .../component-service/src/locales/en-US.json | 4 +- .../component-service/src/locales/zh-CN.json | 4 +- .../src/utils/insertComponent.ts | 16 +- packages/component-service/tsconfig.json | 7 +- packages/config/tsconfig.json | 2 +- packages/constant/src/index.ts | 22 +- packages/constant/tsconfig.json | 2 +- packages/generate-project/package.json | 2 +- .../generate-project/src/__tests__/index.ts | 16 +- packages/generate-project/src/checkEmpty.ts | 7 +- packages/generate-project/src/ejsRenderDir.ts | 44 ++-- .../generate-project/src/fommatProject.ts | 9 +- packages/generate-project/src/index.ts | 19 +- packages/generate-project/tsconfig.json | 2 +- packages/i18n/src/index.ts | 14 +- packages/i18n/tsconfig.json | 2 +- packages/ice-npm-utils/src/__tests__/index.ts | 7 +- packages/ice-npm-utils/src/index.ts | 41 ++-- packages/ice-npm-utils/tsconfig.json | 2 +- packages/ice-screenshot/bin/index.js | 19 +- packages/ice-screenshot/utils/createServer.js | 4 +- packages/ice-screenshot/utils/getPuppeteer.js | 12 +- packages/material-service/package.json | 2 +- packages/material-service/src/i18n.ts | 2 +- packages/material-service/src/index.ts | 48 ++-- .../material-service/src/locales/en-US.json | 18 +- .../material-service/src/locales/zh-CN.json | 18 +- packages/material-ui/build.json | 6 +- packages/material-ui/build.plugin.js | 5 +- .../src/components/base.module.scss | 2 +- packages/material-ui/src/components/base.tsx | 37 ++-- .../src/components/block.module.scss | 2 +- packages/material-ui/src/components/block.tsx | 55 ++--- .../src/components/component.module.scss | 2 +- .../material-ui/src/components/component.tsx | 37 ++-- .../src/components/scaffold.module.scss | 2 +- .../material-ui/src/components/scaffold.tsx | 66 +++--- .../src/components/type.module.scss | 2 +- packages/material-ui/src/components/type.tsx | 206 +++++++++--------- packages/material-ui/src/components/view.tsx | 72 +++--- packages/material-ui/src/index.tsx | 35 ++- packages/material-utils/package.json | 2 +- packages/material-utils/src/methods.ts | 16 +- packages/page-service/src/i18n.ts | 2 +- packages/page-service/src/index.ts | 16 +- packages/page-service/src/locales/en-US.json | 4 +- packages/page-service/src/locales/zh-CN.json | 2 +- .../src/templates/template.react.ts | 4 +- .../src/templates/template.vue.ts | 2 +- packages/project-service/src/constant.ts | 4 +- packages/project-service/src/i18n.ts | 3 +- packages/project-service/src/index.ts | 74 ++++--- .../project-service/src/locales/en-US.json | 10 +- .../project-service/src/locales/zh-CN.json | 10 +- packages/project-service/tsconfig.json | 7 +- .../src/babelDynamicImportPlugin.ts | 4 +- packages/transform-ts-to-js/src/index.ts | 9 +- packages/transform-ts-to-js/src/ts2js.ts | 2 +- packages/transform-ts-to-js/tsconfig.json | 14 +- packages/vscode-webview/src/vscode.ts | 6 +- packages/vscode-webview/src/webview.ts | 4 +- scripts/build.ts | 50 +++-- scripts/dependency-check.ts | 2 +- scripts/extension-deps-install.ts | 2 +- scripts/extension-docs-check.ts | 34 +-- scripts/extension-link-package.ts | 34 +-- scripts/fn/extension-deps-install.ts | 6 +- scripts/fn/getPackages.ts | 1 - scripts/getExtensionInfos.ts | 69 +++--- scripts/getPackageInfos.ts | 66 +++--- scripts/owner.ts | 5 +- scripts/publish-beta-extension.ts | 6 +- scripts/publish-beta-package.ts | 23 +- scripts/publish-extension.ts | 127 ++++++----- scripts/publish-package.ts | 20 +- scripts/upload-extensions.ts | 6 +- scripts/watch.ts | 16 +- tsconfig.extension.json | 6 +- tsconfig.json | 28 +-- tsconfig.settings.json | 2 +- tsconfig.webview.json | 7 +- 272 files changed, 2602 insertions(+), 2813 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index d176490e3..0880a1bdf 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,16 +1,16 @@ const { eslint, tslint, deepmerge } = require('@ice/spec'); const commonRules = { - 'react/jsx-filename-extension': [1, { 'extensions': ['.js', '.jsx', '.tsx'] }], + 'react/jsx-filename-extension': [1, { extensions: ['.js', '.jsx', '.tsx'] }], 'react/jsx-no-target-blank': [0], 'prefer-object-spread': 0, 'max-classes-per-file': 0, - 'class-methods-use-this': 0 + 'class-methods-use-this': 0, }; const jsRules = deepmerge(eslint, { env: { - jest: true + jest: true, }, rules: { ...commonRules, @@ -19,7 +19,7 @@ const jsRules = deepmerge(eslint, { const tsRules = deepmerge(tslint, { env: { - jest: true + jest: true, }, rules: { ...commonRules, @@ -31,7 +31,7 @@ const tsRules = deepmerge(tslint, { '@typescript-eslint/no-non-null-assertion': 0, '@typescript-eslint/explicit-function-return-type': 0, '@typescript-eslint/explicit-member-accessibility': 0, - '@typescript-eslint/no-parameter-properties': 0 + '@typescript-eslint/no-parameter-properties': 0, }, }); diff --git a/.prettierrc.js b/.prettierrc.js index 71bd07b2c..320d3df5a 100644 --- a/.prettierrc.js +++ b/.prettierrc.js @@ -1,8 +1,8 @@ const { prettier, deepmerge } = require('@ice/spec'); module.exports = deepmerge(prettier, { - "tabWidth": 2, - "useTabs": false, - "jsxSingleQuote": true, - "printWidth": 120, + tabWidth: 2, + useTabs: false, + jsxSingleQuote: true, + printWidth: 120, }); diff --git a/extensions/iceworks-app/.vscode/launch.json b/extensions/iceworks-app/.vscode/launch.json index 5c3392684..a0d35cf6e 100644 --- a/extensions/iceworks-app/.vscode/launch.json +++ b/extensions/iceworks-app/.vscode/launch.json @@ -10,13 +10,9 @@ "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/build/**/*.js" - ], + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/build/**/*.js"], "preLaunchTask": "npm: webpack" - }, + } ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/.vscode/tasks.json b/extensions/iceworks-app/.vscode/tasks.json index 07049c728..078ff7e01 100644 --- a/extensions/iceworks-app/.vscode/tasks.json +++ b/extensions/iceworks-app/.vscode/tasks.json @@ -17,4 +17,4 @@ } } ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/package.json b/extensions/iceworks-app/package.json index 83b31aa75..fd375fb85 100644 --- a/extensions/iceworks-app/package.json +++ b/extensions/iceworks-app/package.json @@ -420,4 +420,4 @@ "url": "https://github.com/ice-lab/iceworks/issues", "email": "iceworksteam@163.com" } -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/package.nls.json b/extensions/iceworks-app/package.nls.json index 33a364be3..b630dd16a 100644 --- a/extensions/iceworks-app/package.nls.json +++ b/extensions/iceworks-app/package.nls.json @@ -29,4 +29,4 @@ "iceworksApp.command.nodeDependencies.upgrade.title": "Upgrade Dependency", "iceworksApp.configuration.properties.iceworks.packageManager.description": "Iceworks npm package manager.", "iceworksApp.configuration.properties.iceworks.npmRegistry.description": "Iceworks npm registry." -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/package.nls.zh-cn.json b/extensions/iceworks-app/package.nls.zh-cn.json index 0713116d7..c1f1eb2a3 100644 --- a/extensions/iceworks-app/package.nls.zh-cn.json +++ b/extensions/iceworks-app/package.nls.zh-cn.json @@ -29,4 +29,4 @@ "iceworksApp.command.nodeDependencies.upgrade.title": "升级依赖", "iceworksApp.configuration.properties.iceworks.packageManager.description": "Iceworks npm 包管理工具", "iceworksApp.configuration.properties.iceworks.npmRegistry.description": "Iceworks npm 镜像源" -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/src/commands/executeCommand.ts b/extensions/iceworks-app/src/commands/executeCommand.ts index 53ee58d89..e89614eb0 100644 --- a/extensions/iceworks-app/src/commands/executeCommand.ts +++ b/extensions/iceworks-app/src/commands/executeCommand.ts @@ -25,4 +25,4 @@ export default function executeCommand(terminalMapping: ITerminalMap, script: vs terminal.show(); terminal.sendText(command); -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/src/commands/stopCommand.ts b/extensions/iceworks-app/src/commands/stopCommand.ts index e6c4b7f53..2e3ae171a 100644 --- a/extensions/iceworks-app/src/commands/stopCommand.ts +++ b/extensions/iceworks-app/src/commands/stopCommand.ts @@ -6,4 +6,4 @@ export default function stopCommand(terminalMapping: ITerminalMap, scriptId: str currentTerminal.dispose(); terminalMapping.delete(scriptId); } -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/src/constants.ts b/extensions/iceworks-app/src/constants.ts index 89a21291b..2cc9b5412 100644 --- a/extensions/iceworks-app/src/constants.ts +++ b/extensions/iceworks-app/src/constants.ts @@ -1,17 +1,8 @@ import { NodeDepTypes } from './types'; -export const entryFileSuffix = [ - '.jsx', - '.js', - '.tsx', - '.rml', - '.vue' -]; +export const entryFileSuffix = ['.jsx', '.js', '.tsx', '.rml', '.vue']; -export const nodeDepTypes: NodeDepTypes[] = [ - 'dependencies', - 'devDependencies' -]; +export const nodeDepTypes: NodeDepTypes[] = ['dependencies', 'devDependencies']; export const showExtensionsQuickPickCommandId = 'iceworksApp.showExtensionsQuickPick'; diff --git a/extensions/iceworks-app/src/extension.ts b/extensions/iceworks-app/src/extension.ts index e67a6e378..d758b045f 100644 --- a/extensions/iceworks-app/src/extension.ts +++ b/extensions/iceworks-app/src/extension.ts @@ -36,18 +36,24 @@ export async function activate(context: vscode.ExtensionContext) { subscriptions.push(extensionsStatusBar); // init webview function activeWebview() { - const webviewPanel: vscode.WebviewPanel = window.createWebviewPanel('iceworks', - i18n.format('extension.iceworksApp.extension.title'), ViewColumn.One, { + const webviewPanel: vscode.WebviewPanel = window.createWebviewPanel( + 'iceworks', + i18n.format('extension.iceworksApp.extension.title'), + ViewColumn.One, + { enableScripts: true, retainContextWhenHidden: true, - }); + } + ); webviewPanel.webview.html = getHtmlForWebview(extensionPath); connectService(webviewPanel, context, { services, logger }); } - subscriptions.push(vscode.commands.registerCommand('iceworksApp.configHelper.start', function () { - activeWebview(); - })); + subscriptions.push( + vscode.commands.registerCommand('iceworksApp.configHelper.start', function () { + activeWebview(); + }) + ); if (!rootPath) { vscode.window.showInformationMessage(i18n.format('extension.iceworksApp.extebsion.emptyWorkplace')); @@ -79,6 +85,8 @@ export async function activate(context: vscode.ExtensionContext) { // DEF publish command in editor title vscode.commands.executeCommand('setContext', 'iceworks:isAliInternal', isAliInternal); if (isAliInternal) { - context.subscriptions.push(vscode.commands.registerCommand('iceworksApp.DefPublish', () => showDefPublishEnvQuickPick(terminals, rootPath))); + context.subscriptions.push( + vscode.commands.registerCommand('iceworksApp.DefPublish', () => showDefPublishEnvQuickPick(terminals, rootPath)) + ); } } diff --git a/extensions/iceworks-app/src/i18n.ts b/extensions/iceworks-app/src/i18n.ts index 612c0c8ba..6cd9f9895 100644 --- a/extensions/iceworks-app/src/i18n.ts +++ b/extensions/iceworks-app/src/i18n.ts @@ -11,4 +11,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/extensions/iceworks-app/src/inputBoxs/showDepsInputBox.ts b/extensions/iceworks-app/src/inputBoxs/showDepsInputBox.ts index 83ff96538..a6cc3214b 100644 --- a/extensions/iceworks-app/src/inputBoxs/showDepsInputBox.ts +++ b/extensions/iceworks-app/src/inputBoxs/showDepsInputBox.ts @@ -3,10 +3,14 @@ import { NodeDepTypes, ITerminalMap } from '../types'; import executeCommand from '../commands/executeCommand'; import i18n from '../i18n'; -export default async function showDepsInputBox(terminals: ITerminalMap, nodeDependenciesInstance: any, depType: NodeDepTypes) { +export default async function showDepsInputBox( + terminals: ITerminalMap, + nodeDependenciesInstance: any, + depType: NodeDepTypes +) { const result = await vscode.window.showInputBox({ placeHolder: i18n.format('extension.iceworksApp.showDepsInputBox.materialImport.placeHolder'), - prompt: i18n.format('extension.iceworksApp.showDepsInputBox.materialImport.prompt',{depType}) + prompt: i18n.format('extension.iceworksApp.showDepsInputBox.materialImport.prompt', { depType }), }); if (!result) { return; diff --git a/extensions/iceworks-app/src/locales/en-US.json b/extensions/iceworks-app/src/locales/en-US.json index 911c31eeb..7ea43d46f 100644 --- a/extensions/iceworks-app/src/locales/en-US.json +++ b/extensions/iceworks-app/src/locales/en-US.json @@ -1,20 +1,20 @@ { - "extension.iceworksApp.showExtensionsQuickPick.projectCreater.label": "Iceworks Create Application", - "extension.iceworksApp.showExtensionsQuickPick.projectCreater.detail": "Create a Universal Application(React/Rax/Vue, etc) quickly.", - "extension.iceworksApp.showExtensionsQuickPick.pageBuilder.label": "Iceworks Generate Page", - "extension.iceworksApp.showExtensionsQuickPick.pageBuilder.detail": "Build Page UI by low-code way.", - "extension.iceworksApp.showExtensionsQuickPick.generateComponent.label": "Iceworks Create Component", - "extension.iceworksApp.showExtensionsQuickPick.generateComponent.detail": "Build Component UI by low-code way.", - "extension.iceworksApp.showExtensionsQuickPick.materialImport.label": "Iceworks Import Component", - "extension.iceworksApp.showExtensionsQuickPick.materialImport.detail": "Add Component to the Application in a visual way.", - "extension.iceworksApp.showDepsInputBox.materialImport.placeHolder": "for example: lodash react@latest.", - "extension.iceworksApp.showDepsInputBox.materialImport.prompt": "Please enter the name of the dependency to be addded to <%= depType %>. Multiple dependencies should be spilted by Spaces.", - "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.label": "Daily", - "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.detail": "Release to daily environment.", - "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.label": "Production", - "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.detail": "Release to production environment.", - "extension.iceworksApp.showDepsQuickPick.quickPickItem.detail": "Install <%= label %>", - "extension.iceworksApp.openEntryFile.ErrorMessage": "Cannot find entry", - "extension.iceworksApp.extension.title": "Iceworks Settings", - "extension.iceworksApp.extebsion.emptyWorkplace": "Current workspace is empty, please open or create an application." -} \ No newline at end of file + "extension.iceworksApp.showExtensionsQuickPick.projectCreater.label": "Iceworks Create Application", + "extension.iceworksApp.showExtensionsQuickPick.projectCreater.detail": "Create a Universal Application(React/Rax/Vue, etc) quickly.", + "extension.iceworksApp.showExtensionsQuickPick.pageBuilder.label": "Iceworks Generate Page", + "extension.iceworksApp.showExtensionsQuickPick.pageBuilder.detail": "Build Page UI by low-code way.", + "extension.iceworksApp.showExtensionsQuickPick.generateComponent.label": "Iceworks Create Component", + "extension.iceworksApp.showExtensionsQuickPick.generateComponent.detail": "Build Component UI by low-code way.", + "extension.iceworksApp.showExtensionsQuickPick.materialImport.label": "Iceworks Import Component", + "extension.iceworksApp.showExtensionsQuickPick.materialImport.detail": "Add Component to the Application in a visual way.", + "extension.iceworksApp.showDepsInputBox.materialImport.placeHolder": "for example: lodash react@latest.", + "extension.iceworksApp.showDepsInputBox.materialImport.prompt": "Please enter the name of the dependency to be addded to <%= depType %>. Multiple dependencies should be spilted by Spaces.", + "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.label": "Daily", + "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.detail": "Release to daily environment.", + "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.label": "Production", + "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.detail": "Release to production environment.", + "extension.iceworksApp.showDepsQuickPick.quickPickItem.detail": "Install <%= label %>", + "extension.iceworksApp.openEntryFile.ErrorMessage": "Cannot find entry", + "extension.iceworksApp.extension.title": "Iceworks Settings", + "extension.iceworksApp.extebsion.emptyWorkplace": "Current workspace is empty, please open or create an application." +} diff --git a/extensions/iceworks-app/src/locales/zh-CN.json b/extensions/iceworks-app/src/locales/zh-CN.json index d5847fed0..dbc0598b7 100644 --- a/extensions/iceworks-app/src/locales/zh-CN.json +++ b/extensions/iceworks-app/src/locales/zh-CN.json @@ -1,20 +1,20 @@ { - "extension.iceworksApp.showExtensionsQuickPick.projectCreater.label": "Iceworks 创建应用", - "extension.iceworksApp.showExtensionsQuickPick.projectCreater.detail": "快速创建多端应用(例如:React/Rax/Vue...)", - "extension.iceworksApp.showExtensionsQuickPick.pageBuilder.label": "Iceworks 生成页面", - "extension.iceworksApp.showExtensionsQuickPick.pageBuilder.detail": "使用低代码的方式生成网页视图", - "extension.iceworksApp.showExtensionsQuickPick.generateComponent.label": "Iceworks 生成组件", - "extension.iceworksApp.showExtensionsQuickPick.generateComponent.detail": "使用低代码的方式生成前端组件", - "extension.iceworksApp.showExtensionsQuickPick.materialImport.label": "Iceworks 使用物料", - "extension.iceworksApp.showExtensionsQuickPick.materialImport.detail": "使用可视化的方式添加物料到应用中", - "extension.iceworksApp.showDepsInputBox.materialImport.placeHolder": "例如: lodash react@latest", - "extension.iceworksApp.showDepsInputBox.materialImport.prompt": "请输入需要添加到 <%= depType %> 的依赖名称, 支持通过空格添加多个依赖", - "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.label": "日常环境", - "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.detail": "发布到日常环境", - "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.label": "生产环境", - "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.detail": "发布到生产环境", - "extension.iceworksApp.showDepsQuickPick.quickPickItem.detail": "安装 <%= label %>", - "extension.iceworksApp.openEntryFile.ErrorMessage": "没有找到入口", - "extension.iceworksApp.extension.title": "设置 - Iceworks", - "extension.iceworksApp.extebsion.emptyWorkplace": "当前工作区为空,请打开应用或新建应用。" + "extension.iceworksApp.showExtensionsQuickPick.projectCreater.label": "Iceworks 创建应用", + "extension.iceworksApp.showExtensionsQuickPick.projectCreater.detail": "快速创建多端应用(例如:React/Rax/Vue...)", + "extension.iceworksApp.showExtensionsQuickPick.pageBuilder.label": "Iceworks 生成页面", + "extension.iceworksApp.showExtensionsQuickPick.pageBuilder.detail": "使用低代码的方式生成网页视图", + "extension.iceworksApp.showExtensionsQuickPick.generateComponent.label": "Iceworks 生成组件", + "extension.iceworksApp.showExtensionsQuickPick.generateComponent.detail": "使用低代码的方式生成前端组件", + "extension.iceworksApp.showExtensionsQuickPick.materialImport.label": "Iceworks 使用物料", + "extension.iceworksApp.showExtensionsQuickPick.materialImport.detail": "使用可视化的方式添加物料到应用中", + "extension.iceworksApp.showDepsInputBox.materialImport.placeHolder": "例如: lodash react@latest", + "extension.iceworksApp.showDepsInputBox.materialImport.prompt": "请输入需要添加到 <%= depType %> 的依赖名称, 支持通过空格添加多个依赖", + "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.label": "日常环境", + "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.detail": "发布到日常环境", + "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.label": "生产环境", + "extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.detail": "发布到生产环境", + "extension.iceworksApp.showDepsQuickPick.quickPickItem.detail": "安装 <%= label %>", + "extension.iceworksApp.openEntryFile.ErrorMessage": "没有找到入口", + "extension.iceworksApp.extension.title": "设置 - Iceworks", + "extension.iceworksApp.extebsion.emptyWorkplace": "当前工作区为空,请打开应用或新建应用。" } diff --git a/extensions/iceworks-app/src/quickPicks/showDefPublishEnvQuickPick.ts b/extensions/iceworks-app/src/quickPicks/showDefPublishEnvQuickPick.ts index 35711514e..f0782389b 100644 --- a/extensions/iceworks-app/src/quickPicks/showDefPublishEnvQuickPick.ts +++ b/extensions/iceworks-app/src/quickPicks/showDefPublishEnvQuickPick.ts @@ -6,25 +6,30 @@ import i18n from '../i18n'; const { window } = vscode; export default function showDefPublishEnvQuickPick(terminalMapping: ITerminalMap, rootPath: string) { - const DEFEnvOptions = [ - { label: i18n.format('extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.label'), - detail: i18n.format('extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.detail'), command: 'def p -d' }, - { label: i18n.format('extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.label'), - detail: i18n.format('extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.detail'), command: 'def p -o' }, - ] - + { + label: i18n.format('extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.label'), + detail: i18n.format('extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.daily.detail'), + command: 'def p -d', + }, + { + label: i18n.format('extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.label'), + detail: i18n.format('extension.iceworksApp.showDefPublishEnvQuickPick.DEFEnvOptions.prod.detail'), + command: 'def p -o', + }, + ]; + const quickPick = window.createQuickPick(); quickPick.items = DEFEnvOptions.map((options) => ({ label: options.label, detail: options.detail })); - quickPick.onDidChangeSelection(selection => { + quickPick.onDidChangeSelection((selection) => { if (selection[0]) { - const env = DEFEnvOptions.find(option => option.label === selection[0].label)!; + const env = DEFEnvOptions.find((option) => option.label === selection[0].label)!; const command: vscode.Command = { title: 'Publish', command: 'iceworksApp.DefPublish', - arguments: [rootPath, env.command] - } - executeCommand(terminalMapping, command, `DefPublish-${env.label}`) + arguments: [rootPath, env.command], + }; + executeCommand(terminalMapping, command, `DefPublish-${env.label}`); quickPick.dispose(); } }); diff --git a/extensions/iceworks-app/src/quickPicks/showDepsQuickPick.ts b/extensions/iceworks-app/src/quickPicks/showDepsQuickPick.ts index f6ac4c844..48a258ec1 100644 --- a/extensions/iceworks-app/src/quickPicks/showDepsQuickPick.ts +++ b/extensions/iceworks-app/src/quickPicks/showDepsQuickPick.ts @@ -6,13 +6,15 @@ import i18n from '../i18n'; export default function showDepsQuickPick(terminals: ITerminalMap, nodeDependenciesInstance: any) { const quickPick = vscode.window.createQuickPick(); - quickPick.items = nodeDepTypes.map(label => ({ label, detail: i18n.format('extension.iceworksApp.showDepsQuickPick.quickPickItem.detail',{label}) })); - quickPick.onDidChangeSelection(selection => { + quickPick.items = nodeDepTypes.map((label) => ({ + label, + detail: i18n.format('extension.iceworksApp.showDepsQuickPick.quickPickItem.detail', { label }), + })); + quickPick.onDidChangeSelection((selection) => { if (selection[0]) { - showDepsInputBox(terminals, nodeDependenciesInstance, selection[0].label as NodeDepTypes) - .catch(console.error); + showDepsInputBox(terminals, nodeDependenciesInstance, selection[0].label as NodeDepTypes).catch(console.error); } }); quickPick.onDidHide(() => quickPick.dispose()); quickPick.show(); -}; \ No newline at end of file +} diff --git a/extensions/iceworks-app/src/quickPicks/showExtensionsQuickPick.ts b/extensions/iceworks-app/src/quickPicks/showExtensionsQuickPick.ts index 155cdbe8a..71e2c6ada 100644 --- a/extensions/iceworks-app/src/quickPicks/showExtensionsQuickPick.ts +++ b/extensions/iceworks-app/src/quickPicks/showExtensionsQuickPick.ts @@ -5,24 +5,32 @@ const { window, commands } = vscode; export default function showExtensionsQuickPick() { const extensionOptions = [ - { label: i18n.format('extension.iceworksApp.showExtensionsQuickPick.projectCreater.label'), - detail: i18n.format('extension.iceworksApp.showExtensionsQuickPick.projectCreater.detail'), - command: 'iceworks-project-creator.start', }, - { label: i18n.format('extension.iceworksApp.showExtensionsQuickPick.pageBuilder.label'), - detail: i18n.format('extension.iceworksApp.showExtensionsQuickPick.pageBuilder.detail'), - command: 'iceworks-page-builder.create', }, - { label: i18n.format('extension.iceworksApp.showExtensionsQuickPick.generateComponent.label'), - detail: i18n.format('extension.iceworksApp.showExtensionsQuickPick.generateComponent.detail'), - command: 'iceworks-component-builder.generate' }, - { label: i18n.format('extension.iceworksApp.showExtensionsQuickPick.materialImport.label'), + { + label: i18n.format('extension.iceworksApp.showExtensionsQuickPick.projectCreater.label'), + detail: i18n.format('extension.iceworksApp.showExtensionsQuickPick.projectCreater.detail'), + command: 'iceworks-project-creator.start', + }, + { + label: i18n.format('extension.iceworksApp.showExtensionsQuickPick.pageBuilder.label'), + detail: i18n.format('extension.iceworksApp.showExtensionsQuickPick.pageBuilder.detail'), + command: 'iceworks-page-builder.create', + }, + { + label: i18n.format('extension.iceworksApp.showExtensionsQuickPick.generateComponent.label'), + detail: i18n.format('extension.iceworksApp.showExtensionsQuickPick.generateComponent.detail'), + command: 'iceworks-component-builder.generate', + }, + { + label: i18n.format('extension.iceworksApp.showExtensionsQuickPick.materialImport.label'), detail: i18n.format('extension.iceworksApp.showExtensionsQuickPick.materialImport.detail'), - command: 'iceworks-material-import.start' }, - ] + command: 'iceworks-material-import.start', + }, + ]; const quickPick = window.createQuickPick(); quickPick.items = extensionOptions.map((options) => ({ label: options.label, detail: options.detail })); - quickPick.onDidChangeSelection(selection => { + quickPick.onDidChangeSelection((selection) => { if (selection[0]) { - const currentExtension = extensionOptions.find(option => option.label === selection[0].label)!; + const currentExtension = extensionOptions.find((option) => option.label === selection[0].label)!; commands.executeCommand(currentExtension.command); quickPick.dispose(); } diff --git a/extensions/iceworks-app/src/services.ts b/extensions/iceworks-app/src/services.ts index f3079aff7..3bf116699 100644 --- a/extensions/iceworks-app/src/services.ts +++ b/extensions/iceworks-app/src/services.ts @@ -1,4 +1,4 @@ import * as common from '@iceworks/common-service'; import * as material from '@iceworks/material-service'; -export default { common, material }; \ No newline at end of file +export default { common, material }; diff --git a/extensions/iceworks-app/src/statusBar/createExtensionsStatusBar.ts b/extensions/iceworks-app/src/statusBar/createExtensionsStatusBar.ts index 21c6711f9..aded187d9 100644 --- a/extensions/iceworks-app/src/statusBar/createExtensionsStatusBar.ts +++ b/extensions/iceworks-app/src/statusBar/createExtensionsStatusBar.ts @@ -7,4 +7,4 @@ export default function createExtensionsStatusBar() { statusBarItem.command = showExtensionsQuickPickCommandId; statusBarItem.show(); return statusBarItem; -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/src/views/componentsView.ts b/extensions/iceworks-app/src/views/componentsView.ts index 30b4d9b69..06f26faee 100644 --- a/extensions/iceworks-app/src/views/componentsView.ts +++ b/extensions/iceworks-app/src/views/componentsView.ts @@ -10,7 +10,9 @@ class ComponentsProvider implements vscode.TreeDataProvider { private extensionContext: vscode.ExtensionContext; - private onDidChange: vscode.EventEmitter = new vscode.EventEmitter(); + private onDidChange: vscode.EventEmitter = new vscode.EventEmitter< + ComponentTreeItem | undefined + >(); readonly onDidChangeTreeData: vscode.Event = this.onDidChange.event; @@ -55,18 +57,18 @@ class ComponentsProvider implements vscode.TreeDataProvider { const command: vscode.Command = { command: 'iceworksApp.components.openFile', title: 'Open File', - arguments: [pageEntryPath] + arguments: [pageEntryPath], }; return new ComponentTreeItem(this.extensionContext, componentName, command); }; const dirNames = await fse.readdir(componentsPath); // except file - const componentNames = dirNames.filter(dirname => { + const componentNames = dirNames.filter((dirname) => { const stat = fse.statSync(path.join(componentsPath, dirname)); return stat.isDirectory(); }); - return componentNames.map(componentName => toComponent(componentName)); + return componentNames.map((componentName) => toComponent(componentName)); } else { return []; } @@ -87,7 +89,7 @@ class ComponentTreeItem extends vscode.TreeItem { iconPath = { dark: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/dark/component.svg')), - light: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/light/component.svg')) + light: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/light/component.svg')), }; contextValue = 'component'; @@ -108,4 +110,4 @@ export function createComponentsTreeProvider(context: vscode.ExtensionContext, r fileWatcher.onDidChange(() => componentsProvider.refresh()); fileWatcher.onDidCreate(() => componentsProvider.refresh()); fileWatcher.onDidDelete(() => componentsProvider.refresh()); -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/src/views/nodeDependenciesView.ts b/extensions/iceworks-app/src/views/nodeDependenciesView.ts index 42218f405..cf88cb8ce 100644 --- a/extensions/iceworks-app/src/views/nodeDependenciesView.ts +++ b/extensions/iceworks-app/src/views/nodeDependenciesView.ts @@ -5,11 +5,7 @@ import * as util from 'util'; import * as path from 'path'; import latestVersion from 'latest-version'; import { getPackageLocalVersion } from 'ice-npm-utils'; -import { - getDataFromSettingJson, - createNpmCommand, - checkPathExists -} from '@iceworks/common-service'; +import { getDataFromSettingJson, createNpmCommand, checkPathExists } from '@iceworks/common-service'; import { dependencyDir } from '@iceworks/project-service'; import executeCommand from '../commands/executeCommand'; import { NodeDepTypes } from '../types'; @@ -24,11 +20,12 @@ class DepNodeProvider implements vscode.TreeDataProvider { private extensionContext: vscode.ExtensionContext; - private onDidChange: vscode.EventEmitter = new vscode.EventEmitter(); + private onDidChange: vscode.EventEmitter = new vscode.EventEmitter< + DependencyTreeItem | undefined + >(); readonly onDidChangeTreeData: vscode.Event = this.onDidChange.event; - packageJsonPath: string; defaultVersion: string; @@ -55,11 +52,20 @@ class DepNodeProvider implements vscode.TreeDataProvider { if (element) { const { label } = element; - const deps = this.getDepsInPackageJson(this.packageJsonPath, (label as NodeDepTypes)); + const deps = this.getDepsInPackageJson(this.packageJsonPath, label as NodeDepTypes); return deps; } else { return Promise.resolve( - nodeDepTypes.map(nodeDepType => new DependencyTreeItem(this.extensionContext, nodeDepType, vscode.TreeItemCollapsibleState.Collapsed, nodeDepType))); + nodeDepTypes.map( + (nodeDepType) => + new DependencyTreeItem( + this.extensionContext, + nodeDepType, + vscode.TreeItemCollapsibleState.Collapsed, + nodeDepType + ) + ) + ); } } @@ -68,9 +74,9 @@ class DepNodeProvider implements vscode.TreeDataProvider { const version = getPackageLocalVersion(this.workspaceRoot, moduleName); return version; } catch (err) { - return this.defaultVersion; // when the package version is not found, it shows defaultVersion + return this.defaultVersion; // when the package version is not found, it shows defaultVersion } - }; + } private async getDepsInPackageJson(packageJsonPath: string, label: NodeDepTypes) { if (await checkPathExists(packageJsonPath)) { @@ -79,17 +85,19 @@ class DepNodeProvider implements vscode.TreeDataProvider { let deps: DependencyTreeItem[] = []; if (packageJson[label]) { - deps = await Promise.all(Object.keys(packageJson[label]).map(async dep => { - const version = this.getDepVersion(dep); - let outdated: boolean; - if (version === this.defaultVersion) { // when the package version is defaultVersion, don't show the outdated - outdated = false; - } else { - outdated = await this.getNpmOutdated(dep, version); - } - return toDep(this.extensionContext, workspaceDir, dep, version, outdated); - }) - ) + deps = await Promise.all( + Object.keys(packageJson[label]).map(async (dep) => { + const version = this.getDepVersion(dep); + let outdated: boolean; + if (version === this.defaultVersion) { + // when the package version is defaultVersion, don't show the outdated + outdated = false; + } else { + outdated = await this.getNpmOutdated(dep, version); + } + return toDep(this.extensionContext, workspaceDir, dep, version, outdated); + }) + ); } return deps; @@ -105,8 +113,8 @@ class DepNodeProvider implements vscode.TreeDataProvider { } catch (err) { console.error(err); return false; - }; - }; + } + } public async packageJsonExists() { return await checkPathExists(this.packageJsonPath); @@ -122,7 +130,7 @@ class DepNodeProvider implements vscode.TreeDataProvider { const command: vscode.Command = { command: 'iceworksApp.nodeDependencies.reinstall', title: 'Reinstall Dependencies', - arguments: [workspaceDir, npmCommand] + arguments: [workspaceDir, npmCommand], }; return command; } @@ -136,15 +144,15 @@ class DepNodeProvider implements vscode.TreeDataProvider { let extraAction = ''; if (isDevDep) { - extraAction = '-D' + extraAction = '-D'; } else if (isYarn) { - extraAction = '-S' + extraAction = '-S'; } const npmCommand = createNpmCommand(npmCommandAction, packageName, extraAction); const command: vscode.Command = { command: 'iceworksApp.nodeDependencies.addDepsAndDevDeps', title: 'Add Dependency', - arguments: [workspaceDir, npmCommand] + arguments: [workspaceDir, npmCommand], }; return command; } @@ -170,15 +178,19 @@ class DependencyTreeItem extends vscode.TreeItem { get contextValue(): string { if (this.version) { - return this.outDated ? 'outdatedDependency' : 'dependency' + return this.outDated ? 'outdatedDependency' : 'dependency'; } else { - return this.label + return this.label; } } iconPath = { - dark: vscode.Uri.file(this.extensionContext.asAbsolutePath(`assets/dark/${this.version ? 'dependency' : 'dependency-entry'}.svg`)), - light: vscode.Uri.file(this.extensionContext.asAbsolutePath(`assets/light/${this.version ? 'dependency' : 'dependency-entry'}.svg`)) + dark: vscode.Uri.file( + this.extensionContext.asAbsolutePath(`assets/dark/${this.version ? 'dependency' : 'dependency-entry'}.svg`) + ), + light: vscode.Uri.file( + this.extensionContext.asAbsolutePath(`assets/light/${this.version ? 'dependency' : 'dependency-entry'}.svg`) + ), }; } @@ -187,8 +199,7 @@ export function createNodeDependenciesTreeProvider(context, rootPath, terminals) vscode.window.registerTreeDataProvider('nodeDependencies', nodeDependenciesProvider); vscode.commands.registerCommand('iceworksApp.nodeDependencies.refresh', () => nodeDependenciesProvider.refresh()); vscode.commands.registerCommand('iceworksApp.nodeDependencies.upgrade', (node: DependencyTreeItem) => { - if (node.command) - executeCommand(terminals, node.command, node.id); + if (node.command) executeCommand(terminals, node.command, node.id); }); vscode.commands.registerCommand('iceworksApp.nodeDependencies.reinstall', async () => { if (await nodeDependenciesProvider.packageJsonExists()) { @@ -197,9 +208,21 @@ export function createNodeDependenciesTreeProvider(context, rootPath, terminals) } }); - context.subscriptions.push(vscode.commands.registerCommand('iceworksApp.nodeDependencies.dependencies.add', () => showDepsInputBox(terminals, nodeDependenciesProvider, 'dependencies'))); - context.subscriptions.push(vscode.commands.registerCommand('iceworksApp.nodeDependencies.devDependencies.add', () => showDepsInputBox(terminals, nodeDependenciesProvider, 'devDependencies'))); - context.subscriptions.push(vscode.commands.registerCommand('iceworksApp.nodeDependencies.addDepsAndDevDeps', () => showDepsQuickPick(terminals, nodeDependenciesProvider))); + context.subscriptions.push( + vscode.commands.registerCommand('iceworksApp.nodeDependencies.dependencies.add', () => + showDepsInputBox(terminals, nodeDependenciesProvider, 'dependencies') + ) + ); + context.subscriptions.push( + vscode.commands.registerCommand('iceworksApp.nodeDependencies.devDependencies.add', () => + showDepsInputBox(terminals, nodeDependenciesProvider, 'devDependencies') + ) + ); + context.subscriptions.push( + vscode.commands.registerCommand('iceworksApp.nodeDependencies.addDepsAndDevDeps', () => + showDepsQuickPick(terminals, nodeDependenciesProvider) + ) + ); const pattern = path.join(rootPath, dependencyDir); const fileWatcher = vscode.workspace.createFileSystemWatcher(pattern); @@ -208,16 +231,30 @@ export function createNodeDependenciesTreeProvider(context, rootPath, terminals) fileWatcher.onDidDelete(() => nodeDependenciesProvider.refresh()); } -function toDep(extensionContext: vscode.ExtensionContext, workspaceDir: string, moduleName: string, version: string, outdated: boolean) { +function toDep( + extensionContext: vscode.ExtensionContext, + workspaceDir: string, + moduleName: string, + version: string, + outdated: boolean +) { const packageManager = getDataFromSettingJson('packageManager'); const isYarn = packageManager === 'yarn'; const npmCommand = createNpmCommand(isYarn ? 'upgrade' : 'update', moduleName); - const command = outdated ? - { - command: 'iceworksApp.nodeDependencies.upgrade', - title: 'Upgrade Dependency', - arguments: [workspaceDir, npmCommand] - } : - undefined; - return new DependencyTreeItem(extensionContext, moduleName, vscode.TreeItemCollapsibleState.None, `nodeDependencies-${moduleName}`, command, version, outdated); -}; + const command = outdated + ? { + command: 'iceworksApp.nodeDependencies.upgrade', + title: 'Upgrade Dependency', + arguments: [workspaceDir, npmCommand], + } + : undefined; + return new DependencyTreeItem( + extensionContext, + moduleName, + vscode.TreeItemCollapsibleState.None, + `nodeDependencies-${moduleName}`, + command, + version, + outdated + ); +} diff --git a/extensions/iceworks-app/src/views/npmScriptsView.ts b/extensions/iceworks-app/src/views/npmScriptsView.ts index 561bc78e2..056671a77 100644 --- a/extensions/iceworks-app/src/views/npmScriptsView.ts +++ b/extensions/iceworks-app/src/views/npmScriptsView.ts @@ -13,7 +13,9 @@ export class NpmScriptsProvider implements vscode.TreeDataProvider = new vscode.EventEmitter(); + private onDidChange: vscode.EventEmitter = new vscode.EventEmitter< + ScriptTreeItem | undefined + >(); readonly onDidChangeTreeData: vscode.Event = this.onDidChange.event; @@ -50,19 +52,15 @@ export class NpmScriptsProvider implements vscode.TreeDataProvider toScript(script, packageJson.scripts[script], `npmScripts-${script}`)) + ? Object.keys(packageJson.scripts).map((script) => + toScript(script, packageJson.scripts[script], `npmScripts-${script}`) + ) : []; return scripts; } else { @@ -85,35 +83,41 @@ export class ScriptTreeItem extends vscode.TreeItem { iconPath = { dark: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/dark/tool.svg')), - light: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/light/tool.svg')) + light: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/light/tool.svg')), }; contextValue = 'script'; } -export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, rootPath: string, terminals: ITerminalMap) { - vscode.window.onDidCloseTerminal(term => terminals.delete(term.name)); +export function createNpmScriptsTreeProvider( + context: vscode.ExtensionContext, + rootPath: string, + terminals: ITerminalMap +) { + vscode.window.onDidCloseTerminal((term) => terminals.delete(term.name)); const npmScriptsProvider = new NpmScriptsProvider(context, rootPath); vscode.window.registerTreeDataProvider('npmScripts', npmScriptsProvider); vscode.commands.registerCommand('iceworksApp.npmScripts.run', async (script: ScriptTreeItem) => { - if (!await checkPathExists(rootPath, dependencyDir)) { - script.command.arguments = [rootPath, `${createNpmCommand('install')} && ${script.command.arguments![1]}`] + if (!(await checkPathExists(rootPath, dependencyDir))) { + script.command.arguments = [rootPath, `${createNpmCommand('install')} && ${script.command.arguments![1]}`]; executeCommand(terminals, script.command, script.id); return; } executeCommand(terminals, script.command, script.id); }); - vscode.commands.registerCommand('iceworksApp.npmScripts.stop', (script: ScriptTreeItem) => stopCommand(terminals, script.id)); + vscode.commands.registerCommand('iceworksApp.npmScripts.stop', (script: ScriptTreeItem) => + stopCommand(terminals, script.id) + ); vscode.commands.registerCommand('iceworksApp.npmScripts.refresh', () => npmScriptsProvider.refresh()); - // commands in editor title + // commands in editor title vscode.commands.registerCommand('iceworksApp.npmScripts.runDev', async () => { const pathExists = await checkPathExists(rootPath, dependencyDir); const command: vscode.Command = { command: 'iceworksApp.npmScripts.runDev', title: 'Run Dev', - arguments: [rootPath, createNpmCommand('run', 'start')] + arguments: [rootPath, createNpmCommand('run', 'start')], }; const commandId = editorTitleRunDevCommandId; if (!pathExists) { @@ -135,7 +139,7 @@ export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, r const command: vscode.Command = { command: 'iceworksApp.npmScripts.runBuild', title: 'Run Build', - arguments: [rootPath, createNpmCommand('run', 'build')] + arguments: [rootPath, createNpmCommand('run', 'build')], }; const commandId = editorTitleRunBuildCommandId; if (!pathExists) { @@ -143,7 +147,7 @@ export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, r executeCommand(terminals, command, commandId); return; } - executeCommand(terminals, command, commandId) + executeCommand(terminals, command, commandId); }); const pattern = path.join(rootPath, packageJSONFilename); @@ -151,4 +155,4 @@ export function createNpmScriptsTreeProvider(context: vscode.ExtensionContext, r fileWatcher.onDidChange(() => npmScriptsProvider.refresh()); fileWatcher.onDidCreate(() => npmScriptsProvider.refresh()); fileWatcher.onDidDelete(() => npmScriptsProvider.refresh()); -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/src/views/pagesView.ts b/extensions/iceworks-app/src/views/pagesView.ts index 1c60a2810..d48fa9960 100644 --- a/extensions/iceworks-app/src/views/pagesView.ts +++ b/extensions/iceworks-app/src/views/pagesView.ts @@ -10,7 +10,9 @@ export class PagesProvider implements vscode.TreeDataProvider { private extensionContext: vscode.ExtensionContext; - private onDidChange: vscode.EventEmitter = new vscode.EventEmitter(); + private onDidChange: vscode.EventEmitter = new vscode.EventEmitter< + PageTreeItem | undefined + >(); readonly onDidChangeTreeData: vscode.Event = this.onDidChange.event; @@ -48,17 +50,17 @@ export class PagesProvider implements vscode.TreeDataProvider { const command: vscode.Command = { command: 'iceworksApp.pages.openFile', title: 'Open File', - arguments: [pageEntryPath] + arguments: [pageEntryPath], }; return new PageTreeItem(this.extensionContext, pageName, command); }; const dirNames = await fse.readdir(pagesPath); // except the file - const pageNames = dirNames.filter(dirname => { - const stat = fse.statSync(path.join(pagesPath, dirname)) + const pageNames = dirNames.filter((dirname) => { + const stat = fse.statSync(path.join(pagesPath, dirname)); return stat.isDirectory(); - }) - return pageNames.map(pageName => toPage(pageName)); + }); + return pageNames.map((pageName) => toPage(pageName)); } else { return []; } @@ -76,7 +78,7 @@ class PageTreeItem extends vscode.TreeItem { iconPath = { dark: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/dark/page.svg')), - light: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/light/page.svg')) + light: vscode.Uri.file(this.extensionContext.asAbsolutePath('assets/light/page.svg')), }; contextValue = 'page'; @@ -97,4 +99,4 @@ export function createPagesTreeProvider(context: vscode.ExtensionContext, rootPa fileWatcher.onDidChange(() => pagesProvider.refresh()); fileWatcher.onDidCreate(() => pagesProvider.refresh()); fileWatcher.onDidDelete(() => pagesProvider.refresh()); -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/tsconfig.json b/extensions/iceworks-app/tsconfig.json index 62feb6adc..69f4c7550 100644 --- a/extensions/iceworks-app/tsconfig.json +++ b/extensions/iceworks-app/tsconfig.json @@ -1,15 +1,11 @@ { - "extends": "../../tsconfig.extension.json", - "compilerOptions": { - "outDir": "build", - "rootDir": "./", - "noImplicitAny": false, - "resolveJsonModule": true - }, - "include": [ - "src" - ], - "exclude": [ - ".vscode-test" - ] -} \ No newline at end of file + "extends": "../../tsconfig.extension.json", + "compilerOptions": { + "outDir": "build", + "rootDir": "./", + "noImplicitAny": false, + "resolveJsonModule": true + }, + "include": ["src"], + "exclude": [".vscode-test"] +} diff --git a/extensions/iceworks-app/web/build.json b/extensions/iceworks-app/web/build.json index ae0a6cb98..81682baa5 100644 --- a/extensions/iceworks-app/web/build.json +++ b/extensions/iceworks-app/web/build.json @@ -18,9 +18,7 @@ [ "build-plugin-moment-locales", { - "locales": [ - "zh-cn" - ] + "locales": ["zh-cn"] } ], [ @@ -30,4 +28,4 @@ } ] ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-app/web/src/app.tsx b/extensions/iceworks-app/web/src/app.tsx index 97814e62a..c04f11345 100644 --- a/extensions/iceworks-app/web/src/app.tsx +++ b/extensions/iceworks-app/web/src/app.tsx @@ -4,7 +4,7 @@ import { createApp } from 'ice'; const appConfig = { app: { rootId: 'ice-container', - } + }, }; createApp(appConfig); diff --git a/extensions/iceworks-app/web/src/constants.ts b/extensions/iceworks-app/web/src/constants.ts index 7361a8f13..a3ed8e7e7 100644 --- a/extensions/iceworks-app/web/src/constants.ts +++ b/extensions/iceworks-app/web/src/constants.ts @@ -2,10 +2,7 @@ import { ALI_NPM_REGISTRY } from '@iceworks/constant'; export const packageManagers = ['npm', 'cnpm', 'yarn']; -export const npmRegistries = [ - 'https://registry.npmjs.org', - 'https://registry.npm.taobao.org' -] +export const npmRegistries = ['https://registry.npmjs.org', 'https://registry.npm.taobao.org']; export const AliNpmRegistry = ALI_NPM_REGISTRY; @@ -14,4 +11,4 @@ export const AliPackageManager = 'tnpm'; export const urlRegExp = new RegExp( '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', 'i' -) \ No newline at end of file +); diff --git a/extensions/iceworks-app/web/src/i18n.tsx b/extensions/iceworks-app/web/src/i18n.tsx index bf92a74cf..a82e9b0f7 100644 --- a/extensions/iceworks-app/web/src/i18n.tsx +++ b/extensions/iceworks-app/web/src/i18n.tsx @@ -1,5 +1,5 @@ -import { createIntl, RawIntlProvider } from 'react-intl'; -import React, { useEffect, useState } from 'react' +import { createIntl, RawIntlProvider } from 'react-intl'; +import React, { useEffect, useState } from 'react'; import { ConfigProvider, Loading } from '@alifd/next'; import enUSNextMessages from '@alifd/next/lib/locale/en-us'; import zhCNNextMessages from '@alifd/next/lib/locale/zh-cn'; @@ -11,46 +11,50 @@ import zhCNMessages from './locales/zh-CN.json'; const DEFAULT_LOCALE = 'zh-cn'; export const localeMessages = { - 'en': { + en: { messages: enUSMessages, nextMessages: enUSNextMessages, }, - 'zh-cn':{ + 'zh-cn': { messages: zhCNMessages, nextMessages: zhCNNextMessages, }, }; -const getIntl = (locale: string) =>{ +const getIntl = (locale: string) => { let localeMessage = localeMessages[locale]; if (!localeMessage) { locale = DEFAULT_LOCALE; localeMessage = localeMessages[locale]; } - return createIntl({locale, messages: localeMessage.messages}); -} -export const LocaleProvider = (props)=>{ + return createIntl({ locale, messages: localeMessage.messages }); +}; +export const LocaleProvider = (props) => { const [i18n, setI18n] = useState(() => getIntl(DEFAULT_LOCALE)); - const [loading, setLoading] = useState(true) - useEffect(()=>{ - async function initI18n(){ + const [loading, setLoading] = useState(true); + useEffect(() => { + async function initI18n() { try { const lang = await callService('common', 'getLanguage'); setI18n(getIntl(lang)); - } catch(e) { + } catch (e) { // ignore i18n error, just using default language } finally { setLoading(false); } } initI18n(); - },[]); + }, []); return ( - {loading ? : React.Children.only(props.children)} + {loading ? ( + + ) : ( + React.Children.only(props.children) + )} - ) -} \ No newline at end of file + ); +}; diff --git a/extensions/iceworks-app/web/src/locales/en-US.json b/extensions/iceworks-app/web/src/locales/en-US.json index e548616a8..63bd8f7e4 100644 --- a/extensions/iceworks-app/web/src/locales/en-US.json +++ b/extensions/iceworks-app/web/src/locales/en-US.json @@ -1,27 +1,27 @@ { - "web.iceworksApp.customMaterialSource.confirmDelete": "Are you sure to delete the material source?", - "web.iceworksApp.customMaterialSource.editMaterialSource": "Edit Material Source", - "web.iceworksApp.customMaterialSource.addMaterialSource": "Add Material Source", - "web.iceworksApp.customMaterialSource.customMaterialSource": "Custom Material Source", - "web.iceworksApp.customMaterialSource.add": "Add", - "web.iceworksApp.customMaterialSource.loading": "Loading", - "web.iceworksApp.index.CUSTOM_NPM_REGISTRY_SELECT_KEY": "Custom NPM Registry", - "web.iceworksApp.index.addMaterialSuccess": "Added material source successfully", - "web.iceworksApp.index.editMaterialSuccess": "Modified material source successfully", - "web.iceworksApp.index.deleteMaterialSuccess": "Material source deleted successfully", - "web.iceworksApp.index.editSettingSuccess": "Setting up completed successfully ", - "web.iceworksApp.index.npmPackageManager": "Npm Packages Manager", - "web.iceworksApp.index.chooseNpmPackageManager": "Choose NPM Packages Mananger", - "web.iceworksApp.index.npmRegistry": "Npm Registry", - "web.iceworksApp.index.chooseNpmRegistry": "Choose NPM Registry", - "web.iceworksApp.index.formatUrl": "Enter A NPM Registry Url", - "web.iceworksApp.index.customNpmRegistryPlaceHolder": "Custom NPM Registry", - "web.iceworksApp.MaterialSourceForm.materialNameLabel": "Material Name:", - "web.iceworksApp.MaterialSourceForm.materialName": "Please Enter Material Name", - "web.iceworksApp.MaterialSourceForm.materiaURLLabel": "Material URL", - "web.iceworksApp.MaterialSourceForm.materiaURL": "Please Enter Material URL", - "web.iceworksApp.MaterialSourceForm.materialDescriptionLabel": "Material Description:", - "web.iceworksApp.MaterialSourceForm.materialDescription": "Please Enter Material Description", - "web.iceworksApp.MaterialSourceForm.confirm": "Confirm", - "web.iceworksApp.MaterialSourceForm.cancel": "Cancel" -} \ No newline at end of file + "web.iceworksApp.customMaterialSource.confirmDelete": "Are you sure to delete the material source?", + "web.iceworksApp.customMaterialSource.editMaterialSource": "Edit Material Source", + "web.iceworksApp.customMaterialSource.addMaterialSource": "Add Material Source", + "web.iceworksApp.customMaterialSource.customMaterialSource": "Custom Material Source", + "web.iceworksApp.customMaterialSource.add": "Add", + "web.iceworksApp.customMaterialSource.loading": "Loading", + "web.iceworksApp.index.CUSTOM_NPM_REGISTRY_SELECT_KEY": "Custom NPM Registry", + "web.iceworksApp.index.addMaterialSuccess": "Added material source successfully", + "web.iceworksApp.index.editMaterialSuccess": "Modified material source successfully", + "web.iceworksApp.index.deleteMaterialSuccess": "Material source deleted successfully", + "web.iceworksApp.index.editSettingSuccess": "Setting up completed successfully ", + "web.iceworksApp.index.npmPackageManager": "Npm Packages Manager", + "web.iceworksApp.index.chooseNpmPackageManager": "Choose NPM Packages Mananger", + "web.iceworksApp.index.npmRegistry": "Npm Registry", + "web.iceworksApp.index.chooseNpmRegistry": "Choose NPM Registry", + "web.iceworksApp.index.formatUrl": "Enter A NPM Registry Url", + "web.iceworksApp.index.customNpmRegistryPlaceHolder": "Custom NPM Registry", + "web.iceworksApp.MaterialSourceForm.materialNameLabel": "Material Name:", + "web.iceworksApp.MaterialSourceForm.materialName": "Please Enter Material Name", + "web.iceworksApp.MaterialSourceForm.materiaURLLabel": "Material URL", + "web.iceworksApp.MaterialSourceForm.materiaURL": "Please Enter Material URL", + "web.iceworksApp.MaterialSourceForm.materialDescriptionLabel": "Material Description:", + "web.iceworksApp.MaterialSourceForm.materialDescription": "Please Enter Material Description", + "web.iceworksApp.MaterialSourceForm.confirm": "Confirm", + "web.iceworksApp.MaterialSourceForm.cancel": "Cancel" +} diff --git a/extensions/iceworks-app/web/src/locales/zh-CN.json b/extensions/iceworks-app/web/src/locales/zh-CN.json index ab881f123..0003be67c 100644 --- a/extensions/iceworks-app/web/src/locales/zh-CN.json +++ b/extensions/iceworks-app/web/src/locales/zh-CN.json @@ -1,27 +1,27 @@ { - "web.iceworksApp.customMaterialSource.confirmDelete": "是否确定删除该物料源?", - "web.iceworksApp.customMaterialSource.editMaterialSource": "编辑物料源", - "web.iceworksApp.customMaterialSource.addMaterialSource": "新增物料源", - "web.iceworksApp.customMaterialSource.customMaterialSource": "自定义物料源", - "web.iceworksApp.customMaterialSource.add": "添加", - "web.iceworksApp.customMaterialSource.loading": "加载中...", - "web.iceworksApp.index.CUSTOM_NPM_REGISTRY_SELECT_KEY": "npm - 自定义镜像源", - "web.iceworksApp.index.addMaterialSuccess": "新增物料源成功", - "web.iceworksApp.index.editMaterialSuccess": "修改物料源成功", - "web.iceworksApp.index.deleteMaterialSuccess": "删除物料源成功", - "web.iceworksApp.index.editSettingSuccess": "设置成功", - "web.iceworksApp.index.npmPackageManager": "npm 包管理工具", - "web.iceworksApp.index.chooseNpmPackageManager": "请选择 npm 包管理工具", - "web.iceworksApp.index.npmRegistry": "npm 镜像源", - "web.iceworksApp.index.chooseNpmRegistry": "请选择 npm 镜像源", - "web.iceworksApp.index.formatUrl": "请输入正确的 url", - "web.iceworksApp.index.customNpmRegistryPlaceHolder": "请输入自定义 npm 镜像源", - "web.iceworksApp.MaterialSourceForm.materialNameLabel": "物料名称:", - "web.iceworksApp.MaterialSourceForm.materialName": "请输入物料名称", - "web.iceworksApp.MaterialSourceForm.materiaURLLabel": "物料地址:", - "web.iceworksApp.MaterialSourceForm.materiaURL": "请输入物料地址", - "web.iceworksApp.MaterialSourceForm.materialDescriptionLabel": "物料描述:", - "web.iceworksApp.MaterialSourceForm.materialDescription": "请输入物料描述", - "web.iceworksApp.MaterialSourceForm.confirm": "确定", - "web.iceworksApp.MaterialSourceForm.cancel": "取消" -} \ No newline at end of file + "web.iceworksApp.customMaterialSource.confirmDelete": "是否确定删除该物料源?", + "web.iceworksApp.customMaterialSource.editMaterialSource": "编辑物料源", + "web.iceworksApp.customMaterialSource.addMaterialSource": "新增物料源", + "web.iceworksApp.customMaterialSource.customMaterialSource": "自定义物料源", + "web.iceworksApp.customMaterialSource.add": "添加", + "web.iceworksApp.customMaterialSource.loading": "加载中...", + "web.iceworksApp.index.CUSTOM_NPM_REGISTRY_SELECT_KEY": "npm - 自定义镜像源", + "web.iceworksApp.index.addMaterialSuccess": "新增物料源成功", + "web.iceworksApp.index.editMaterialSuccess": "修改物料源成功", + "web.iceworksApp.index.deleteMaterialSuccess": "删除物料源成功", + "web.iceworksApp.index.editSettingSuccess": "设置成功", + "web.iceworksApp.index.npmPackageManager": "npm 包管理工具", + "web.iceworksApp.index.chooseNpmPackageManager": "请选择 npm 包管理工具", + "web.iceworksApp.index.npmRegistry": "npm 镜像源", + "web.iceworksApp.index.chooseNpmRegistry": "请选择 npm 镜像源", + "web.iceworksApp.index.formatUrl": "请输入正确的 url", + "web.iceworksApp.index.customNpmRegistryPlaceHolder": "请输入自定义 npm 镜像源", + "web.iceworksApp.MaterialSourceForm.materialNameLabel": "物料名称:", + "web.iceworksApp.MaterialSourceForm.materialName": "请输入物料名称", + "web.iceworksApp.MaterialSourceForm.materiaURLLabel": "物料地址:", + "web.iceworksApp.MaterialSourceForm.materiaURL": "请输入物料地址", + "web.iceworksApp.MaterialSourceForm.materialDescriptionLabel": "物料描述:", + "web.iceworksApp.MaterialSourceForm.materialDescription": "请输入物料描述", + "web.iceworksApp.MaterialSourceForm.confirm": "确定", + "web.iceworksApp.MaterialSourceForm.cancel": "取消" +} diff --git a/extensions/iceworks-app/web/src/pages/ConfigHelper/CustomMaterialSource.tsx b/extensions/iceworks-app/web/src/pages/ConfigHelper/CustomMaterialSource.tsx index 380df1bc6..0036541aa 100644 --- a/extensions/iceworks-app/web/src/pages/ConfigHelper/CustomMaterialSource.tsx +++ b/extensions/iceworks-app/web/src/pages/ConfigHelper/CustomMaterialSource.tsx @@ -10,7 +10,7 @@ import styles from './CustomMaterialSource.module.scss'; enum Operation { Edit, Delete, - Create + Create, } interface ICustomMaterialSource { @@ -24,7 +24,7 @@ const CustomMaterialSource: React.FC = ({ sources = [], onSourceAdd, onSourceEdit, - onSourceDelete + onSourceDelete, }) => { const intl = useIntl(); const [visible, setVisible] = useState(false); @@ -40,49 +40,56 @@ const CustomMaterialSource: React.FC = ({ onSourceAdd(values); } if (Operation.Edit === operation) { - onSourceEdit(values, currentMaterialSource as IMaterialSource) + onSourceEdit(values, currentMaterialSource as IMaterialSource); } onDialogCancel(); - } + }; const onAdd = () => { setOperation(Operation.Create); setCurrentMaterialSource({}); - onDialogShow() - } + onDialogShow(); + }; const onEdit = (materialSource: IMaterialSource) => { setOperation(Operation.Edit); setCurrentMaterialSource(materialSource); onDialogShow(); - } + }; const onDelete = (materialSource: IMaterialSource) => { - Dialog.confirm({ title: 'Confirm', - content: intl.formatMessage({id:'web.iceworksApp.customMaterialSource.confirmDelete'}), - onOk: () => onSourceDelete(materialSource) + content: intl.formatMessage({ id: 'web.iceworksApp.customMaterialSource.confirmDelete' }), + onOk: () => onSourceDelete(materialSource), }); - } - const dialogTitle = operation === Operation.Edit ? - intl.formatMessage({id:'web.iceworksApp.customMaterialSource.editMaterialSource'}): - intl.formatMessage({id:'web.iceworksApp.customMaterialSource.addMaterialSource'}); + }; + const dialogTitle = + operation === Operation.Edit + ? intl.formatMessage({ id: 'web.iceworksApp.customMaterialSource.editMaterialSource' }) + : intl.formatMessage({ id: 'web.iceworksApp.customMaterialSource.addMaterialSource' }); return (
- -
+ + + +
+ +
- + {sources.map((source: IMaterialSource) => ( {source.name.slice(0, 1).toLocaleUpperCase()}} extra={
- edit onEdit(source)} /> - delete onDelete(source)} /> + edit onEdit(source)} /> + delete onDelete(source)} />
} title={source.name} @@ -93,7 +100,7 @@ const CustomMaterialSource: React.FC = ({ ))}
- + = ({ />
- ) -} + ); +}; export default CustomMaterialSource; diff --git a/extensions/iceworks-app/web/src/pages/ConfigHelper/MaterialSourceForm.tsx b/extensions/iceworks-app/web/src/pages/ConfigHelper/MaterialSourceForm.tsx index 34d1eaa37..b074524dd 100644 --- a/extensions/iceworks-app/web/src/pages/ConfigHelper/MaterialSourceForm.tsx +++ b/extensions/iceworks-app/web/src/pages/ConfigHelper/MaterialSourceForm.tsx @@ -31,32 +31,44 @@ const MaterialSourceForm: React.FC = ({ title, value, onSub onClose={onCancel} >
- - + + - - + + - - + + - - + + - ) -} + ); +}; export default MaterialSourceForm; diff --git a/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx b/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx index 250828c4a..e39d56645 100644 --- a/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx +++ b/extensions/iceworks-app/web/src/pages/ConfigHelper/index.tsx @@ -4,8 +4,8 @@ import { debounce } from 'throttle-debounce'; import { IMaterialSource } from '@iceworks/material-utils'; import { packageManagers, npmRegistries, AliNpmRegistry, AliPackageManager, urlRegExp } from '@/constants'; import callService from '@/callService'; -import { useIntl } from 'react-intl' -import { LocaleProvider} from '../../i18n'; +import { useIntl } from 'react-intl'; +import { LocaleProvider } from '../../i18n'; import CustomMaterialSource from './CustomMaterialSource'; import styles from './index.module.scss'; @@ -13,12 +13,12 @@ const FormItem = Form.Item; const formItemLayout = { labelCol: { span: 14 }, - wrapperCol: { span: 10 } + wrapperCol: { span: 10 }, }; const CUSTOM_NPM_REGISTRY_FORM_ITEM_KEY = 'customNpmRegistry'; const CUSTOM_NPM_REGISTRY_SELECT_KEY = 'npm - 自定义镜像源'; -const ConfigHelper = ( props ) => { +const ConfigHelper = (props) => { const [materialSources, setMaterialSources] = useState([]); const [fields, setFields] = useState({}); const [loading, setLoading] = useState(false); @@ -28,31 +28,31 @@ const ConfigHelper = ( props ) => { try { const newMaterialSources = await callService('material', 'addSource', materialSource); setMaterialSources(newMaterialSources); - Notification.success({ content: intl.formatMessage({id:'web.iceworksApp.index.addMaterialSuccess'}) }); + Notification.success({ content: intl.formatMessage({ id: 'web.iceworksApp.index.addMaterialSuccess' }) }); } catch (e) { Notification.error({ content: e.message }); } - } + }; const onMaterialSourceEdit = async (materialSource: IMaterialSource, originMaterialSource: IMaterialSource) => { try { const newMaterialSources = await callService('material', 'updateSource', materialSource, originMaterialSource); setMaterialSources(newMaterialSources); - Notification.success({ content: intl.formatMessage({id:'web.iceworksApp.index.editMaterialSuccess'}) }); + Notification.success({ content: intl.formatMessage({ id: 'web.iceworksApp.index.editMaterialSuccess' }) }); } catch (e) { Notification.error({ content: e.message }); } - } + }; const onMaterialSourceDelete = async (materialSource: IMaterialSource) => { try { const newMaterialSources = await callService('material', 'removeSource', materialSource.source); setMaterialSources(newMaterialSources); - Notification.success({ content: intl.formatMessage({id:'web.iceworksApp.index.deleteMaterialSuccess'}) }); + Notification.success({ content: intl.formatMessage({ id: 'web.iceworksApp.index.deleteMaterialSuccess' }) }); } catch (e) { Notification.error({ content: e.message }); } - } + }; const onFormChange = debounce(800, async (values, items) => { setFields(values); try { @@ -60,8 +60,7 @@ const ConfigHelper = ( props ) => { if (name === 'npmRegistry' && value === CUSTOM_NPM_REGISTRY_SELECT_KEY) { return; } - if (name === CUSTOM_NPM_REGISTRY_FORM_ITEM_KEY && - !urlRegExp.test(value)) { + if (name === CUSTOM_NPM_REGISTRY_FORM_ITEM_KEY && !urlRegExp.test(value)) { return; } if (name === CUSTOM_NPM_REGISTRY_FORM_ITEM_KEY) { @@ -69,11 +68,11 @@ const ConfigHelper = ( props ) => { } else { await callService('common', 'saveDataToSettingJson', name, value); } - Notification.success({ content: intl.formatMessage({id:'web.iceworksApp.index.editSettingSuccess'}) }); + Notification.success({ content: intl.formatMessage({ id: 'web.iceworksApp.index.editSettingSuccess' }) }); } catch (e) { Notification.error({ content: e.message }); } - }) + }); useEffect(() => { async function initFormData() { @@ -82,7 +81,7 @@ const ConfigHelper = ( props ) => { const curPackageManager = await callService('common', 'getDataFromSettingJson', 'packageManager'); let curNpmRegistry = await callService('common', 'getDataFromSettingJson', 'npmRegistry'); const curMaterialSources = await callService('material', 'getUserSources'); - const isAliInternal = await callService('common', 'checkIsAliInternal') as boolean; + const isAliInternal = (await callService('common', 'checkIsAliInternal')) as boolean; if (isAliInternal) { npmRegistries.push(AliNpmRegistry); packageManagers.push(AliPackageManager); @@ -108,26 +107,47 @@ const ConfigHelper = ( props ) => { }, []); return ( <> - {loading ? : ( + {loading ? ( + + ) : (
-
- - + {packageManagers.map((item) => ( + + {item} + ))} - - + {npmRegistries.map((item) => ( + + {item} + ))} {fields.npmRegistry === CUSTOM_NPM_REGISTRY_SELECT_KEY && ( - - + + )} @@ -140,15 +160,15 @@ const ConfigHelper = ( props ) => {
)} - ) -} + ); +}; -const IntlConfigHelper = ()=>{ +const IntlConfigHelper = () => { return ( - + - ) -} + ); +}; export default IntlConfigHelper; diff --git a/extensions/iceworks-app/web/src/routes.ts b/extensions/iceworks-app/web/src/routes.ts index 5e5f52a75..9dc980de4 100644 --- a/extensions/iceworks-app/web/src/routes.ts +++ b/extensions/iceworks-app/web/src/routes.ts @@ -3,8 +3,8 @@ import ConfigHelper from '@/pages/ConfigHelper'; const routerConfig = [ { path: '/', - component: ConfigHelper - } + component: ConfigHelper, + }, ]; export default routerConfig; diff --git a/extensions/iceworks-app/web/tsconfig.json b/extensions/iceworks-app/web/tsconfig.json index 91ccbe96d..a83b4ad1a 100644 --- a/extensions/iceworks-app/web/tsconfig.json +++ b/extensions/iceworks-app/web/tsconfig.json @@ -5,24 +5,12 @@ "outDir": "build", "rootDir": "./", "paths": { - "@/*": [ - "./src/*" - ], - "ice": [ - ".ice/index.ts" - ], - "ice/*": [ - ".ice/pages/*" - ] + "@/*": ["./src/*"], + "ice": [".ice/index.ts"], + "ice/*": [".ice/pages/*"] }, "resolveJsonModule": true }, - "include": [ - "src/*", - ".ice" - ], - "exclude": [ - "node_modules", - "public" - ] -} \ No newline at end of file + "include": ["src/*", ".ice"], + "exclude": ["node_modules", "public"] +} diff --git a/extensions/iceworks-app/webpack.config.js b/extensions/iceworks-app/webpack.config.js index 7dca9a1ab..4a17ef74f 100644 --- a/extensions/iceworks-app/webpack.config.js +++ b/extensions/iceworks-app/webpack.config.js @@ -8,13 +8,13 @@ const config = { path: path.resolve(__dirname, 'build'), filename: 'extension.js', libraryTarget: 'commonjs2', - devtoolModuleFilenameTemplate: '../[resource-path]' + devtoolModuleFilenameTemplate: '../[resource-path]', }, externals: { - vscode: 'commonjs vscode' + vscode: 'commonjs vscode', }, resolve: { - extensions: ['.ts', '.js'] + extensions: ['.ts', '.js'], }, module: { rules: [ @@ -27,11 +27,11 @@ const config = { transpileOnly: true, configFile: tsConfigPath, }, - } - ] - } - ] - } + }, + ], + }, + ], + }, }; module.exports = (env, argv) => { diff --git a/extensions/iceworks-component-builder/.vscode/launch.json b/extensions/iceworks-component-builder/.vscode/launch.json index bbcb24370..e5ea897b0 100644 --- a/extensions/iceworks-component-builder/.vscode/launch.json +++ b/extensions/iceworks-component-builder/.vscode/launch.json @@ -10,13 +10,9 @@ "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/build/*.js" - ], + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/build/*.js"], "preLaunchTask": "npm: webpack" - }, + } ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-component-builder/package.json b/extensions/iceworks-component-builder/package.json index fff486a8b..ff4283689 100644 --- a/extensions/iceworks-component-builder/package.json +++ b/extensions/iceworks-component-builder/package.json @@ -116,4 +116,4 @@ "url": "https://github.com/ice-lab/iceworks/issues", "email": "iceworksteam@163.com" } -} \ No newline at end of file +} diff --git a/extensions/iceworks-component-builder/package.nls.json b/extensions/iceworks-component-builder/package.nls.json index 9f5c558c5..49be95c67 100644 --- a/extensions/iceworks-component-builder/package.nls.json +++ b/extensions/iceworks-component-builder/package.nls.json @@ -3,4 +3,4 @@ "iceworksComponentBuilder.configuration.properties.iceworks.npmRegistry.description": "Iceworks npm registry.", "iceworksComponentBuilder.configuration.properties.iceworks.materialSources.description": "Iceworks material sources, decide which materials to use.", "iceworksComponentBuilder.commands.generate.title": "Iceworks: Generate Component" -} \ No newline at end of file +} diff --git a/extensions/iceworks-component-builder/package.nls.zh-cn.json b/extensions/iceworks-component-builder/package.nls.zh-cn.json index e03bd5ae8..6657722aa 100644 --- a/extensions/iceworks-component-builder/package.nls.zh-cn.json +++ b/extensions/iceworks-component-builder/package.nls.zh-cn.json @@ -3,4 +3,4 @@ "iceworksComponentBuilder.configuration.properties.iceworks.npmRegistry.description": "Iceworks npm 镜像源", "iceworksComponentBuilder.configuration.properties.iceworks.materialSources.description": "Iceworks 物料源,决定使用哪些物料。", "iceworksComponentBuilder.commands.generate.title": "Iceworks: 生成组件" -} \ No newline at end of file +} diff --git a/extensions/iceworks-component-builder/src/extension.ts b/extensions/iceworks-component-builder/src/extension.ts index 387ac40c7..a6de9a73a 100644 --- a/extensions/iceworks-component-builder/src/extension.ts +++ b/extensions/iceworks-component-builder/src/extension.ts @@ -23,16 +23,23 @@ export function activate(context: vscode.ExtensionContext) { initExtension(context); function activeWebview() { - const webviewPanel: vscode.WebviewPanel = window.createWebviewPanel('iceworks', i18n.format('extension.iceworksComponentBuilder.extension.webviewTitle'), ViewColumn.One, { - enableScripts: true, - retainContextWhenHidden: true, - }); + const webviewPanel: vscode.WebviewPanel = window.createWebviewPanel( + 'iceworks', + i18n.format('extension.iceworksComponentBuilder.extension.webviewTitle'), + ViewColumn.One, + { + enableScripts: true, + retainContextWhenHidden: true, + } + ); webviewPanel.webview.html = getHtmlForWebview(extensionPath); connectService(webviewPanel, context, { services, logger }); } - subscriptions.push(vscode.commands.registerCommand('iceworks-component-builder.generate', function () { - activeWebview(); - })); + subscriptions.push( + vscode.commands.registerCommand('iceworks-component-builder.generate', function () { + activeWebview(); + }) + ); } -export function deactivate() { } +export function deactivate() {} diff --git a/extensions/iceworks-component-builder/src/i18n.ts b/extensions/iceworks-component-builder/src/i18n.ts index 1c87e8efe..cf9fade77 100644 --- a/extensions/iceworks-component-builder/src/i18n.ts +++ b/extensions/iceworks-component-builder/src/i18n.ts @@ -12,4 +12,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/extensions/iceworks-component-builder/src/locales/en-US.json b/extensions/iceworks-component-builder/src/locales/en-US.json index 16c8c6915..250efc87a 100644 --- a/extensions/iceworks-component-builder/src/locales/en-US.json +++ b/extensions/iceworks-component-builder/src/locales/en-US.json @@ -1,3 +1,3 @@ { - "extension.iceworksComponentBuilder.extension.webviewTitle": "Create Component - Iceworks" -} \ No newline at end of file + "extension.iceworksComponentBuilder.extension.webviewTitle": "Create Component - Iceworks" +} diff --git a/extensions/iceworks-component-builder/src/locales/zh-CN.json b/extensions/iceworks-component-builder/src/locales/zh-CN.json index c4dcd7b93..56f3c0229 100644 --- a/extensions/iceworks-component-builder/src/locales/zh-CN.json +++ b/extensions/iceworks-component-builder/src/locales/zh-CN.json @@ -1,3 +1,3 @@ { - "extension.iceworksComponentBuilder.extension.webviewTitle": "生成组件 - Iceworks" -} \ No newline at end of file + "extension.iceworksComponentBuilder.extension.webviewTitle": "生成组件 - Iceworks" +} diff --git a/extensions/iceworks-component-builder/src/services/block.ts b/extensions/iceworks-component-builder/src/services/block.ts index f28c91edb..a303c15b7 100644 --- a/extensions/iceworks-component-builder/src/services/block.ts +++ b/extensions/iceworks-component-builder/src/services/block.ts @@ -1,6 +1,6 @@ import { bulkGenerate as originBulkGenerate } from '@iceworks/block-service'; import { componentsPath } from '@iceworks/project-service'; -export const bulkGenerate = async function(blocks: any) { +export const bulkGenerate = async function (blocks: any) { return await originBulkGenerate(blocks, componentsPath); -} +}; diff --git a/extensions/iceworks-component-builder/src/types.d.ts b/extensions/iceworks-component-builder/src/types.d.ts index 3b240b2ad..7d5f55ff6 100644 --- a/extensions/iceworks-component-builder/src/types.d.ts +++ b/extensions/iceworks-component-builder/src/types.d.ts @@ -1,6 +1,5 @@ // TODO hack for build declare module 'vfile-message' { // eslint-disable-next-line - interface VFileMessage { - } + interface VFileMessage {} } diff --git a/extensions/iceworks-component-builder/tsconfig.json b/extensions/iceworks-component-builder/tsconfig.json index 0871a64b2..741134a4b 100644 --- a/extensions/iceworks-component-builder/tsconfig.json +++ b/extensions/iceworks-component-builder/tsconfig.json @@ -1,15 +1,10 @@ { - "extends": "../../tsconfig.extension.json", - "compilerOptions": { - "rootDir": "./", - "outDir": "build", - "resolveJsonModule": true - }, - "include": [ - "src" - ], - "exclude": [ - ".vscode-test", - "web" - ] -} \ No newline at end of file + "extends": "../../tsconfig.extension.json", + "compilerOptions": { + "rootDir": "./", + "outDir": "build", + "resolveJsonModule": true + }, + "include": ["src"], + "exclude": [".vscode-test", "web"] +} diff --git a/extensions/iceworks-component-builder/web/build.json b/extensions/iceworks-component-builder/web/build.json index 228027dc5..907b22a91 100644 --- a/extensions/iceworks-component-builder/web/build.json +++ b/extensions/iceworks-component-builder/web/build.json @@ -18,9 +18,7 @@ [ "build-plugin-moment-locales", { - "locales": [ - "zh-cn" - ] + "locales": ["zh-cn"] } ], [ @@ -31,4 +29,4 @@ ], "./build.plugin.js" ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-component-builder/web/build.plugin.js b/extensions/iceworks-component-builder/web/build.plugin.js index f59b78a3e..1dd4dfefe 100644 --- a/extensions/iceworks-component-builder/web/build.plugin.js +++ b/extensions/iceworks-component-builder/web/build.plugin.js @@ -1,8 +1,5 @@ module.exports = ({ onGetWebpackConfig, registerTask }) => { onGetWebpackConfig((config) => { - config.node - .set('fs', 'empty') - .set('net', 'empty') - .set('tls', 'empty'); + config.node.set('fs', 'empty').set('net', 'empty').set('tls', 'empty'); }); -} +}; diff --git a/extensions/iceworks-component-builder/web/mocks/material/getData.json b/extensions/iceworks-component-builder/web/mocks/material/getData.json index 5248c4cc5..3ce2530c0 100644 --- a/extensions/iceworks-component-builder/web/mocks/material/getData.json +++ b/extensions/iceworks-component-builder/web/mocks/material/getData.json @@ -25,9 +25,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-advanced-detail@0.1.9/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/AdvancedDetail", "source": { "type": "npm", @@ -38,9 +36,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png"], "publishTime": "2019-11-28T11:30:32.213Z", "updateTime": "2020-03-31T12:36:39.300Z" }, @@ -59,9 +55,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -72,9 +66,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" }, @@ -93,9 +85,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -106,9 +96,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" }, @@ -127,9 +115,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -140,9 +126,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" } @@ -154,9 +138,7 @@ "category": "DataDisplay", "description": "anchor", "homepage": "https://unpkg.com/@alifd/biz-anchor@1.1.7/build/index.html", - "categories": [ - "DataDisplay" - ], + "categories": ["DataDisplay"], "source": { "type": "npm", "npm": "@alifd/biz-anchor", @@ -206,9 +188,7 @@ "views": [], "description": "使用 JavaScript,包含大量 UI 区块,比如图表、表单等。", "homepage": "https://unpkg.com/@alifd/fusion-design-pro-js@0.1.16/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/fusion-design-pro-js", "source": { "type": "npm", @@ -229,9 +209,7 @@ "@types/react": "^16.9.13", "@types/react-dom": "^16.9.4" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png"], "publishTime": "2019-12-27T08:53:04.370Z", "updateTime": "2020-04-08T05:25:39.472Z" }, @@ -243,9 +221,7 @@ "views": [], "description": "使用 TypeScript,包含大量 UI 区块,比如图表、表单等。", "homepage": "https://unpkg.com/@alifd/fusion-design-pro@0.1.29/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/fusion-design-pro", "source": { "type": "npm", @@ -266,11 +242,9 @@ "@types/react": "^16.9.13", "@types/react-dom": "^16.9.4" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png"], "publishTime": "2019-11-07T09:05:00.572Z", "updateTime": "2020-04-08T05:28:38.818Z" } ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-component-builder/web/mocks/material/getSourcesByProjectType.json b/extensions/iceworks-component-builder/web/mocks/material/getSourcesByProjectType.json index d3865ad3b..a49064db7 100644 --- a/extensions/iceworks-component-builder/web/mocks/material/getSourcesByProjectType.json +++ b/extensions/iceworks-component-builder/web/mocks/material/getSourcesByProjectType.json @@ -11,4 +11,4 @@ "source": "https://ice.alicdn.com/assets/materials/rax-materials.json", "description": "基于 Rax 组件和 Rax 脚手架的官方物料" } -] \ No newline at end of file +] diff --git a/extensions/iceworks-component-builder/web/src/global.scss b/extensions/iceworks-component-builder/web/src/global.scss index e5f89a10e..c584672be 100644 --- a/extensions/iceworks-component-builder/web/src/global.scss +++ b/extensions/iceworks-component-builder/web/src/global.scss @@ -1,5 +1,5 @@ // 引入默认全局样式 -@import "@alifd/next/reset.scss"; +@import '@alifd/next/reset.scss'; body { -webkit-font-smoothing: antialiased; diff --git a/extensions/iceworks-component-builder/web/src/i18n.tsx b/extensions/iceworks-component-builder/web/src/i18n.tsx index bf92a74cf..a82e9b0f7 100644 --- a/extensions/iceworks-component-builder/web/src/i18n.tsx +++ b/extensions/iceworks-component-builder/web/src/i18n.tsx @@ -1,5 +1,5 @@ -import { createIntl, RawIntlProvider } from 'react-intl'; -import React, { useEffect, useState } from 'react' +import { createIntl, RawIntlProvider } from 'react-intl'; +import React, { useEffect, useState } from 'react'; import { ConfigProvider, Loading } from '@alifd/next'; import enUSNextMessages from '@alifd/next/lib/locale/en-us'; import zhCNNextMessages from '@alifd/next/lib/locale/zh-cn'; @@ -11,46 +11,50 @@ import zhCNMessages from './locales/zh-CN.json'; const DEFAULT_LOCALE = 'zh-cn'; export const localeMessages = { - 'en': { + en: { messages: enUSMessages, nextMessages: enUSNextMessages, }, - 'zh-cn':{ + 'zh-cn': { messages: zhCNMessages, nextMessages: zhCNNextMessages, }, }; -const getIntl = (locale: string) =>{ +const getIntl = (locale: string) => { let localeMessage = localeMessages[locale]; if (!localeMessage) { locale = DEFAULT_LOCALE; localeMessage = localeMessages[locale]; } - return createIntl({locale, messages: localeMessage.messages}); -} -export const LocaleProvider = (props)=>{ + return createIntl({ locale, messages: localeMessage.messages }); +}; +export const LocaleProvider = (props) => { const [i18n, setI18n] = useState(() => getIntl(DEFAULT_LOCALE)); - const [loading, setLoading] = useState(true) - useEffect(()=>{ - async function initI18n(){ + const [loading, setLoading] = useState(true); + useEffect(() => { + async function initI18n() { try { const lang = await callService('common', 'getLanguage'); setI18n(getIntl(lang)); - } catch(e) { + } catch (e) { // ignore i18n error, just using default language } finally { setLoading(false); } } initI18n(); - },[]); + }, []); return ( - {loading ? : React.Children.only(props.children)} + {loading ? ( + + ) : ( + React.Children.only(props.children) + )} - ) -} \ No newline at end of file + ); +}; diff --git a/extensions/iceworks-component-builder/web/src/locales/en-US.json b/extensions/iceworks-component-builder/web/src/locales/en-US.json index 1487f4ffb..3efe9d1c3 100644 --- a/extensions/iceworks-component-builder/web/src/locales/en-US.json +++ b/extensions/iceworks-component-builder/web/src/locales/en-US.json @@ -1,11 +1,11 @@ { - "web.ComponentBuiilder.Home.getMaterialError": "Fail to obtain materials. Please try again later.", - "web.ComponentBuiilder.Home.getDataError": "Fail to obtain material data. Please try again later.", - "web.ComponentBuiilder.Home.noComponentName": "Please Enter Component Name.", - "web.ComponentBuiilder.Home.didNotSeletBlock": "Please choose a block before generate.", - "web.ComponentBuiilder.Home.generateSuccess": "Generate component successfully.", - "web.ComponentBuiilder.Home.inputComponentName": "1. Enter Component Name.", - "web.ComponentBuiilder.Home.inputComponentNamePlaceHolder": "Component name must start with [A-Z] and only contains letters and numbers. Special characters are not allowed.", - "web.ComponentBuiilder.Home.selectBlock": "2. Choose A Block", - "web.ComponentBuiilder.Home.generate": "Generate Component" -} \ No newline at end of file + "web.ComponentBuiilder.Home.getMaterialError": "Fail to obtain materials. Please try again later.", + "web.ComponentBuiilder.Home.getDataError": "Fail to obtain material data. Please try again later.", + "web.ComponentBuiilder.Home.noComponentName": "Please Enter Component Name.", + "web.ComponentBuiilder.Home.didNotSeletBlock": "Please choose a block before generate.", + "web.ComponentBuiilder.Home.generateSuccess": "Generate component successfully.", + "web.ComponentBuiilder.Home.inputComponentName": "1. Enter Component Name.", + "web.ComponentBuiilder.Home.inputComponentNamePlaceHolder": "Component name must start with [A-Z] and only contains letters and numbers. Special characters are not allowed.", + "web.ComponentBuiilder.Home.selectBlock": "2. Choose A Block", + "web.ComponentBuiilder.Home.generate": "Generate Component" +} diff --git a/extensions/iceworks-component-builder/web/src/locales/zh-CN.json b/extensions/iceworks-component-builder/web/src/locales/zh-CN.json index 461b80898..51a1185d0 100644 --- a/extensions/iceworks-component-builder/web/src/locales/zh-CN.json +++ b/extensions/iceworks-component-builder/web/src/locales/zh-CN.json @@ -1,11 +1,11 @@ { - "web.ComponentBuiilder.Home.getMaterialError": "获取物料源信息失败,请稍后再试。", - "web.ComponentBuiilder.Home.getDataError": "获取物料集合信息失败,请稍后再试。", - "web.ComponentBuiilder.Home.noComponentName": "请填写组件名。", - "web.ComponentBuiilder.Home.didNotSeletBlock": "请选择使用的区块。", - "web.ComponentBuiilder.Home.generateSuccess": "组件生成成功!", - "web.ComponentBuiilder.Home.inputComponentName": "1. 填写组件名:", - "web.ComponentBuiilder.Home.inputComponentNamePlaceHolder": "名称必须英文字母 A-Z 开头,只包含英文和数字,不允许有特殊字符", - "web.ComponentBuiilder.Home.selectBlock": "2. 选择使用的区块:", - "web.ComponentBuiilder.Home.generate": "生成组件" -} \ No newline at end of file + "web.ComponentBuiilder.Home.getMaterialError": "获取物料源信息失败,请稍后再试。", + "web.ComponentBuiilder.Home.getDataError": "获取物料集合信息失败,请稍后再试。", + "web.ComponentBuiilder.Home.noComponentName": "请填写组件名。", + "web.ComponentBuiilder.Home.didNotSeletBlock": "请选择使用的区块。", + "web.ComponentBuiilder.Home.generateSuccess": "组件生成成功!", + "web.ComponentBuiilder.Home.inputComponentName": "1. 填写组件名:", + "web.ComponentBuiilder.Home.inputComponentNamePlaceHolder": "名称必须英文字母 A-Z 开头,只包含英文和数字,不允许有特殊字符", + "web.ComponentBuiilder.Home.selectBlock": "2. 选择使用的区块:", + "web.ComponentBuiilder.Home.generate": "生成组件" +} diff --git a/extensions/iceworks-component-builder/web/src/pages/Home/index.module.scss b/extensions/iceworks-component-builder/web/src/pages/Home/index.module.scss index e08c83d98..7a7a8fb2f 100644 --- a/extensions/iceworks-component-builder/web/src/pages/Home/index.module.scss +++ b/extensions/iceworks-component-builder/web/src/pages/Home/index.module.scss @@ -27,7 +27,7 @@ } } - a[rel="noopener noreferrer"] { + a[rel='noopener noreferrer'] { color: $color-text1-4; text-decoration: none; } diff --git a/extensions/iceworks-component-builder/web/src/pages/Home/index.tsx b/extensions/iceworks-component-builder/web/src/pages/Home/index.tsx index 8fba26499..42f2fe364 100644 --- a/extensions/iceworks-component-builder/web/src/pages/Home/index.tsx +++ b/extensions/iceworks-component-builder/web/src/pages/Home/index.tsx @@ -19,36 +19,36 @@ const Home = () => { Notification.error({ content: e.message }); } } - + async function getSources() { let sources = []; try { sources = await callService('material', 'getSourcesByProjectType'); } catch (e) { - Notification.error({ content: intl.formatMessage({id:'web.ComponentBuiilder.Home.getMaterialError'})}); + Notification.error({ content: intl.formatMessage({ id: 'web.ComponentBuiilder.Home.getMaterialError' }) }); } - + console.log('getSources', sources); return sources; } - + async function getData(source: string) { let data = {}; try { data = await callService('material', 'getData', source); } catch (e) { - Notification.error({ content: intl.formatMessage({id:'web.ComponentBuiilder.Home.getDataError'})}); + Notification.error({ content: intl.formatMessage({ id: 'web.ComponentBuiilder.Home.getDataError' }) }); } console.log('getData', data); return data; } - + function validateData({ block, componentName }) { if (!componentName) { - return intl.formatMessage({id:'web.ComponentBuiilder.Home.noComponentName'}); + return intl.formatMessage({ id: 'web.ComponentBuiilder.Home.noComponentName' }); } if (!block) { - return intl.formatMessage({id:'web.ComponentBuiilder.Home.didNotSeletBlock'}); + return intl.formatMessage({ id: 'web.ComponentBuiilder.Home.didNotSeletBlock' }); } return ''; } @@ -77,10 +77,12 @@ const Home = () => { return; } - await callService('block', 'bulkGenerate', [{ - ...selectedBlock, - name: componentName - }]); + await callService('block', 'bulkGenerate', [ + { + ...selectedBlock, + name: componentName, + }, + ]); } catch (error) { Notification.error({ content: error.message }); setIsCreating(false); @@ -88,7 +90,7 @@ const Home = () => { } setIsCreating(false); - Notification.success({ content: intl.formatMessage({id:'web.ComponentBuiilder.Home.generateSuccess'})}); + Notification.success({ content: intl.formatMessage({ id: 'web.ComponentBuiilder.Home.generateSuccess' }) }); resetData(); } return ( @@ -96,11 +98,11 @@ const Home = () => {
- +
setComponentName(value)} @@ -110,7 +112,7 @@ const Home = () => {
- +
{
-
); }; -const IntlHome = ()=>{ +const IntlHome = () => { return ( - + - ) -} + ); +}; export default IntlHome; diff --git a/extensions/iceworks-component-builder/web/src/variables.scss b/extensions/iceworks-component-builder/web/src/variables.scss index 221ec919a..80ffda58d 100644 --- a/extensions/iceworks-component-builder/web/src/variables.scss +++ b/extensions/iceworks-component-builder/web/src/variables.scss @@ -6,7 +6,7 @@ $body-background: #161616; $component-background: #161d22; // text -$text-color: rgba(255, 255, 255, 0.8);; +$text-color: rgba(255, 255, 255, 0.8); $text-color-secondary: rgba(153, 153, 153, 0.8); // link @@ -18,7 +18,7 @@ $warning-color: #613400; $highlight-color: #a8071a; // header -$heading-color: #E3E3E3; +$heading-color: #e3e3e3; // border $border-color-base: rgba(153, 153, 153, 0.25); @@ -99,7 +99,6 @@ $screen-xl: 1208px; $screen-lg: 1024px; $screen-md: 768px; - // 移动 $screen-sm: 767.9px; // 超小屏 diff --git a/extensions/iceworks-component-builder/web/tsconfig.json b/extensions/iceworks-component-builder/web/tsconfig.json index 7c2d90eea..a83b4ad1a 100644 --- a/extensions/iceworks-component-builder/web/tsconfig.json +++ b/extensions/iceworks-component-builder/web/tsconfig.json @@ -5,24 +5,12 @@ "outDir": "build", "rootDir": "./", "paths": { - "@/*": [ - "./src/*" - ], - "ice": [ - ".ice/index.ts" - ], - "ice/*": [ - ".ice/pages/*" - ] + "@/*": ["./src/*"], + "ice": [".ice/index.ts"], + "ice/*": [".ice/pages/*"] }, - "resolveJsonModule": true + "resolveJsonModule": true }, - "include": [ - "src/*", - ".ice" - ], - "exclude": [ - "node_modules", - "public" - ] -} \ No newline at end of file + "include": ["src/*", ".ice"], + "exclude": ["node_modules", "public"] +} diff --git a/extensions/iceworks-component-builder/webpack.config.js b/extensions/iceworks-component-builder/webpack.config.js index 7e1f3f232..7883196e7 100644 --- a/extensions/iceworks-component-builder/webpack.config.js +++ b/extensions/iceworks-component-builder/webpack.config.js @@ -9,14 +9,14 @@ const config = { path: path.resolve(__dirname, 'build'), filename: 'extension.js', libraryTarget: 'commonjs2', - devtoolModuleFilenameTemplate: '../[resource-path]' + devtoolModuleFilenameTemplate: '../[resource-path]', }, externals: { vscode: 'commonjs vscode', - prettier: 'commonjs prettier' + prettier: 'commonjs prettier', }, resolve: { - extensions: ['.ts', '.js'] + extensions: ['.ts', '.js'], }, module: { rules: [ @@ -29,11 +29,11 @@ const config = { transpileOnly: true, configFile: tsConfigPath, }, - } - ] - } - ] - } + }, + ], + }, + ], + }, }; module.exports = (env, argv) => { diff --git a/extensions/iceworks-config-helper/.vscode/launch.json b/extensions/iceworks-config-helper/.vscode/launch.json index 0795ba906..306a0e1aa 100644 --- a/extensions/iceworks-config-helper/.vscode/launch.json +++ b/extensions/iceworks-config-helper/.vscode/launch.json @@ -10,12 +10,8 @@ "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/out/**/*.js" - ], + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}" }, { @@ -27,10 +23,8 @@ "--extensionDevelopmentPath=${workspaceFolder}", "--extensionTestsPath=${workspaceFolder}/test/suite/index" ], - "outFiles": [ - "${workspaceFolder}/out/test/**/*.js" - ], + "outFiles": ["${workspaceFolder}/out/test/**/*.js"], "preLaunchTask": "${defaultBuildTask}" } ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-config-helper/schemas/ice.build.json b/extensions/iceworks-config-helper/schemas/ice.build.json index 47d3ff4e8..6331d7472 100644 --- a/extensions/iceworks-config-helper/schemas/ice.build.json +++ b/extensions/iceworks-config-helper/schemas/ice.build.json @@ -4,9 +4,7 @@ "title": "The ICE APP build.json Schema", "description": "The root schema comprises the entire JSON document.", "default": {}, - "examples": [ - {} - ], + "examples": [{}], "required": [], "properties": { "alias": { @@ -23,64 +21,44 @@ "type": "string", "description": "The public URL of the output directory.", "default": "", - "examples": [ - "/" - ] + "examples": ["/"] }, "devPublicPath": { "type": "string", "description": "The public URL of the dev server output directory.", "default": "", - "examples": [ - "/" - ] + "examples": ["/"] }, "sourceMap": { "type": "boolean", "description": "Whether to generate sourceMap", "default": false, - "examples": [ - false - ] + "examples": [false] }, "externals": { "type": "object", "description": "This feature is typically most useful to library developers, see https://webpack.js.org/configuration/externals .", "default": {}, - "examples": [ - {} - ], + "examples": [{}], "additionalProperties": true }, "hash": { - "type": [ - "boolean", - "string" - ], + "type": ["boolean", "string"], "description": "If you want the hashed version of the built resource, you can set hash to true.", "default": false, - "examples": [ - "contenthash" - ] + "examples": ["contenthash"] }, "injectBabel": { - "type": [ - "boolean", - "string" - ], + "type": ["boolean", "string"], "description": "Whether to inject core-js/stable and regenerator-runtime/runtime.", "default": false, - "examples": [ - false - ] + "examples": [false] }, "minify": { "type": "boolean", "description": "The resources after construction will be compressed.", "default": false, - "examples": [ - false - ] + "examples": [false] }, "outputAssetsPath": { "type": "object", @@ -98,9 +76,7 @@ "type": "string", "description": "Modify the built file directory.", "default": "", - "examples": [ - "build" - ] + "examples": ["build"] }, "devServer": { "type": "object", @@ -175,43 +151,31 @@ "type": "boolean", "description": "Configure whether to generate vendor.", "default": false, - "examples": [ - true - ] + "examples": [true] }, "libraryTarget": { "type": "string", "description": "Configure webpack's output.libraryTarget attribute.", "default": "", - "examples": [ - "" - ] + "examples": [""] }, "library": { "type": "string", "description": "Configure webpack's output.library attribute.", "default": "", - "examples": [ - "" - ] + "examples": [""] }, "libraryExport": { "type": "string", "description": "Configure webpack's output.libraryExport attribute.", "default": "", - "examples": [ - "" - ] + "examples": [""] }, "compileDependencies": { "type": "array", "description": "y default, babel-loader will compile relevant modules to be compatible with IE11. If you need babel to compile the specified file under node_modules, you can quickly add it in this configuration.", "default": [], - "examples": [ - [ - "@alifd/next" - ] - ], + "examples": [["@alifd/next"]], "additionalItems": true, "items": { "anyOf": [ @@ -219,9 +183,7 @@ "type": "string", "description": "Compile module dependencies under node_modules.", "default": "", - "examples": [ - "@alifd/next" - ] + "examples": ["@alifd/next"] } ] } @@ -230,9 +192,7 @@ "type": "object", "description": "css-loader params, see https://webpack.js.org/loaders/css-loader/#options .", "default": {}, - "examples": [ - {} - ], + "examples": [{}], "required": [], "additionalProperties": true, "properties": {} @@ -241,9 +201,7 @@ "type": "object", "description": "less-loader params, see https://webpack.js.org/loaders/less-loader/#options .", "default": {}, - "examples": [ - {} - ], + "examples": [{}], "required": [], "additionalProperties": true, "properties": {} @@ -252,9 +210,7 @@ "type": "object", "description": "sass-loader params, see https://webpack.js.org/loaders/sass-loader/#options .", "default": {}, - "examples": [ - {} - ], + "examples": [{}], "required": [], "additionalProperties": true, "properties": {} @@ -263,17 +219,13 @@ "type": "boolean", "description": "After opening the configuration item, the project will clear the built-in postcss configuration and read the configuration in the postcss configuration file postcssrc.js or postcss.config.js", "default": false, - "examples": [ - false - ] + "examples": [false] }, "terserOptions": { "type": "object", "description": "terserPlugin params, see https://webpack.js.org/plugins/terser-webpack-plugin/ .", "default": {}, - "examples": [ - {} - ], + "examples": [{}], "required": [], "additionalProperties": true, "properties": {} @@ -282,9 +234,7 @@ "type": "array", "description": "Add an additional babel plugin to the babel-loader configuration.", "default": [], - "examples": [ - [] - ], + "examples": [[]], "additionalItems": true, "items": { "anyOf": [] @@ -294,9 +244,7 @@ "type": "array", "description": "Add an additional babel preset to the configuration of babel-loader. If the preset is the same as the built-in preset, the configuration content in babelPresets will be used first.", "default": [], - "examples": [ - [] - ], + "examples": [[]], "additionalItems": true, "items": { "anyOf": [] @@ -306,20 +254,13 @@ "type": "boolean", "description": "After it is turned on, all built-in html-webpack-plugin settings will be removed when the build is built, and html files will no longer be generated.", "default": false, - "examples": [ - false - ] + "examples": [false] }, "eslint": { - "type": [ - "object", - "boolean" - ], + "type": ["object", "boolean"], "description": "The eslint code detection is disabled by default. If you need to enable it, set it to true. Configure eslint related options see https://github.com/webpack-contrib/eslint-loader .", "default": {}, - "examples": [ - {} - ], + "examples": [{}], "required": [], "additionalProperties": true, "properties": {} @@ -341,17 +282,13 @@ "type": "boolean", "description": "Disable the ability to run time, if you need to close the configuration to true.", "default": false, - "examples": [ - false - ] + "examples": [false] }, "tsChecker": { "type": "boolean", "description": "TypeScript type detection is turned off by default. If you need to enable it, set it to true.", "default": false, - "examples": [ - false - ] + "examples": [false] }, "plugins": { "type": "array", @@ -368,9 +305,7 @@ [ "build-plugin-moment-locales", { - "locales": [ - "zh-cn" - ] + "locales": ["zh-cn"] } ] ] @@ -397,9 +332,7 @@ "type": "string", "description": "See https://ice.work/docs/guide/advance/fusion .", "default": "", - "examples": [ - "build-plugin-fusion" - ] + "examples": ["build-plugin-fusion"] }, { "type": "object", @@ -416,9 +349,7 @@ "type": "string", "description": "themePackage example: @alifd/theme-design-pro .", "default": "", - "examples": [ - "@alifd/theme-design-pro" - ] + "examples": ["@alifd/theme-design-pro"] } } } @@ -433,9 +364,7 @@ [ "build-plugin-moment-locales", { - "locales": [ - "zh-cn" - ] + "locales": ["zh-cn"] } ] ], @@ -446,9 +375,7 @@ "type": "string", "description": "See https://ice.work/docs/guide/develop/plugin-list .", "default": "", - "examples": [ - "build-plugin-moment-locales" - ] + "examples": ["build-plugin-moment-locales"] }, { "type": "object", @@ -456,9 +383,7 @@ "default": {}, "examples": [ { - "locales": [ - "zh-cn" - ] + "locales": ["zh-cn"] } ], "additionalProperties": true, @@ -467,11 +392,7 @@ "type": "array", "description": "build-plugin-moment-locales config locales.", "default": [], - "examples": [ - [ - "zh-cn" - ] - ], + "examples": [["zh-cn"]], "additionalItems": true, "items": { "anyOf": [ @@ -479,9 +400,7 @@ "type": "string", "description": "build-plugin-moment-locales config locales.", "default": "", - "examples": [ - "zh-cn" - ] + "examples": ["zh-cn"] } ] } @@ -495,12 +414,10 @@ "type": "string", "description": "See https://ice.work/docs/guide/develop/plugin-list .", "default": "", - "examples": [ - "@ali/build-plugin-ice-def" - ] + "examples": ["@ali/build-plugin-ice-def"] } ] } } } -} \ No newline at end of file +} diff --git a/extensions/iceworks-config-helper/schemas/rax.build.json b/extensions/iceworks-config-helper/schemas/rax.build.json index 30c3ffadc..60dabcfb2 100644 --- a/extensions/iceworks-config-helper/schemas/rax.build.json +++ b/extensions/iceworks-config-helper/schemas/rax.build.json @@ -3,9 +3,7 @@ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "title": "The Rax APP build.json Schema", - "required": [ - "plugins" - ], + "required": ["plugins"], "properties": { "publicPath": { "type": "string", @@ -21,9 +19,7 @@ "type": "string", "description": "The build file directory", "default": "", - "examples": [ - "build" - ] + "examples": ["build"] }, "hash": { "type": "boolean", @@ -94,9 +90,7 @@ { "type": "string", "description": "Build Rax App", - "enum": [ - "build-plugin-rax-app" - ] + "enum": ["build-plugin-rax-app"] }, { "type": "object", @@ -106,19 +100,11 @@ "description": "Platform targets", "items": { "type": "string", - "enum": [ - "web", - "weex", - "miniapp", - "wechat-miniprogram", - "kraken" - ] + "enum": ["web", "weex", "miniapp", "wechat-miniprogram", "kraken"] } } }, - "required": [ - "targets" - ] + "required": ["targets"] } ] }, @@ -128,9 +114,7 @@ { "type": "string", "description": "Rax PWA Plugin", - "enum": [ - "build-plugin-rax-pwa" - ] + "enum": ["build-plugin-rax-pwa"] }, { "type": "object", @@ -167,13 +151,7 @@ "default": "standalone" } }, - "required": [ - "name", - "short_name", - "description", - "icon", - "start_url" - ] + "required": ["name", "short_name", "description", "icon", "start_url"] }, "serviceWorker": { "type": "object", @@ -249,11 +227,7 @@ }, { "type": "string", - "examples": [ - "build-plugin-rax-compat-react", - "build-plugin-rax-ssr", - "build-plugin-rax-multi-pages" - ] + "examples": ["build-plugin-rax-compat-react", "build-plugin-rax-ssr", "build-plugin-rax-multi-pages"] } ] } diff --git a/extensions/iceworks-config-helper/src/index.ts b/extensions/iceworks-config-helper/src/index.ts index 612152d31..a88bfb544 100644 --- a/extensions/iceworks-config-helper/src/index.ts +++ b/extensions/iceworks-config-helper/src/index.ts @@ -2,20 +2,16 @@ import * as vscode from 'vscode'; import { getProjectFramework } from '@iceworks/project-service'; async function activate() { - try { const projectFramework = await getProjectFramework(); - vscode.extensions.all.forEach(extension => { + vscode.extensions.all.forEach((extension) => { if (extension.id !== 'iceworks-team.iceworks-config-helper') { return; } const packageJSON = extension.packageJSON; - if ( - packageJSON && packageJSON.contributes && - (projectFramework === 'rax-app' || projectFramework === 'icejs') - ) { + if (packageJSON && packageJSON.contributes && (projectFramework === 'rax-app' || projectFramework === 'icejs')) { const jsonValidation = packageJSON.contributes.jsonValidation; jsonValidation[0].url = `./schemas/${projectFramework === 'icejs' ? 'ice' : 'rax'}.build.json`; } @@ -23,6 +19,6 @@ async function activate() { } catch (e) { // ignore } -}; +} exports.activate = activate; diff --git a/extensions/iceworks-config-helper/tsconfig.json b/extensions/iceworks-config-helper/tsconfig.json index e0108d774..d2e97137b 100644 --- a/extensions/iceworks-config-helper/tsconfig.json +++ b/extensions/iceworks-config-helper/tsconfig.json @@ -8,7 +8,5 @@ "resolveJsonModule": true, "esModuleInterop": true }, - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + "exclude": ["node_modules"] +} diff --git a/extensions/iceworks-material-helper/.vscode/launch.json b/extensions/iceworks-material-helper/.vscode/launch.json index 24910d35a..e5ea897b0 100644 --- a/extensions/iceworks-material-helper/.vscode/launch.json +++ b/extensions/iceworks-material-helper/.vscode/launch.json @@ -10,13 +10,9 @@ "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/build/*.js" - ], + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/build/*.js"], "preLaunchTask": "npm: webpack" - }, + } ] } diff --git a/extensions/iceworks-material-helper/src/extension.ts b/extensions/iceworks-material-helper/src/extension.ts index 0f48629b3..bdf9ec841 100644 --- a/extensions/iceworks-material-helper/src/extension.ts +++ b/extensions/iceworks-material-helper/src/extension.ts @@ -36,11 +36,16 @@ export function activate(context: vscode.ExtensionContext) { layout = { orientation: 0, groups: [{ size: 0.7 }, { size: 0.3 }] }; } - webviewPanel = window.createWebviewPanel('Iceworks', i18n.format('extension.iceworksMaterialHelper.extension.title'), { viewColumn: columnToShowIn, preserveFocus: true }, { - enableScripts: true, - retainContextWhenHidden: true, - enableFindWidget: true, - }); + webviewPanel = window.createWebviewPanel( + 'Iceworks', + i18n.format('extension.iceworksMaterialHelper.extension.title'), + { viewColumn: columnToShowIn, preserveFocus: true }, + { + enableScripts: true, + retainContextWhenHidden: true, + enableFindWidget: true, + } + ); webviewPanel.webview.html = getHtmlForWebview(extensionPath); webviewPanel.onDidDispose( () => { @@ -55,9 +60,11 @@ export function activate(context: vscode.ExtensionContext) { connectService(webviewPanel, context, { services, logger }); } } - subscriptions.push(vscode.commands.registerCommand('iceworks-material-helper.start', function () { - activeWebview(); - })); + subscriptions.push( + vscode.commands.registerCommand('iceworks-material-helper.start', function () { + activeWebview(); + }) + ); // set propsAutoCompleter propsAutoComplete(); diff --git a/extensions/iceworks-material-helper/src/i18n.ts b/extensions/iceworks-material-helper/src/i18n.ts index 612c0c8ba..6cd9f9895 100644 --- a/extensions/iceworks-material-helper/src/i18n.ts +++ b/extensions/iceworks-material-helper/src/i18n.ts @@ -11,4 +11,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/extensions/iceworks-material-helper/src/locales/en-US.json b/extensions/iceworks-material-helper/src/locales/en-US.json index 6371871cc..9fce9ef6f 100644 --- a/extensions/iceworks-material-helper/src/locales/en-US.json +++ b/extensions/iceworks-material-helper/src/locales/en-US.json @@ -1,3 +1,3 @@ { - "extension.iceworksMaterialHelper.extension.title": "Import Materials - Iceworks" -} \ No newline at end of file + "extension.iceworksMaterialHelper.extension.title": "Import Materials - Iceworks" +} diff --git a/extensions/iceworks-material-helper/src/locales/zh-CN.json b/extensions/iceworks-material-helper/src/locales/zh-CN.json index 784eed430..38ed21ccd 100644 --- a/extensions/iceworks-material-helper/src/locales/zh-CN.json +++ b/extensions/iceworks-material-helper/src/locales/zh-CN.json @@ -1,3 +1,3 @@ { - "extension.iceworksMaterialHelper.extension.title": "使用物料 - Iceworks" -} \ No newline at end of file + "extension.iceworksMaterialHelper.extension.title": "使用物料 - Iceworks" +} diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/getBabelParserPlugins.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/getBabelParserPlugins.ts index 02b6d9e36..67c98e6e7 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/getBabelParserPlugins.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/getBabelParserPlugins.ts @@ -11,7 +11,7 @@ export default function getBabelParserPlugins(language: string): ParserPlugin[] 'asyncGenerators', 'functionBind', 'functionSent', - 'dynamicImport' + 'dynamicImport', ]; if (language === 'ts') { @@ -22,4 +22,4 @@ export default function getBabelParserPlugins(language: string): ParserPlugin[] } return plugins; -}; +} diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/getCompletionItem.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/getCompletionItem.ts index 1b395af70..f20ff05d3 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/getCompletionItem.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/getCompletionItem.ts @@ -4,4 +4,4 @@ export default function getCompletionItem(itemText: string): vscode.CompletionIt const completionItem = new vscode.CompletionItem(itemText, vscode.CompletionItemKind.Variable); completionItem.insertText = `${itemText}={}`; return completionItem; -}; \ No newline at end of file +} diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/getCurrentJsxElement.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/getCurrentJsxElement.ts index dbd93794e..b01a9b649 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/getCurrentJsxElement.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/getCurrentJsxElement.ts @@ -6,10 +6,12 @@ import getBabelParserPlugins from './getBabelParserPlugins'; // ... function isCursorInJsxOpeningElement(cursorPosition: number, jsxOpeningElement: JSXOpeningElement): boolean { return !!( - (jsxOpeningElement.start && cursorPosition > jsxOpeningElement.start) && - (jsxOpeningElement.end && cursorPosition < jsxOpeningElement.end) + jsxOpeningElement.start && + cursorPosition > jsxOpeningElement.start && + jsxOpeningElement.end && + cursorPosition < jsxOpeningElement.end ); -}; +} // ... function isCursorInJsxAttribute(cursorPosition: number, node: Node, scope: Scope): boolean { @@ -21,17 +23,19 @@ function isCursorInJsxAttribute(cursorPosition: number, node: Node, scope: Scope const jsxAttribute = path.node; if ( - (jsxAttribute.start && cursorPosition > jsxAttribute.start) && - (jsxAttribute.end && cursorPosition < jsxAttribute.end) + jsxAttribute.start && + cursorPosition > jsxAttribute.start && + jsxAttribute.end && + cursorPosition < jsxAttribute.end ) { result = true; } - } + }, }, scope ); return result; -}; +} type CurrentJsxElement = JSXOpeningElement | null; export default function getCurrentJsxElement(documentText: string, cursorPosition): CurrentJsxElement { @@ -41,31 +45,28 @@ export default function getCurrentJsxElement(documentText: string, cursorPositio // https://babeljs.io/docs/en/babel-parser const ast = parse(documentText, { sourceType: 'module', - plugins: getBabelParserPlugins('jsx') + plugins: getBabelParserPlugins('jsx'), }); if (ast) { // https://babeljs.io/docs/en/babel-traverse - traverse( - ast, - { - JSXOpeningElement(path) { - const jsxOpeningElement = path.node; + traverse(ast, { + JSXOpeningElement(path) { + const jsxOpeningElement = path.node; - if ( - // if return Text - isCursorInJsxOpeningElement(cursorPosition, jsxOpeningElement) && - !isCursorInJsxAttribute(cursorPosition, jsxOpeningElement, path.scope) - ) { - currentJsxElement = jsxOpeningElement; - } + if ( + // if return Text + isCursorInJsxOpeningElement(cursorPosition, jsxOpeningElement) && + !isCursorInJsxAttribute(cursorPosition, jsxOpeningElement, path.scope) + ) { + currentJsxElement = jsxOpeningElement; } - } - ); + }, + }); } } catch (error) { // ignore } return currentJsxElement; -}; \ No newline at end of file +} diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/getDefinitions.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/getDefinitions.ts index a08af96a4..c28a830c9 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/getDefinitions.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/getDefinitions.ts @@ -3,11 +3,11 @@ import * as vscode from 'vscode'; export default async function getDefinitions(documentUri: string, position: vscode.Position): Promise<[]> { const { commands } = vscode; // https://code.visualstudio.com/api/references/commands - const definitions: ([] | undefined) = await commands.executeCommand( + const definitions: [] | undefined = await commands.executeCommand( 'vscode.executeDefinitionProvider', documentUri, position ); return definitions || []; -}; \ No newline at end of file +} diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeyCompletionItems.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeyCompletionItems.ts index d4515a2fd..3121da173 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeyCompletionItems.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeyCompletionItems.ts @@ -3,7 +3,6 @@ import getCompletionItem from './getCompletionItem'; import getPropKeysFromCode from './getPropKeysFromCode'; import getPropKeysFromDefinition from './getPropKeysFromDefinition'; - export default function getPropKeys(componentPath, componentName): vscode.CompletionItem[] { let propKeys: string[] = []; @@ -15,5 +14,5 @@ export default function getPropKeys(componentPath, componentName): vscode.Comple propKeys = getPropKeysFromDefinition(componentPath); } - return propKeys.map(propKey => getCompletionItem(propKey)); -}; \ No newline at end of file + return propKeys.map((propKey) => getCompletionItem(propKey)); +} diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromCode.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromCode.ts index bbc9deacf..fc87e2401 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromCode.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromCode.ts @@ -12,59 +12,56 @@ export default function getPropKeysFromCode(componentPath: string, componentName try { const ast = parse(fs.readFileSync(componentPath, 'utf-8'), { sourceType: 'module', - plugins: getBabelParserPlugins('jsx') + plugins: getBabelParserPlugins('jsx'), }); if (ast) { // https://babeljs.io/docs/en/babel-traverse - traverse( - ast, - { - // Get propTypes - ExpressionStatement(path) { - const expression: any = path.node.expression; - const { left, right } = expression; + traverse(ast, { + // Get propTypes + ExpressionStatement(path) { + const expression: any = path.node.expression; + const { left, right } = expression; - if (left && right) { - const leftObject = left.object; - const leftProperty = left.property; + if (left && right) { + const leftObject = left.object; + const leftProperty = left.property; - if (leftObject.name === componentName && leftProperty.name === 'propTypes') { - (right.properties || []).forEach((property) => { - propKeys.push(property.key.name); - }); - } - } - }, - - // Get props destructuring assignment. - // Example: const { xxx } = props; - VariableDeclarator(path) { - const id: any = path.node.id; - const init: any = path.node.init; - - if (init.name === 'props') { - (id.properties || []).forEach((property) => { + if (leftObject.name === componentName && leftProperty.name === 'propTypes') { + (right.properties || []).forEach((property) => { propKeys.push(property.key.name); }); } - }, + } + }, - // Get props member expression. - // Example: props.xxx - MemberExpression(path) { - const { property } = path.node; - const object: any = path.node; - if (object.name === 'props') { - propKeys.push(property.name); - } + // Get props destructuring assignment. + // Example: const { xxx } = props; + VariableDeclarator(path) { + const id: any = path.node.id; + const init: any = path.node.init; + + if (init.name === 'props') { + (id.properties || []).forEach((property) => { + propKeys.push(property.key.name); + }); + } + }, + + // Get props member expression. + // Example: props.xxx + MemberExpression(path) { + const { property } = path.node; + const object: any = path.node; + if (object.name === 'props') { + propKeys.push(property.name); } - } - ); + }, + }); } } catch (error) { // ignore } return propKeys; -}; \ No newline at end of file +} diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromDefinition.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromDefinition.ts index 0271fa77d..80246332a 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromDefinition.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/getPropKeysFromDefinition.ts @@ -18,24 +18,21 @@ export default function getPropKeysFromDefinition(componentPath): string[] { if (fs.existsSync(componentTypesPath)) { const ast = parse(fs.readFileSync(componentTypesPath, 'utf-8'), { sourceType: 'module', - plugins: getBabelParserPlugins('ts') + plugins: getBabelParserPlugins('ts'), }); if (ast) { // https://babeljs.io/docs/en/babel-travers - traverse( - ast, - { - TSPropertySignature(filePath: any) { - propKeys.push(filePath.node.key.name); - } - } - ); + traverse(ast, { + TSPropertySignature(filePath: any) { + propKeys.push(filePath.node.key.name); + }, + }); } - }; + } } catch (error) { // ignores console.log(error); } return propKeys; -}; \ No newline at end of file +} diff --git a/extensions/iceworks-material-helper/src/propsAutoComplete/index.ts b/extensions/iceworks-material-helper/src/propsAutoComplete/index.ts index 07e08163c..289111e05 100644 --- a/extensions/iceworks-material-helper/src/propsAutoComplete/index.ts +++ b/extensions/iceworks-material-helper/src/propsAutoComplete/index.ts @@ -33,12 +33,11 @@ async function provideCompletionItems(document, position): Promise { +module.exports = ({ onGetWebpackConfig }) => { onGetWebpackConfig((config) => { - config.node - .set('fs', 'empty') - .set('net', 'empty') - .set('tls', 'empty'); + config.node.set('fs', 'empty').set('net', 'empty').set('tls', 'empty'); }); -} +}; diff --git a/extensions/iceworks-material-helper/web/mocks/material/getData.json b/extensions/iceworks-material-helper/web/mocks/material/getData.json index 5248c4cc5..3ce2530c0 100644 --- a/extensions/iceworks-material-helper/web/mocks/material/getData.json +++ b/extensions/iceworks-material-helper/web/mocks/material/getData.json @@ -25,9 +25,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-advanced-detail@0.1.9/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/AdvancedDetail", "source": { "type": "npm", @@ -38,9 +36,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png"], "publishTime": "2019-11-28T11:30:32.213Z", "updateTime": "2020-03-31T12:36:39.300Z" }, @@ -59,9 +55,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -72,9 +66,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" }, @@ -93,9 +85,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -106,9 +96,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" }, @@ -127,9 +115,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -140,9 +126,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" } @@ -154,9 +138,7 @@ "category": "DataDisplay", "description": "anchor", "homepage": "https://unpkg.com/@alifd/biz-anchor@1.1.7/build/index.html", - "categories": [ - "DataDisplay" - ], + "categories": ["DataDisplay"], "source": { "type": "npm", "npm": "@alifd/biz-anchor", @@ -206,9 +188,7 @@ "views": [], "description": "使用 JavaScript,包含大量 UI 区块,比如图表、表单等。", "homepage": "https://unpkg.com/@alifd/fusion-design-pro-js@0.1.16/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/fusion-design-pro-js", "source": { "type": "npm", @@ -229,9 +209,7 @@ "@types/react": "^16.9.13", "@types/react-dom": "^16.9.4" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png"], "publishTime": "2019-12-27T08:53:04.370Z", "updateTime": "2020-04-08T05:25:39.472Z" }, @@ -243,9 +221,7 @@ "views": [], "description": "使用 TypeScript,包含大量 UI 区块,比如图表、表单等。", "homepage": "https://unpkg.com/@alifd/fusion-design-pro@0.1.29/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/fusion-design-pro", "source": { "type": "npm", @@ -266,11 +242,9 @@ "@types/react": "^16.9.13", "@types/react-dom": "^16.9.4" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png"], "publishTime": "2019-11-07T09:05:00.572Z", "updateTime": "2020-04-08T05:28:38.818Z" } ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-material-helper/web/mocks/material/getSourcesByProjectType.json b/extensions/iceworks-material-helper/web/mocks/material/getSourcesByProjectType.json index 04b6763dd..27da624b1 100644 --- a/extensions/iceworks-material-helper/web/mocks/material/getSourcesByProjectType.json +++ b/extensions/iceworks-material-helper/web/mocks/material/getSourcesByProjectType.json @@ -5,4 +5,4 @@ "source": "https://ice.alicdn.com/assets/materials/react-materials.json", "description": "基于 Fusion 基础组件和 ICE 脚手架的官方物料" } -] \ No newline at end of file +] diff --git a/extensions/iceworks-material-helper/web/src/global.scss b/extensions/iceworks-material-helper/web/src/global.scss index e5f89a10e..c584672be 100644 --- a/extensions/iceworks-material-helper/web/src/global.scss +++ b/extensions/iceworks-material-helper/web/src/global.scss @@ -1,5 +1,5 @@ // 引入默认全局样式 -@import "@alifd/next/reset.scss"; +@import '@alifd/next/reset.scss'; body { -webkit-font-smoothing: antialiased; diff --git a/extensions/iceworks-material-helper/web/src/i18n.tsx b/extensions/iceworks-material-helper/web/src/i18n.tsx index bf92a74cf..a82e9b0f7 100644 --- a/extensions/iceworks-material-helper/web/src/i18n.tsx +++ b/extensions/iceworks-material-helper/web/src/i18n.tsx @@ -1,5 +1,5 @@ -import { createIntl, RawIntlProvider } from 'react-intl'; -import React, { useEffect, useState } from 'react' +import { createIntl, RawIntlProvider } from 'react-intl'; +import React, { useEffect, useState } from 'react'; import { ConfigProvider, Loading } from '@alifd/next'; import enUSNextMessages from '@alifd/next/lib/locale/en-us'; import zhCNNextMessages from '@alifd/next/lib/locale/zh-cn'; @@ -11,46 +11,50 @@ import zhCNMessages from './locales/zh-CN.json'; const DEFAULT_LOCALE = 'zh-cn'; export const localeMessages = { - 'en': { + en: { messages: enUSMessages, nextMessages: enUSNextMessages, }, - 'zh-cn':{ + 'zh-cn': { messages: zhCNMessages, nextMessages: zhCNNextMessages, }, }; -const getIntl = (locale: string) =>{ +const getIntl = (locale: string) => { let localeMessage = localeMessages[locale]; if (!localeMessage) { locale = DEFAULT_LOCALE; localeMessage = localeMessages[locale]; } - return createIntl({locale, messages: localeMessage.messages}); -} -export const LocaleProvider = (props)=>{ + return createIntl({ locale, messages: localeMessage.messages }); +}; +export const LocaleProvider = (props) => { const [i18n, setI18n] = useState(() => getIntl(DEFAULT_LOCALE)); - const [loading, setLoading] = useState(true) - useEffect(()=>{ - async function initI18n(){ + const [loading, setLoading] = useState(true); + useEffect(() => { + async function initI18n() { try { const lang = await callService('common', 'getLanguage'); setI18n(getIntl(lang)); - } catch(e) { + } catch (e) { // ignore i18n error, just using default language } finally { setLoading(false); } } initI18n(); - },[]); + }, []); return ( - {loading ? : React.Children.only(props.children)} + {loading ? ( + + ) : ( + React.Children.only(props.children) + )} - ) -} \ No newline at end of file + ); +}; diff --git a/extensions/iceworks-material-helper/web/src/locales/en-US.json b/extensions/iceworks-material-helper/web/src/locales/en-US.json index cf7273c1a..7ab873942 100644 --- a/extensions/iceworks-material-helper/web/src/locales/en-US.json +++ b/extensions/iceworks-material-helper/web/src/locales/en-US.json @@ -1,4 +1,4 @@ { - "web.iceworksMaterialHelper.extension.getMaterialError": "Failed to get material. Please try again later", - "web.iceworksMaterialHelper.extension.getMaterialDataError": "Failed to get material data. Please try again later" -} \ No newline at end of file + "web.iceworksMaterialHelper.extension.getMaterialError": "Failed to get material. Please try again later", + "web.iceworksMaterialHelper.extension.getMaterialDataError": "Failed to get material data. Please try again later" +} diff --git a/extensions/iceworks-material-helper/web/src/locales/zh-CN.json b/extensions/iceworks-material-helper/web/src/locales/zh-CN.json index 2b0d70e32..c3e5f71da 100644 --- a/extensions/iceworks-material-helper/web/src/locales/zh-CN.json +++ b/extensions/iceworks-material-helper/web/src/locales/zh-CN.json @@ -1,4 +1,4 @@ { - "web.iceworksMaterialHelper.extension.getMaterialError": "获取物料源信息失败,请稍后再试。", - "web.iceworksMaterialHelper.extension.getMaterialDataError": "获取物料集合信息失败,请稍后再试。" -} \ No newline at end of file + "web.iceworksMaterialHelper.extension.getMaterialError": "获取物料源信息失败,请稍后再试。", + "web.iceworksMaterialHelper.extension.getMaterialDataError": "获取物料集合信息失败,请稍后再试。" +} diff --git a/extensions/iceworks-material-helper/web/src/pages/Home/index.tsx b/extensions/iceworks-material-helper/web/src/pages/Home/index.tsx index d39f1d13f..45aedcbee 100644 --- a/extensions/iceworks-material-helper/web/src/pages/Home/index.tsx +++ b/extensions/iceworks-material-helper/web/src/pages/Home/index.tsx @@ -3,7 +3,7 @@ import { Notification } from '@alifd/next'; import callService from '@/callService'; import Material from '@iceworks/material-ui'; import { IMaterialData, IMaterialBlock, IMaterialComponent, IMaterialBase } from '@iceworks/material-utils'; -import {useIntl} from 'react-intl'; +import { useIntl } from 'react-intl'; import styles from './index.module.scss'; import { LocaleProvider } from '../../i18n'; @@ -22,7 +22,9 @@ const MaterialsPane: React.FC = () => { try { sources = await callService('material', 'getSourcesByProjectType'); } catch (e) { - Notification.error({ content: intl.formatMessage({id: 'web.iceworksMaterialHelper.extension.getMaterialError'}) }); + Notification.error({ + content: intl.formatMessage({ id: 'web.iceworksMaterialHelper.extension.getMaterialError' }), + }); } console.log('getSources', sources); return sources; @@ -33,7 +35,9 @@ const MaterialsPane: React.FC = () => { try { data = await callService('material', 'getData', source); } catch (e) { - Notification.error({ content: intl.formatMessage({id: 'web.iceworksMaterialHelper.extension.getMaterialDataError'}) }); + Notification.error({ + content: intl.formatMessage({ id: 'web.iceworksMaterialHelper.extension.getMaterialDataError' }), + }); } console.log('getData', data); return data as IMaterialData; @@ -43,25 +47,25 @@ const MaterialsPane: React.FC = () => { try { await callService('component', 'addBizCode', component); } catch (e) { - Notification.error({ content: e.message }) + Notification.error({ content: e.message }); } - } + }; const onBlockClick = async (block: IMaterialBlock) => { try { await callService('block', 'addBlockCode', block); } catch (e) { - Notification.error({ content: e.message }) + Notification.error({ content: e.message }); } - } + }; const onBaseClick = async (base: IMaterialBase) => { try { await callService('component', 'addBaseCode', base); } catch (e) { - Notification.error({ content: e.message }) + Notification.error({ content: e.message }); } - } + }; return (
= () => { dataWhiteList={['bases', 'blocks', 'components']} />
- ) -} + ); +}; -export const IntlMaterialPane = ()=>{ +export const IntlMaterialPane = () => { return ( - + - ) -} + ); +}; export default IntlMaterialPane; diff --git a/extensions/iceworks-material-helper/web/tsconfig.json b/extensions/iceworks-material-helper/web/tsconfig.json index 91ccbe96d..a83b4ad1a 100644 --- a/extensions/iceworks-material-helper/web/tsconfig.json +++ b/extensions/iceworks-material-helper/web/tsconfig.json @@ -5,24 +5,12 @@ "outDir": "build", "rootDir": "./", "paths": { - "@/*": [ - "./src/*" - ], - "ice": [ - ".ice/index.ts" - ], - "ice/*": [ - ".ice/pages/*" - ] + "@/*": ["./src/*"], + "ice": [".ice/index.ts"], + "ice/*": [".ice/pages/*"] }, "resolveJsonModule": true }, - "include": [ - "src/*", - ".ice" - ], - "exclude": [ - "node_modules", - "public" - ] -} \ No newline at end of file + "include": ["src/*", ".ice"], + "exclude": ["node_modules", "public"] +} diff --git a/extensions/iceworks-material-helper/webpack.config.js b/extensions/iceworks-material-helper/webpack.config.js index 7e1f3f232..7883196e7 100644 --- a/extensions/iceworks-material-helper/webpack.config.js +++ b/extensions/iceworks-material-helper/webpack.config.js @@ -9,14 +9,14 @@ const config = { path: path.resolve(__dirname, 'build'), filename: 'extension.js', libraryTarget: 'commonjs2', - devtoolModuleFilenameTemplate: '../[resource-path]' + devtoolModuleFilenameTemplate: '../[resource-path]', }, externals: { vscode: 'commonjs vscode', - prettier: 'commonjs prettier' + prettier: 'commonjs prettier', }, resolve: { - extensions: ['.ts', '.js'] + extensions: ['.ts', '.js'], }, module: { rules: [ @@ -29,11 +29,11 @@ const config = { transpileOnly: true, configFile: tsConfigPath, }, - } - ] - } - ] - } + }, + ], + }, + ], + }, }; module.exports = (env, argv) => { diff --git a/extensions/iceworks-page-builder/.vscode/launch.json b/extensions/iceworks-page-builder/.vscode/launch.json index bbcb24370..e5ea897b0 100644 --- a/extensions/iceworks-page-builder/.vscode/launch.json +++ b/extensions/iceworks-page-builder/.vscode/launch.json @@ -10,13 +10,9 @@ "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/build/*.js" - ], + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/build/*.js"], "preLaunchTask": "npm: webpack" - }, + } ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-page-builder/package.json b/extensions/iceworks-page-builder/package.json index fa235a46d..caeb67ecb 100644 --- a/extensions/iceworks-page-builder/package.json +++ b/extensions/iceworks-page-builder/package.json @@ -109,7 +109,6 @@ "@iceworks/page-service": "^0.1.5", "@iceworks/vscode-webview": "^0.1.1", "@iceworks/i18n": "^0.1.0" - }, "homepage": "https://github.com/ice-lab/iceworks/blob/master/extensions/iceworks-page-builder/README.md", "bugs": { diff --git a/extensions/iceworks-page-builder/package.nls.json b/extensions/iceworks-page-builder/package.nls.json index 9543a3a0b..63636ef9a 100644 --- a/extensions/iceworks-page-builder/package.nls.json +++ b/extensions/iceworks-page-builder/package.nls.json @@ -3,4 +3,4 @@ "iceworksPageBuilder.configuration.properties.iceworks.npmRegistry.description": "Iceworks npm registry.", "iceworksPageBuilder.configuration.properties.iceworks.materialSources.description": "Iceworks material sources, decide which materials to use.", "iceworksPageBuilder.commands.create.title": "Iceworks: Create Page" -} \ No newline at end of file +} diff --git a/extensions/iceworks-page-builder/package.nls.zh-cn.json b/extensions/iceworks-page-builder/package.nls.zh-cn.json index e2f527913..cf4c6ff8e 100644 --- a/extensions/iceworks-page-builder/package.nls.zh-cn.json +++ b/extensions/iceworks-page-builder/package.nls.zh-cn.json @@ -3,4 +3,4 @@ "iceworksPageBuilder.configuration.properties.iceworks.npmRegistry.description": "Iceworks npm 镜像源", "iceworksPageBuilder.configuration.properties.iceworks.materialSources.description": "Iceworks 物料源,决定使用哪些物料。", "iceworksPageBuilder.commands.create.title": "Iceworks: 创建页面" -} \ No newline at end of file +} diff --git a/extensions/iceworks-page-builder/src/extension.ts b/extensions/iceworks-page-builder/src/extension.ts index 489617505..ca1f40475 100644 --- a/extensions/iceworks-page-builder/src/extension.ts +++ b/extensions/iceworks-page-builder/src/extension.ts @@ -23,16 +23,23 @@ export function activate(context: vscode.ExtensionContext) { initExtension(context); function activeWebview() { - const webviewPanel: vscode.WebviewPanel = window.createWebviewPanel('iceworks', i18n.format('extension.iceworksPageBuilder.extensnion.webViewTitle'), ViewColumn.One, { - enableScripts: true, - retainContextWhenHidden: true, - }); + const webviewPanel: vscode.WebviewPanel = window.createWebviewPanel( + 'iceworks', + i18n.format('extension.iceworksPageBuilder.extensnion.webViewTitle'), + ViewColumn.One, + { + enableScripts: true, + retainContextWhenHidden: true, + } + ); webviewPanel.webview.html = getHtmlForWebview(extensionPath); connectService(webviewPanel, context, { services, logger }); } - subscriptions.push(vscode.commands.registerCommand('iceworks-page-builder.create', function () { - activeWebview(); - })); + subscriptions.push( + vscode.commands.registerCommand('iceworks-page-builder.create', function () { + activeWebview(); + }) + ); } -export function deactivate() { } +export function deactivate() {} diff --git a/extensions/iceworks-page-builder/src/i18n.ts b/extensions/iceworks-page-builder/src/i18n.ts index 612c0c8ba..6cd9f9895 100644 --- a/extensions/iceworks-page-builder/src/i18n.ts +++ b/extensions/iceworks-page-builder/src/i18n.ts @@ -11,4 +11,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/extensions/iceworks-page-builder/src/locales/en-US.json b/extensions/iceworks-page-builder/src/locales/en-US.json index 761450258..7c2657d78 100644 --- a/extensions/iceworks-page-builder/src/locales/en-US.json +++ b/extensions/iceworks-page-builder/src/locales/en-US.json @@ -1,3 +1,3 @@ { - "extension.iceworksPageBuilder.extensnion.webViewTitle": "Generate Page - Iceworks" -} \ No newline at end of file + "extension.iceworksPageBuilder.extensnion.webViewTitle": "Generate Page - Iceworks" +} diff --git a/extensions/iceworks-page-builder/src/locales/zh-CN.json b/extensions/iceworks-page-builder/src/locales/zh-CN.json index ad19d2444..d841d5609 100644 --- a/extensions/iceworks-page-builder/src/locales/zh-CN.json +++ b/extensions/iceworks-page-builder/src/locales/zh-CN.json @@ -1,3 +1,3 @@ { - "extension.iceworksPageBuilder.extensnion.webViewTitle": "生成页面 - Iceworks" -} \ No newline at end of file + "extension.iceworksPageBuilder.extensnion.webViewTitle": "生成页面 - Iceworks" +} diff --git a/extensions/iceworks-page-builder/src/types.d.ts b/extensions/iceworks-page-builder/src/types.d.ts index 3b240b2ad..7d5f55ff6 100644 --- a/extensions/iceworks-page-builder/src/types.d.ts +++ b/extensions/iceworks-page-builder/src/types.d.ts @@ -1,6 +1,5 @@ // TODO hack for build declare module 'vfile-message' { // eslint-disable-next-line - interface VFileMessage { - } + interface VFileMessage {} } diff --git a/extensions/iceworks-page-builder/tsconfig.json b/extensions/iceworks-page-builder/tsconfig.json index b2d0152a0..741134a4b 100644 --- a/extensions/iceworks-page-builder/tsconfig.json +++ b/extensions/iceworks-page-builder/tsconfig.json @@ -1,15 +1,10 @@ { - "extends": "../../tsconfig.extension.json", - "compilerOptions": { - "rootDir": "./", - "outDir": "build", - "resolveJsonModule": true - }, - "include": [ - "src" - ], - "exclude": [ - ".vscode-test", - "web" - ] -} \ No newline at end of file + "extends": "../../tsconfig.extension.json", + "compilerOptions": { + "rootDir": "./", + "outDir": "build", + "resolveJsonModule": true + }, + "include": ["src"], + "exclude": [".vscode-test", "web"] +} diff --git a/extensions/iceworks-page-builder/web/build.json b/extensions/iceworks-page-builder/web/build.json index 228027dc5..907b22a91 100644 --- a/extensions/iceworks-page-builder/web/build.json +++ b/extensions/iceworks-page-builder/web/build.json @@ -18,9 +18,7 @@ [ "build-plugin-moment-locales", { - "locales": [ - "zh-cn" - ] + "locales": ["zh-cn"] } ], [ @@ -31,4 +29,4 @@ ], "./build.plugin.js" ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-page-builder/web/build.plugin.js b/extensions/iceworks-page-builder/web/build.plugin.js index 8d0c006f9..4bcbc7878 100644 --- a/extensions/iceworks-page-builder/web/build.plugin.js +++ b/extensions/iceworks-page-builder/web/build.plugin.js @@ -1,8 +1,5 @@ -module.exports = ({onGetWebpackConfig}) => { +module.exports = ({ onGetWebpackConfig }) => { onGetWebpackConfig((config) => { - config.node - .set('fs', 'empty') - .set('net', 'empty') - .set('tls', 'empty'); + config.node.set('fs', 'empty').set('net', 'empty').set('tls', 'empty'); }); -} +}; diff --git a/extensions/iceworks-page-builder/web/mocks/blocks.json b/extensions/iceworks-page-builder/web/mocks/blocks.json index ff656cfd7..7ce0f55f3 100644 --- a/extensions/iceworks-page-builder/web/mocks/blocks.json +++ b/extensions/iceworks-page-builder/web/mocks/blocks.json @@ -4,32 +4,28 @@ "title": "AdvancedDetailHead", "category": "Information", "views": [ - { - "title": "", - "props": {}, - "screenshot": "build/views/block_view1.png", - "html": "build/views/block_view1.html" - } + { + "title": "", + "props": {}, + "screenshot": "build/views/block_view1.png", + "html": "build/views/block_view1.html" + } ], "screenshot": "https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-advanced-detail@0.1.9/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/AdvancedDetail", "source": { - "type": "npm", - "npm": "@alifd/fusion-advanced-detail", - "version": "0.1.9", - "registry": "https://registry.npmjs.org" + "type": "npm", + "npm": "@alifd/fusion-advanced-detail", + "version": "0.1.9", + "registry": "https://registry.npmjs.org" }, "dependencies": { - "prop-types": "^15.5.8" + "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png"], "publishTime": "2019-11-28T11:30:32.213Z", "updateTime": "2020-03-31T12:36:39.300Z" }, @@ -38,32 +34,28 @@ "title": "BasicDetail", "category": "Information", "views": [ - { - "title": "", - "props": {}, - "screenshot": "build/views/block_view1.png", - "html": "build/views/block_view1.html" - } + { + "title": "", + "props": {}, + "screenshot": "build/views/block_view1.png", + "html": "build/views/block_view1.html" + } ], "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { - "type": "npm", - "npm": "@alifd/fusion-basic-detail", - "version": "0.1.7", - "registry": "https://registry.npmjs.org" + "type": "npm", + "npm": "@alifd/fusion-basic-detail", + "version": "0.1.7", + "registry": "https://registry.npmjs.org" }, "dependencies": { - "prop-types": "^15.5.8" + "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" } diff --git a/extensions/iceworks-page-builder/web/mocks/material/getData.json b/extensions/iceworks-page-builder/web/mocks/material/getData.json index 5248c4cc5..3ce2530c0 100644 --- a/extensions/iceworks-page-builder/web/mocks/material/getData.json +++ b/extensions/iceworks-page-builder/web/mocks/material/getData.json @@ -25,9 +25,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-advanced-detail@0.1.9/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/AdvancedDetail", "source": { "type": "npm", @@ -38,9 +36,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-advanced-detail/screenshot.png"], "publishTime": "2019-11-28T11:30:32.213Z", "updateTime": "2020-03-31T12:36:39.300Z" }, @@ -59,9 +55,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -72,9 +66,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" }, @@ -93,9 +85,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -106,9 +96,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" }, @@ -127,9 +115,7 @@ "screenshot": "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png", "description": "intro block", "homepage": "https://unpkg.com/@alifd/fusion-basic-detail@0.1.7/build/index.html", - "categories": [ - "Information" - ], + "categories": ["Information"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/blocks/BasicDetail", "source": { "type": "npm", @@ -140,9 +126,7 @@ "dependencies": { "prop-types": "^15.5.8" }, - "screenshots": [ - "https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png" - ], + "screenshots": ["https://unpkg.com/@alifd/fusion-basic-detail/screenshot.png"], "publishTime": "2019-11-28T11:38:31.720Z", "updateTime": "2020-03-31T12:52:50.478Z" } @@ -154,9 +138,7 @@ "category": "DataDisplay", "description": "anchor", "homepage": "https://unpkg.com/@alifd/biz-anchor@1.1.7/build/index.html", - "categories": [ - "DataDisplay" - ], + "categories": ["DataDisplay"], "source": { "type": "npm", "npm": "@alifd/biz-anchor", @@ -206,9 +188,7 @@ "views": [], "description": "使用 JavaScript,包含大量 UI 区块,比如图表、表单等。", "homepage": "https://unpkg.com/@alifd/fusion-design-pro-js@0.1.16/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/fusion-design-pro-js", "source": { "type": "npm", @@ -229,9 +209,7 @@ "@types/react": "^16.9.13", "@types/react-dom": "^16.9.4" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png"], "publishTime": "2019-12-27T08:53:04.370Z", "updateTime": "2020-04-08T05:25:39.472Z" }, @@ -243,9 +221,7 @@ "views": [], "description": "使用 TypeScript,包含大量 UI 区块,比如图表、表单等。", "homepage": "https://unpkg.com/@alifd/fusion-design-pro@0.1.29/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/fusion-design-pro", "source": { "type": "npm", @@ -266,11 +242,9 @@ "@types/react": "^16.9.13", "@types/react-dom": "^16.9.4" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png"], "publishTime": "2019-11-07T09:05:00.572Z", "updateTime": "2020-04-08T05:28:38.818Z" } ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-page-builder/web/mocks/material/getSourcesByProjectType.json b/extensions/iceworks-page-builder/web/mocks/material/getSourcesByProjectType.json index d3865ad3b..a49064db7 100644 --- a/extensions/iceworks-page-builder/web/mocks/material/getSourcesByProjectType.json +++ b/extensions/iceworks-page-builder/web/mocks/material/getSourcesByProjectType.json @@ -11,4 +11,4 @@ "source": "https://ice.alicdn.com/assets/materials/rax-materials.json", "description": "基于 Rax 组件和 Rax 脚手架的官方物料" } -] \ No newline at end of file +] diff --git a/extensions/iceworks-page-builder/web/src/global.scss b/extensions/iceworks-page-builder/web/src/global.scss index e5f89a10e..c584672be 100644 --- a/extensions/iceworks-page-builder/web/src/global.scss +++ b/extensions/iceworks-page-builder/web/src/global.scss @@ -1,5 +1,5 @@ // 引入默认全局样式 -@import "@alifd/next/reset.scss"; +@import '@alifd/next/reset.scss'; body { -webkit-font-smoothing: antialiased; diff --git a/extensions/iceworks-page-builder/web/src/i18n.tsx b/extensions/iceworks-page-builder/web/src/i18n.tsx index bf92a74cf..a82e9b0f7 100644 --- a/extensions/iceworks-page-builder/web/src/i18n.tsx +++ b/extensions/iceworks-page-builder/web/src/i18n.tsx @@ -1,5 +1,5 @@ -import { createIntl, RawIntlProvider } from 'react-intl'; -import React, { useEffect, useState } from 'react' +import { createIntl, RawIntlProvider } from 'react-intl'; +import React, { useEffect, useState } from 'react'; import { ConfigProvider, Loading } from '@alifd/next'; import enUSNextMessages from '@alifd/next/lib/locale/en-us'; import zhCNNextMessages from '@alifd/next/lib/locale/zh-cn'; @@ -11,46 +11,50 @@ import zhCNMessages from './locales/zh-CN.json'; const DEFAULT_LOCALE = 'zh-cn'; export const localeMessages = { - 'en': { + en: { messages: enUSMessages, nextMessages: enUSNextMessages, }, - 'zh-cn':{ + 'zh-cn': { messages: zhCNMessages, nextMessages: zhCNNextMessages, }, }; -const getIntl = (locale: string) =>{ +const getIntl = (locale: string) => { let localeMessage = localeMessages[locale]; if (!localeMessage) { locale = DEFAULT_LOCALE; localeMessage = localeMessages[locale]; } - return createIntl({locale, messages: localeMessage.messages}); -} -export const LocaleProvider = (props)=>{ + return createIntl({ locale, messages: localeMessage.messages }); +}; +export const LocaleProvider = (props) => { const [i18n, setI18n] = useState(() => getIntl(DEFAULT_LOCALE)); - const [loading, setLoading] = useState(true) - useEffect(()=>{ - async function initI18n(){ + const [loading, setLoading] = useState(true); + useEffect(() => { + async function initI18n() { try { const lang = await callService('common', 'getLanguage'); setI18n(getIntl(lang)); - } catch(e) { + } catch (e) { // ignore i18n error, just using default language } finally { setLoading(false); } } initI18n(); - },[]); + }, []); return ( - {loading ? : React.Children.only(props.children)} + {loading ? ( + + ) : ( + React.Children.only(props.children) + )} - ) -} \ No newline at end of file + ); +}; diff --git a/extensions/iceworks-page-builder/web/src/locales/en-US.json b/extensions/iceworks-page-builder/web/src/locales/en-US.json index 6006854b0..301e8816f 100644 --- a/extensions/iceworks-page-builder/web/src/locales/en-US.json +++ b/extensions/iceworks-page-builder/web/src/locales/en-US.json @@ -1,11 +1,11 @@ { - "web.iceworksPageBuilder.Home.failGetMaterial": "Fail to get materials. Please try agin later.", - "web.iceworksPageBuilder.Home.failGetData": "Fail to get material data. Please try agin later.", - "web.iceworksPageBuilder.Home.enterPageName": "Please enter page name.", - "web.iceworksPageBuilder.Home.successCreatePage": "Page created successfully.", - "web.iceworksPageBuilder.Home.enterPageNameTitle": "1. Enter Page Name", - "web.iceworksPageBuilder.Home.pageNameFormat": "Page name must starts with [A-Z] and only contains letters and numbers. Special characters are not allowed.", - "web.iceworksPageBuilder.Home.chooseBlock": "2. Choose Blocks:", - "web.iceworksPageBuilder.Home.createPage": "Create Page", - "web.iceworksPageBuilder.Home.PageSelect.SelectFromRight": "Please choose block from the right side." -} \ No newline at end of file + "web.iceworksPageBuilder.Home.failGetMaterial": "Fail to get materials. Please try agin later.", + "web.iceworksPageBuilder.Home.failGetData": "Fail to get material data. Please try agin later.", + "web.iceworksPageBuilder.Home.enterPageName": "Please enter page name.", + "web.iceworksPageBuilder.Home.successCreatePage": "Page created successfully.", + "web.iceworksPageBuilder.Home.enterPageNameTitle": "1. Enter Page Name", + "web.iceworksPageBuilder.Home.pageNameFormat": "Page name must starts with [A-Z] and only contains letters and numbers. Special characters are not allowed.", + "web.iceworksPageBuilder.Home.chooseBlock": "2. Choose Blocks:", + "web.iceworksPageBuilder.Home.createPage": "Create Page", + "web.iceworksPageBuilder.Home.PageSelect.SelectFromRight": "Please choose block from the right side." +} diff --git a/extensions/iceworks-page-builder/web/src/locales/zh-CN.json b/extensions/iceworks-page-builder/web/src/locales/zh-CN.json index cfbbe0ca9..dc6e2e8b6 100644 --- a/extensions/iceworks-page-builder/web/src/locales/zh-CN.json +++ b/extensions/iceworks-page-builder/web/src/locales/zh-CN.json @@ -1,11 +1,11 @@ { - "web.iceworksPageBuilder.Home.failGetMaterial": "获取物料源失败,请稍后再试。", - "web.iceworksPageBuilder.Home.failGetData": "获取物料集合信息失败,请稍后再试。", - "web.iceworksPageBuilder.Home.enterPageName": "请填写页面名称。", - "web.iceworksPageBuilder.Home.successCreatePage": "生成页面成功", - "web.iceworksPageBuilder.Home.enterPageNameTitle": "1. 填写页面名称:", - "web.iceworksPageBuilder.Home.pageNameFormat": "名称必须英文字母 A-Z 开头,只包含英文和数字,不允许有特殊字符", - "web.iceworksPageBuilder.Home.chooseBlock": "2. 选择区块:", - "web.iceworksPageBuilder.Home.createPage": "生成页面", - "web.iceworksPageBuilder.Home.PageSelect.SelectFromRight": "请从右侧选择区块。" -} \ No newline at end of file + "web.iceworksPageBuilder.Home.failGetMaterial": "获取物料源失败,请稍后再试。", + "web.iceworksPageBuilder.Home.failGetData": "获取物料集合信息失败,请稍后再试。", + "web.iceworksPageBuilder.Home.enterPageName": "请填写页面名称。", + "web.iceworksPageBuilder.Home.successCreatePage": "生成页面成功", + "web.iceworksPageBuilder.Home.enterPageNameTitle": "1. 填写页面名称:", + "web.iceworksPageBuilder.Home.pageNameFormat": "名称必须英文字母 A-Z 开头,只包含英文和数字,不允许有特殊字符", + "web.iceworksPageBuilder.Home.chooseBlock": "2. 选择区块:", + "web.iceworksPageBuilder.Home.createPage": "生成页面", + "web.iceworksPageBuilder.Home.PageSelect.SelectFromRight": "请从右侧选择区块。" +} diff --git a/extensions/iceworks-page-builder/web/src/pages/Home/components/PageSelected/index.tsx b/extensions/iceworks-page-builder/web/src/pages/Home/components/PageSelected/index.tsx index 0336aa8c9..6cf12cfd7 100644 --- a/extensions/iceworks-page-builder/web/src/pages/Home/components/PageSelected/index.tsx +++ b/extensions/iceworks-page-builder/web/src/pages/Home/components/PageSelected/index.tsx @@ -21,14 +21,14 @@ export const SelectedBlock = SortableElement( autoFocus value={name} className={styles.input} - onChange={value => onNameChange(value, targetIndex)} + onChange={(value) => onNameChange(value, targetIndex)} /> - +
- onDelete(targetIndex)} /> + onDelete(targetIndex)} /> ); - }, + } ); const PageSelected = SortableContainer(({ blocks, onNameChange, onDelete, isSorting }) => { @@ -37,29 +37,24 @@ const PageSelected = SortableContainer(({ blocks, onNameChange, onDelete, isSort
{blocks.length ? (
- { - blocks.map((block, index) => { - return ( - - ); - }) - } + {blocks.map((block, index) => { + return ( + + ); + })}
) : (
- Block - + Block +
)}
diff --git a/extensions/iceworks-page-builder/web/src/pages/Home/index.module.scss b/extensions/iceworks-page-builder/web/src/pages/Home/index.module.scss index 750e9c464..990bd7da7 100644 --- a/extensions/iceworks-page-builder/web/src/pages/Home/index.module.scss +++ b/extensions/iceworks-page-builder/web/src/pages/Home/index.module.scss @@ -34,7 +34,7 @@ } } - a[rel="noopener noreferrer"] { + a[rel='noopener noreferrer'] { color: $color-text1-4; text-decoration: none; } diff --git a/extensions/iceworks-page-builder/web/src/pages/Home/index.tsx b/extensions/iceworks-page-builder/web/src/pages/Home/index.tsx index d6ed20d12..74cfd658c 100644 --- a/extensions/iceworks-page-builder/web/src/pages/Home/index.tsx +++ b/extensions/iceworks-page-builder/web/src/pages/Home/index.tsx @@ -8,7 +8,6 @@ import PageSelected from './components/PageSelected'; import callService from '../../callService'; import styles from './index.module.scss'; - const { Row, Col } = Grid; const Home = () => { @@ -23,19 +22,19 @@ const Home = () => { try { sources = await callService('material', 'getSourcesByProjectType'); } catch (e) { - Notification.error({ content: intl.formatMessage({id: 'web.iceworksPageBuilder.Home.failGetMaterial'}) }); + Notification.error({ content: intl.formatMessage({ id: 'web.iceworksPageBuilder.Home.failGetMaterial' }) }); } - + console.log('getSources', sources); return sources; } - + async function getData(source: string) { let data = {}; try { data = await callService('material', 'getData', source); } catch (e) { - Notification.error({ content: intl.formatMessage({id: 'web.iceworksPageBuilder.Home.failGetData'}) }); + Notification.error({ content: intl.formatMessage({ id: 'web.iceworksPageBuilder.Home.failGetData' }) }); } console.log('getData', data); return data; @@ -43,7 +42,7 @@ const Home = () => { function validateData({ blocks, pageName }) { if (!pageName) { - return intl.formatMessage({id: 'web.iceworksPageBuilder.Home.enterPageName'}); + return intl.formatMessage({ id: 'web.iceworksPageBuilder.Home.enterPageName' }); } return ''; } @@ -106,7 +105,7 @@ const Home = () => { } setIsCreating(false); - Notification.success({ content: intl.formatMessage({id: 'web.iceworksPageBuilder.Home.successCreatePage'}) }); + Notification.success({ content: intl.formatMessage({ id: 'web.iceworksPageBuilder.Home.successCreatePage' }) }); resetData(); } @@ -115,11 +114,11 @@ const Home = () => {
- +
setPageName(value)} @@ -129,14 +128,14 @@ const Home = () => {
- +
{
-
); }; -const IntlHome = ()=>{ +const IntlHome = () => { return ( - + - ) -} + ); +}; export default IntlHome; diff --git a/extensions/iceworks-page-builder/web/src/variables.scss b/extensions/iceworks-page-builder/web/src/variables.scss index 221ec919a..80ffda58d 100644 --- a/extensions/iceworks-page-builder/web/src/variables.scss +++ b/extensions/iceworks-page-builder/web/src/variables.scss @@ -6,7 +6,7 @@ $body-background: #161616; $component-background: #161d22; // text -$text-color: rgba(255, 255, 255, 0.8);; +$text-color: rgba(255, 255, 255, 0.8); $text-color-secondary: rgba(153, 153, 153, 0.8); // link @@ -18,7 +18,7 @@ $warning-color: #613400; $highlight-color: #a8071a; // header -$heading-color: #E3E3E3; +$heading-color: #e3e3e3; // border $border-color-base: rgba(153, 153, 153, 0.25); @@ -99,7 +99,6 @@ $screen-xl: 1208px; $screen-lg: 1024px; $screen-md: 768px; - // 移动 $screen-sm: 767.9px; // 超小屏 diff --git a/extensions/iceworks-page-builder/web/tsconfig.json b/extensions/iceworks-page-builder/web/tsconfig.json index 91ccbe96d..a83b4ad1a 100644 --- a/extensions/iceworks-page-builder/web/tsconfig.json +++ b/extensions/iceworks-page-builder/web/tsconfig.json @@ -5,24 +5,12 @@ "outDir": "build", "rootDir": "./", "paths": { - "@/*": [ - "./src/*" - ], - "ice": [ - ".ice/index.ts" - ], - "ice/*": [ - ".ice/pages/*" - ] + "@/*": ["./src/*"], + "ice": [".ice/index.ts"], + "ice/*": [".ice/pages/*"] }, "resolveJsonModule": true }, - "include": [ - "src/*", - ".ice" - ], - "exclude": [ - "node_modules", - "public" - ] -} \ No newline at end of file + "include": ["src/*", ".ice"], + "exclude": ["node_modules", "public"] +} diff --git a/extensions/iceworks-page-builder/webpack.config.js b/extensions/iceworks-page-builder/webpack.config.js index 7e1f3f232..7883196e7 100644 --- a/extensions/iceworks-page-builder/webpack.config.js +++ b/extensions/iceworks-page-builder/webpack.config.js @@ -9,14 +9,14 @@ const config = { path: path.resolve(__dirname, 'build'), filename: 'extension.js', libraryTarget: 'commonjs2', - devtoolModuleFilenameTemplate: '../[resource-path]' + devtoolModuleFilenameTemplate: '../[resource-path]', }, externals: { vscode: 'commonjs vscode', - prettier: 'commonjs prettier' + prettier: 'commonjs prettier', }, resolve: { - extensions: ['.ts', '.js'] + extensions: ['.ts', '.js'], }, module: { rules: [ @@ -29,11 +29,11 @@ const config = { transpileOnly: true, configFile: tsConfigPath, }, - } - ] - } - ] - } + }, + ], + }, + ], + }, }; module.exports = (env, argv) => { diff --git a/extensions/iceworks-project-creator/.vscode/launch.json b/extensions/iceworks-project-creator/.vscode/launch.json index d4bc72346..e5ea897b0 100644 --- a/extensions/iceworks-project-creator/.vscode/launch.json +++ b/extensions/iceworks-project-creator/.vscode/launch.json @@ -3,20 +3,16 @@ // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 { - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Extension", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/build/*.js" - ], - "preLaunchTask": "npm: webpack" - }, - ] -} \ No newline at end of file + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/build/*.js"], + "preLaunchTask": "npm: webpack" + } + ] +} diff --git a/extensions/iceworks-project-creator/.vscode/tasks.json b/extensions/iceworks-project-creator/.vscode/tasks.json index 3b17e53b6..078ff7e01 100644 --- a/extensions/iceworks-project-creator/.vscode/tasks.json +++ b/extensions/iceworks-project-creator/.vscode/tasks.json @@ -1,20 +1,20 @@ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format { - "version": "2.0.0", - "tasks": [ - { - "type": "npm", - "script": "watch", - "problemMatcher": "$tsc-watch", - "isBackground": true, - "presentation": { - "reveal": "never" - }, - "group": { - "kind": "build", - "isDefault": true - } - } - ] + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "watch", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "presentation": { + "reveal": "never" + }, + "group": { + "kind": "build", + "isDefault": true + } + } + ] } diff --git a/extensions/iceworks-project-creator/package.json b/extensions/iceworks-project-creator/package.json index 7ef9a3d34..92038031b 100644 --- a/extensions/iceworks-project-creator/package.json +++ b/extensions/iceworks-project-creator/package.json @@ -100,4 +100,4 @@ "url": "https://github.com/ice-lab/iceworks/issues", "email": "iceworksteam@163.com" } -} \ No newline at end of file +} diff --git a/extensions/iceworks-project-creator/package.nls.json b/extensions/iceworks-project-creator/package.nls.json index 2443df460..12f38193d 100644 --- a/extensions/iceworks-project-creator/package.nls.json +++ b/extensions/iceworks-project-creator/package.nls.json @@ -1,3 +1,3 @@ { "iceworksProjectCreator.commands.start.title": "Iceworks: Create Application" -} \ No newline at end of file +} diff --git a/extensions/iceworks-project-creator/package.nls.zh-cn.json b/extensions/iceworks-project-creator/package.nls.zh-cn.json index daa2ff6e0..bc9f58f78 100644 --- a/extensions/iceworks-project-creator/package.nls.zh-cn.json +++ b/extensions/iceworks-project-creator/package.nls.zh-cn.json @@ -1,3 +1,3 @@ { "iceworksProjectCreator.commands.start.title": "Iceworks: 创建应用" -} \ No newline at end of file +} diff --git a/extensions/iceworks-project-creator/src/extension.ts b/extensions/iceworks-project-creator/src/extension.ts index 31718d71d..592173804 100644 --- a/extensions/iceworks-project-creator/src/extension.ts +++ b/extensions/iceworks-project-creator/src/extension.ts @@ -2,7 +2,7 @@ import * as vscode from 'vscode'; import { connectService, getHtmlForWebview } from '@iceworks/vscode-webview/lib/vscode'; import { initExtension, Logger } from '@iceworks/common-service'; import services from './services/index'; -import i18n from './i18n' +import i18n from './i18n'; // eslint-disable-next-line const { name, version } = require('../package.json'); @@ -27,10 +27,15 @@ export function activate(context: vscode.ExtensionContext) { if (webviewPanel) { webviewPanel.reveal(); } else { - webviewPanel = window.createWebviewPanel('iceworks', i18n.format('extension.iceworksProjectCreator.extension.webViewTitle'), ViewColumn.One, { - enableScripts: true, - retainContextWhenHidden: true, - }); + webviewPanel = window.createWebviewPanel( + 'iceworks', + i18n.format('extension.iceworksProjectCreator.extension.webViewTitle'), + ViewColumn.One, + { + enableScripts: true, + retainContextWhenHidden: true, + } + ); webviewPanel.webview.html = getHtmlForWebview(extensionPath); webviewPanel.onDidDispose( () => { @@ -43,9 +48,11 @@ export function activate(context: vscode.ExtensionContext) { } } - subscriptions.push(vscode.commands.registerCommand('iceworks-project-creator.start', function () { - activeWebview(); - })); + subscriptions.push( + vscode.commands.registerCommand('iceworks-project-creator.start', function () { + activeWebview(); + }) + ); const stateKey = 'iceworks.projectCreator.autoActivedWebview'; if (!globalState.get(stateKey)) { diff --git a/extensions/iceworks-project-creator/src/i18n.ts b/extensions/iceworks-project-creator/src/i18n.ts index 612c0c8ba..6cd9f9895 100644 --- a/extensions/iceworks-project-creator/src/i18n.ts +++ b/extensions/iceworks-project-creator/src/i18n.ts @@ -11,4 +11,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/extensions/iceworks-project-creator/src/locales/en-US.json b/extensions/iceworks-project-creator/src/locales/en-US.json index ce584c249..45ee9cdca 100644 --- a/extensions/iceworks-project-creator/src/locales/en-US.json +++ b/extensions/iceworks-project-creator/src/locales/en-US.json @@ -1,3 +1,3 @@ { - "extension.iceworksProjectCreator.extension.webViewTitle": "Create Project - Iceworks" -} \ No newline at end of file + "extension.iceworksProjectCreator.extension.webViewTitle": "Create Project - Iceworks" +} diff --git a/extensions/iceworks-project-creator/src/locales/zh-CN.json b/extensions/iceworks-project-creator/src/locales/zh-CN.json index 4e93069cd..c93532777 100644 --- a/extensions/iceworks-project-creator/src/locales/zh-CN.json +++ b/extensions/iceworks-project-creator/src/locales/zh-CN.json @@ -1,3 +1,3 @@ { - "extension.iceworksProjectCreator.extension.webViewTitle": "创建应用 - Iceworks" -} \ No newline at end of file + "extension.iceworksProjectCreator.extension.webViewTitle": "创建应用 - Iceworks" +} diff --git a/extensions/iceworks-project-creator/src/types.d.ts b/extensions/iceworks-project-creator/src/types.d.ts index 3b240b2ad..7d5f55ff6 100644 --- a/extensions/iceworks-project-creator/src/types.d.ts +++ b/extensions/iceworks-project-creator/src/types.d.ts @@ -1,6 +1,5 @@ // TODO hack for build declare module 'vfile-message' { // eslint-disable-next-line - interface VFileMessage { - } + interface VFileMessage {} } diff --git a/extensions/iceworks-project-creator/tsconfig.json b/extensions/iceworks-project-creator/tsconfig.json index b2d0152a0..741134a4b 100644 --- a/extensions/iceworks-project-creator/tsconfig.json +++ b/extensions/iceworks-project-creator/tsconfig.json @@ -1,15 +1,10 @@ { - "extends": "../../tsconfig.extension.json", - "compilerOptions": { - "rootDir": "./", - "outDir": "build", - "resolveJsonModule": true - }, - "include": [ - "src" - ], - "exclude": [ - ".vscode-test", - "web" - ] -} \ No newline at end of file + "extends": "../../tsconfig.extension.json", + "compilerOptions": { + "rootDir": "./", + "outDir": "build", + "resolveJsonModule": true + }, + "include": ["src"], + "exclude": [".vscode-test", "web"] +} diff --git a/extensions/iceworks-project-creator/web/build.json b/extensions/iceworks-project-creator/web/build.json index 228027dc5..907b22a91 100644 --- a/extensions/iceworks-project-creator/web/build.json +++ b/extensions/iceworks-project-creator/web/build.json @@ -18,9 +18,7 @@ [ "build-plugin-moment-locales", { - "locales": [ - "zh-cn" - ] + "locales": ["zh-cn"] } ], [ @@ -31,4 +29,4 @@ ], "./build.plugin.js" ] -} \ No newline at end of file +} diff --git a/extensions/iceworks-project-creator/web/build.plugin.js b/extensions/iceworks-project-creator/web/build.plugin.js index 37db80f9d..7d33c7148 100644 --- a/extensions/iceworks-project-creator/web/build.plugin.js +++ b/extensions/iceworks-project-creator/web/build.plugin.js @@ -3,12 +3,9 @@ module.exports = ({ onGetWebpackConfig, context }) => { 'process.env.CLIENT_TOKEN': JSON.stringify(process.env.CLIENT_TOKEN), }; onGetWebpackConfig((config) => { - config - .plugin('DefinePlugin') - .tap(([args]) => { - return [{ ...args, ...defineVariables }]; - }); - config.node - .set('fs', 'empty'); + config.plugin('DefinePlugin').tap(([args]) => { + return [{ ...args, ...defineVariables }]; + }); + config.node.set('fs', 'empty'); }); }; diff --git a/extensions/iceworks-project-creator/web/mocks/material/getSources.json b/extensions/iceworks-project-creator/web/mocks/material/getSources.json index d3865ad3b..a49064db7 100644 --- a/extensions/iceworks-project-creator/web/mocks/material/getSources.json +++ b/extensions/iceworks-project-creator/web/mocks/material/getSources.json @@ -11,4 +11,4 @@ "source": "https://ice.alicdn.com/assets/materials/rax-materials.json", "description": "基于 Rax 组件和 Rax 脚手架的官方物料" } -] \ No newline at end of file +] diff --git a/extensions/iceworks-project-creator/web/mocks/project/getScaffolds.json b/extensions/iceworks-project-creator/web/mocks/project/getScaffolds.json index f49a508ca..4e99b5008 100644 --- a/extensions/iceworks-project-creator/web/mocks/project/getScaffolds.json +++ b/extensions/iceworks-project-creator/web/mocks/project/getScaffolds.json @@ -164,9 +164,7 @@ ], "description": "使用 JavaScript,包含大量 UI 区块,比如图表、表单等。", "homepage": "https://unpkg.com/@alifd/fusion-design-pro-js@0.1.16/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/fusion-design-pro-js", "source": { "type": "npm", @@ -187,9 +185,7 @@ "@types/react": "^16.9.13", "@types/react-dom": "^16.9.4" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png"], "publishTime": "2019-12-27T08:53:04.370Z", "updateTime": "2020-04-08T05:25:39.472Z" }, @@ -358,9 +354,7 @@ ], "description": "使用 TypeScript,包含大量 UI 区块,比如图表、表单等。", "homepage": "https://unpkg.com/@alifd/fusion-design-pro@0.1.29/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/fusion-design-pro", "source": { "type": "npm", @@ -381,18 +375,14 @@ "@types/react": "^16.9.13", "@types/react-dom": "^16.9.4" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB16ftixUY1gK0jSZFMXXaWcVXa-2880-1800.png"], "publishTime": "2019-11-07T09:05:00.572Z", "updateTime": "2020-04-08T05:28:38.818Z" }, { "name": "ice-stark-child", "title": "icestark 子应用", - "categories": [ - "icestark" - ], + "categories": ["icestark"], "screenshot": "https://img.alicdn.com/tfs/TB1X5.paYr1gK0jSZFDXXb9yVXa-2480-1200.png", "description": "微前端方案 icestark 的子应用模板,用于快速初始化微应用", "homepage": "https://unpkg.com/@icedesign/stark-child-scaffold@latest/build/index.html", @@ -415,9 +405,7 @@ "react": "^16.6.0", "react-dom": "^16.6.0" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB1X5.paYr1gK0jSZFDXXb9yVXa-2480-1200.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB1X5.paYr1gK0jSZFDXXb9yVXa-2480-1200.png"], "publishTime": "2019-07-22T07:13:43.198Z", "updateTime": "2020-03-10T07:26:23.963Z" }, @@ -425,9 +413,7 @@ "builder": "ice-scripts", "name": "ice-stark-layout", "title": "icestark 框架应用", - "categories": [ - "icestark" - ], + "categories": ["icestark"], "screenshot": "https://img.alicdn.com/tfs/TB11qbKv.T1gK0jSZFrXXcNCXXa-2878-1640.png", "description": "微前端方案 icestark 的框架应用模板,用于快速初始化框架应用", "homepage": "https://ice-lab.zeroling.com/", @@ -451,9 +437,7 @@ "react": "^16.8.0", "react-dom": "^16.8.0" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB11qbKv.T1gK0jSZFrXXcNCXXa-2878-1640.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB11qbKv.T1gK0jSZFrXXcNCXXa-2878-1640.png"], "publishTime": "2019-07-22T04:24:57.724Z", "updateTime": "2020-03-26T11:38:55.281Z" }, @@ -464,9 +448,7 @@ "screenshot": "https://img.alicdn.com/tfs/TB12CtTsEY1gK0jSZFMXXaWcVXa-2480-1200.png", "description": "轻量级模板,使用 JavaScript,仅包含基础的 Layout。", "homepage": "https://unpkg.com/@alifd/scaffold-lite-js@0.1.6/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/scaffold-lite-js", "source": { "type": "npm", @@ -481,9 +463,7 @@ "react-dom": "^16.4.1", "@alifd/theme-design-pro": "^0.x" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB12CtTsEY1gK0jSZFMXXaWcVXa-2480-1200.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB12CtTsEY1gK0jSZFMXXaWcVXa-2480-1200.png"], "publishTime": "2020-02-15T10:40:59.375Z", "updateTime": "2020-03-08T17:13:22.276Z" }, @@ -494,9 +474,7 @@ "screenshot": "https://img.alicdn.com/tfs/TB12CtTsEY1gK0jSZFMXXaWcVXa-2480-1200.png", "description": "轻量级模板,使用 TypeScript,仅包含基础的 Layout。", "homepage": "https://unpkg.com/@alifd/scaffold-lite@0.1.6/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/scaffold-lite", "source": { "type": "npm", @@ -511,9 +489,7 @@ "react-dom": "^16.4.1", "@alifd/theme-design-pro": "^0.x" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB12CtTsEY1gK0jSZFMXXaWcVXa-2480-1200.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB12CtTsEY1gK0jSZFMXXaWcVXa-2480-1200.png"], "publishTime": "2019-12-27T08:44:59.425Z", "updateTime": "2020-03-08T17:12:55.437Z" }, @@ -524,9 +500,7 @@ "screenshot": "https://img.alicdn.com/tfs/TB1qdRsv.Y1gK0jSZFCXXcwqXXa-2878-1590.png", "description": "使用 TypeScript,未使用任何 UI 库。", "homepage": "https://unpkg.com/@alifd/scaffold-simple@0.1.6/build/index.html", - "categories": [ - "Basic" - ], + "categories": ["Basic"], "repository": "https://github.com/alibaba-fusion/materials/tree/master/scaffolds/scaffold-simple", "source": { "type": "npm", @@ -540,10 +514,8 @@ "react": "^16.4.1", "react-dom": "^16.4.1" }, - "screenshots": [ - "https://img.alicdn.com/tfs/TB1qdRsv.Y1gK0jSZFCXXcwqXXa-2878-1590.png" - ], + "screenshots": ["https://img.alicdn.com/tfs/TB1qdRsv.Y1gK0jSZFCXXcwqXXa-2878-1590.png"], "publishTime": "2020-02-19T07:56:43.292Z", "updateTime": "2020-03-04T14:54:12.698Z" } -] \ No newline at end of file +] diff --git a/extensions/iceworks-project-creator/web/package.json b/extensions/iceworks-project-creator/web/package.json index bc2cb173a..61cf55e21 100644 --- a/extensions/iceworks-project-creator/web/package.json +++ b/extensions/iceworks-project-creator/web/package.json @@ -36,4 +36,4 @@ "type": "git", "url": "https://github.com/ice-lab/iceworks.git" } -} \ No newline at end of file +} diff --git a/extensions/iceworks-project-creator/web/src/components/MenuCard/index.tsx b/extensions/iceworks-project-creator/web/src/components/MenuCard/index.tsx index 46175c0d4..e5c8c0a12 100644 --- a/extensions/iceworks-project-creator/web/src/components/MenuCard/index.tsx +++ b/extensions/iceworks-project-creator/web/src/components/MenuCard/index.tsx @@ -10,7 +10,7 @@ interface IMenuCard { style?: object; onClick?: () => void; // only for Balloon Component - // Ref: https://ice.work/component/balloon#%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F + // Ref: https://ice.work/component/balloon#%E4%BD%BF%E7%94%A8%E6%B3%A8%E6%84%8F onMouseLeave?: (e: React.MouseEvent) => void; onMouseEnter?: (e: React.MouseEvent) => void; } @@ -24,11 +24,11 @@ const MenuCard: React.FC = ({ style, title, icon, onClick, selected, onMouseLeave={onMouseLeave} onMouseEnter={onMouseEnter} > - {selected && success} - {icon && icon} + {selected && success} + {icon && icon}
{title}
- ) -} + ); +}; -export default MenuCard \ No newline at end of file +export default MenuCard; diff --git a/extensions/iceworks-project-creator/web/src/components/MobileScaffoldCard/index.tsx b/extensions/iceworks-project-creator/web/src/components/MobileScaffoldCard/index.tsx index 0147a3323..181b8eb8c 100644 --- a/extensions/iceworks-project-creator/web/src/components/MobileScaffoldCard/index.tsx +++ b/extensions/iceworks-project-creator/web/src/components/MobileScaffoldCard/index.tsx @@ -13,7 +13,14 @@ interface IMobileScaffoldCardProps { media?: string; } -const MobileScaffoldCard: React.FC = ({ title, content, selected, onClick, media, style }) => { +const MobileScaffoldCard: React.FC = ({ + title, + content, + selected, + onClick, + media, + style, +}) => { return (
= ({ title, content className={classnames(styles.card, { [styles.active]: selected })} onClick={onClick} > - {selected && success} - - {media && screenshot} - + {selected && success} + {media && screenshot} -
{content}
+
+
{content}
+
); diff --git a/extensions/iceworks-project-creator/web/src/components/NotFound/index.tsx b/extensions/iceworks-project-creator/web/src/components/NotFound/index.tsx index f9a274120..5f5e68699 100644 --- a/extensions/iceworks-project-creator/web/src/components/NotFound/index.tsx +++ b/extensions/iceworks-project-creator/web/src/components/NotFound/index.tsx @@ -4,13 +4,8 @@ import styles from './index.module.scss'; export default ({ description }) => { return (
- +
{description}
- ) -} \ No newline at end of file + ); +}; diff --git a/extensions/iceworks-project-creator/web/src/components/ScaffoldCard/index.tsx b/extensions/iceworks-project-creator/web/src/components/ScaffoldCard/index.tsx index 5d6230f6d..692e2437a 100644 --- a/extensions/iceworks-project-creator/web/src/components/ScaffoldCard/index.tsx +++ b/extensions/iceworks-project-creator/web/src/components/ScaffoldCard/index.tsx @@ -22,9 +22,9 @@ const ScaffoldCard: React.FC = ({ title, content, selected, className={classnames(styles.card, { [styles.active]: selected })} onClick={onClick} > - {selected && success} + {selected && success} - {media && screenshot} + {media && screenshot} diff --git a/extensions/iceworks-project-creator/web/src/constant.ts b/extensions/iceworks-project-creator/web/src/constant.ts index f21f84c88..5cdf2a8a2 100644 --- a/extensions/iceworks-project-creator/web/src/constant.ts +++ b/extensions/iceworks-project-creator/web/src/constant.ts @@ -3,8 +3,8 @@ export const mainScaffoldsList = [ '@alifd/scaffold-lite', '@alifd/scaffold-simple', '@rax-materials/scaffolds-app-js', - '@rax-materials/scaffolds-app-ts' -] + '@rax-materials/scaffolds-app-ts', +]; export const tsScaffoldsList = [ '@alifd/fusion-design-pro', @@ -12,11 +12,11 @@ export const tsScaffoldsList = [ '@alifd/scaffold-simple', '@icedesign/stark-layout-scaffold', '@icedesign/stark-child-scaffold', - '@rax-materials/scaffolds-app-ts' -] + '@rax-materials/scaffolds-app-ts', +]; export const jsScaffoldsList = [ '@alifd/fusion-design-pro-js', '@alifd/scaffold-lite-js', '@rax-materials/scaffolds-app-js', -] \ No newline at end of file +]; diff --git a/extensions/iceworks-project-creator/web/src/i18n.tsx b/extensions/iceworks-project-creator/web/src/i18n.tsx index bf92a74cf..a82e9b0f7 100644 --- a/extensions/iceworks-project-creator/web/src/i18n.tsx +++ b/extensions/iceworks-project-creator/web/src/i18n.tsx @@ -1,5 +1,5 @@ -import { createIntl, RawIntlProvider } from 'react-intl'; -import React, { useEffect, useState } from 'react' +import { createIntl, RawIntlProvider } from 'react-intl'; +import React, { useEffect, useState } from 'react'; import { ConfigProvider, Loading } from '@alifd/next'; import enUSNextMessages from '@alifd/next/lib/locale/en-us'; import zhCNNextMessages from '@alifd/next/lib/locale/zh-cn'; @@ -11,46 +11,50 @@ import zhCNMessages from './locales/zh-CN.json'; const DEFAULT_LOCALE = 'zh-cn'; export const localeMessages = { - 'en': { + en: { messages: enUSMessages, nextMessages: enUSNextMessages, }, - 'zh-cn':{ + 'zh-cn': { messages: zhCNMessages, nextMessages: zhCNNextMessages, }, }; -const getIntl = (locale: string) =>{ +const getIntl = (locale: string) => { let localeMessage = localeMessages[locale]; if (!localeMessage) { locale = DEFAULT_LOCALE; localeMessage = localeMessages[locale]; } - return createIntl({locale, messages: localeMessage.messages}); -} -export const LocaleProvider = (props)=>{ + return createIntl({ locale, messages: localeMessage.messages }); +}; +export const LocaleProvider = (props) => { const [i18n, setI18n] = useState(() => getIntl(DEFAULT_LOCALE)); - const [loading, setLoading] = useState(true) - useEffect(()=>{ - async function initI18n(){ + const [loading, setLoading] = useState(true); + useEffect(() => { + async function initI18n() { try { const lang = await callService('common', 'getLanguage'); setI18n(getIntl(lang)); - } catch(e) { + } catch (e) { // ignore i18n error, just using default language } finally { setLoading(false); } } initI18n(); - },[]); + }, []); return ( - {loading ? : React.Children.only(props.children)} + {loading ? ( + + ) : ( + React.Children.only(props.children) + )} - ) -} \ No newline at end of file + ); +}; diff --git a/extensions/iceworks-project-creator/web/src/locales/en-US.json b/extensions/iceworks-project-creator/web/src/locales/en-US.json index b93efb6e3..6ed64fe54 100644 --- a/extensions/iceworks-project-creator/web/src/locales/en-US.json +++ b/extensions/iceworks-project-creator/web/src/locales/en-US.json @@ -1,30 +1,30 @@ { - "web.iceworksProjectCreator.CreateProject.nextStep": "NEXT", - "web.iceworksProjectCreator.CreateProject.previous": "PREVIOUS", - "web.iceworksProjectCreator.CreateProject.createDEF": "Create DEF Application", - "web.iceworksProjectCreator.CreateProject.complete": "FINISH", - "web.iceworksProjectCreator.CreateProject.chooseTemplate": "Choose a template before create an application.", - "web.iceworksProjectCreator.CreateProject.pathExist": "The local path already exists, please select it again!", - "web.iceworksProjectCreator.CreateProject.nameExist": "The Application name already exists, please select it again!", - "web.iceworksProjectCreator.CreateProject.createProject": "Create Application", - "web.iceworksProjectCreator.CreateProject.subTitle": "Quick build application with Abundant Materials in Universal Application Development Framework.", - "web.iceworksProjectCreator.CreateProject.setting": "Setting", - "web.iceworksProjectCreator.CreateProject.refresh": "Refresh", - "web.iceworksProjectCreator.CreateDEFProjectForm.empId": "EMP", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputEmpId": "Please Enter EMP.", - "web.iceworksProjectCreator.CreateDEFProjectForm.account": "Account", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputAccount": "Please Enter Account", - "web.iceworksProjectCreator.CreateDEFProjectForm.open": "Open ", - "web.iceworksProjectCreator.CreateDEFProjectForm.copy": " copy ", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabToken": "Please Enter GitLab Token", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabGroup": "Please Enter GitLab Group", - "web.iceworksProjectCreator.CreateDEFProjectForm.reposity": "Reposity", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputReposity": "Enter Reposity", - "web.iceworksProjectCreator.CreateProjectForm.projectName": "Application Name", - "web.iceworksProjectCreator.CreateProjectForm.inputProjectName": "Please Enter Application Name", - "web.iceworksProjectCreator.CreateProjectForm.projectNamePattern": "Application name must starts with letters and only contains letters and numbers. Special characters are not allowed", - "web.iceworksProjectCreator.CreateProjectForm.storage": "Local Path", - "web.iceworksProjectCreator.CreateProjectForm.chooseLocalPath": "Choose Local Path for Application", - "web.iceworksProjectCreator.ScaffoldMarket.noTemplate": "There is no template, comming soon...", - "web.iceworksProjectCreator.ScaffoldMarket.more": "More" -} \ No newline at end of file + "web.iceworksProjectCreator.CreateProject.nextStep": "NEXT", + "web.iceworksProjectCreator.CreateProject.previous": "PREVIOUS", + "web.iceworksProjectCreator.CreateProject.createDEF": "Create DEF Application", + "web.iceworksProjectCreator.CreateProject.complete": "FINISH", + "web.iceworksProjectCreator.CreateProject.chooseTemplate": "Choose a template before create an application.", + "web.iceworksProjectCreator.CreateProject.pathExist": "The local path already exists, please select it again!", + "web.iceworksProjectCreator.CreateProject.nameExist": "The Application name already exists, please select it again!", + "web.iceworksProjectCreator.CreateProject.createProject": "Create Application", + "web.iceworksProjectCreator.CreateProject.subTitle": "Quick build application with Abundant Materials in Universal Application Development Framework.", + "web.iceworksProjectCreator.CreateProject.setting": "Setting", + "web.iceworksProjectCreator.CreateProject.refresh": "Refresh", + "web.iceworksProjectCreator.CreateDEFProjectForm.empId": "EMP", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputEmpId": "Please Enter EMP.", + "web.iceworksProjectCreator.CreateDEFProjectForm.account": "Account", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputAccount": "Please Enter Account", + "web.iceworksProjectCreator.CreateDEFProjectForm.open": "Open ", + "web.iceworksProjectCreator.CreateDEFProjectForm.copy": " copy ", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabToken": "Please Enter GitLab Token", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabGroup": "Please Enter GitLab Group", + "web.iceworksProjectCreator.CreateDEFProjectForm.reposity": "Reposity", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputReposity": "Enter Reposity", + "web.iceworksProjectCreator.CreateProjectForm.projectName": "Application Name", + "web.iceworksProjectCreator.CreateProjectForm.inputProjectName": "Please Enter Application Name", + "web.iceworksProjectCreator.CreateProjectForm.projectNamePattern": "Application name must starts with letters and only contains letters and numbers. Special characters are not allowed", + "web.iceworksProjectCreator.CreateProjectForm.storage": "Local Path", + "web.iceworksProjectCreator.CreateProjectForm.chooseLocalPath": "Choose Local Path for Application", + "web.iceworksProjectCreator.ScaffoldMarket.noTemplate": "There is no template, comming soon...", + "web.iceworksProjectCreator.ScaffoldMarket.more": "More" +} diff --git a/extensions/iceworks-project-creator/web/src/locales/zh-CN.json b/extensions/iceworks-project-creator/web/src/locales/zh-CN.json index 15db8ca59..2d46d779b 100644 --- a/extensions/iceworks-project-creator/web/src/locales/zh-CN.json +++ b/extensions/iceworks-project-creator/web/src/locales/zh-CN.json @@ -1,30 +1,30 @@ { - "web.iceworksProjectCreator.CreateProject.nextStep": "下一步", - "web.iceworksProjectCreator.CreateProject.previous": "上一步", - "web.iceworksProjectCreator.CreateProject.createDEF": "创建 DEF 应用", - "web.iceworksProjectCreator.CreateProject.complete": "完成", - "web.iceworksProjectCreator.CreateProject.chooseTemplate": "请选择一个模板!", - "web.iceworksProjectCreator.CreateProject.pathExist": "该本地路径已存在,请重新选择!", - "web.iceworksProjectCreator.CreateProject.nameExist": "已存在相同的仓库名,请重新输入!", - "web.iceworksProjectCreator.CreateProject.createProject": "创建应用", - "web.iceworksProjectCreator.CreateProject.subTitle": "海量可复用物料,搭配研发框架极速构建多端应用。", - "web.iceworksProjectCreator.CreateProject.setting": "设置", - "web.iceworksProjectCreator.CreateProject.refresh": "刷新", - "web.iceworksProjectCreator.CreateDEFProjectForm.empId": "工号", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputEmpId": "请输入工号", - "web.iceworksProjectCreator.CreateDEFProjectForm.account": "域账号", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputAccount": "请输入域账号", - "web.iceworksProjectCreator.CreateDEFProjectForm.open": "打开 ", - "web.iceworksProjectCreator.CreateDEFProjectForm.copy": " 复制页面的 ", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabToken": "请输入GitLab Token", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabGroup": "请输入GitLab Group", - "web.iceworksProjectCreator.CreateDEFProjectForm.reposity": "仓库名", - "web.iceworksProjectCreator.CreateDEFProjectForm.inputReposity": "请输入仓库名", - "web.iceworksProjectCreator.CreateProjectForm.projectName": "应用名称", - "web.iceworksProjectCreator.CreateProjectForm.inputProjectName": "请输入应用名称", - "web.iceworksProjectCreator.CreateProjectForm.projectNamePattern": "请输入字母和数字的组合,以字母开头", - "web.iceworksProjectCreator.CreateProjectForm.storage": "本地路径", - "web.iceworksProjectCreator.CreateProjectForm.chooseLocalPath": "请选择应用存储的本地路径", - "web.iceworksProjectCreator.ScaffoldMarket.noTemplate": "暂无模板", - "web.iceworksProjectCreator.ScaffoldMarket.more": "查看更多" -} \ No newline at end of file + "web.iceworksProjectCreator.CreateProject.nextStep": "下一步", + "web.iceworksProjectCreator.CreateProject.previous": "上一步", + "web.iceworksProjectCreator.CreateProject.createDEF": "创建 DEF 应用", + "web.iceworksProjectCreator.CreateProject.complete": "完成", + "web.iceworksProjectCreator.CreateProject.chooseTemplate": "请选择一个模板!", + "web.iceworksProjectCreator.CreateProject.pathExist": "该本地路径已存在,请重新选择!", + "web.iceworksProjectCreator.CreateProject.nameExist": "已存在相同的仓库名,请重新输入!", + "web.iceworksProjectCreator.CreateProject.createProject": "创建应用", + "web.iceworksProjectCreator.CreateProject.subTitle": "海量可复用物料,搭配研发框架极速构建多端应用。", + "web.iceworksProjectCreator.CreateProject.setting": "设置", + "web.iceworksProjectCreator.CreateProject.refresh": "刷新", + "web.iceworksProjectCreator.CreateDEFProjectForm.empId": "工号", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputEmpId": "请输入工号", + "web.iceworksProjectCreator.CreateDEFProjectForm.account": "域账号", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputAccount": "请输入域账号", + "web.iceworksProjectCreator.CreateDEFProjectForm.open": "打开 ", + "web.iceworksProjectCreator.CreateDEFProjectForm.copy": " 复制页面的 ", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabToken": "请输入GitLab Token", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabGroup": "请输入GitLab Group", + "web.iceworksProjectCreator.CreateDEFProjectForm.reposity": "仓库名", + "web.iceworksProjectCreator.CreateDEFProjectForm.inputReposity": "请输入仓库名", + "web.iceworksProjectCreator.CreateProjectForm.projectName": "应用名称", + "web.iceworksProjectCreator.CreateProjectForm.inputProjectName": "请输入应用名称", + "web.iceworksProjectCreator.CreateProjectForm.projectNamePattern": "请输入字母和数字的组合,以字母开头", + "web.iceworksProjectCreator.CreateProjectForm.storage": "本地路径", + "web.iceworksProjectCreator.CreateProjectForm.chooseLocalPath": "请选择应用存储的本地路径", + "web.iceworksProjectCreator.ScaffoldMarket.noTemplate": "暂无模板", + "web.iceworksProjectCreator.ScaffoldMarket.more": "查看更多" +} diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx index 7e1ff8c06..3c5f9a52b 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateDEFProjectForm/index.tsx @@ -3,7 +3,7 @@ import { Form, Input, Select } from '@alifd/next'; import { IDEFProjectField, IGitLabGroup, IGitLabExistProject } from '@/types'; import callService from '@/callService'; import { useIntl, FormattedMessage } from 'react-intl'; -import { ALI_GITACCOUNT_URL, ALI_GITACCOUNT_SHORTURL } from '@iceworks/constant' +import { ALI_GITACCOUNT_URL, ALI_GITACCOUNT_SHORTURL } from '@iceworks/constant'; import styles from './index.module.scss'; interface ICreateDEFProjectFormProps { @@ -11,14 +11,9 @@ interface ICreateDEFProjectFormProps { children: React.ReactNode; errorMsg?: string; onChange: (value: IDEFProjectField) => void; -}; +} -const CreateDEFProjectForm: React.FC = ({ - value, - children, - errorMsg, - onChange, -}) => { +const CreateDEFProjectForm: React.FC = ({ value, children, errorMsg, onChange }) => { const [empInfoShowed, setEmpInfoShowed] = useState(false); const [existProjects, setExistProjects] = useState([]); const [gitLabGroups, setGitLabGroups] = useState([]); @@ -30,7 +25,7 @@ const CreateDEFProjectForm: React.FC = ({ gitlabToken = await getUserInfo(); } await getExistProjects(gitlabToken); - await getGitLabGroups(gitlabToken) + await getGitLabGroups(gitlabToken); } initData(); @@ -73,14 +68,14 @@ const CreateDEFProjectForm: React.FC = ({ function onValidateProjectName(rule: any, value: string, callback: (error?: string) => void) { if (existProjects.filter((item: IGitLabExistProject) => item.name === value).length) { - return callback(intl.formatMessage({ id: 'web.iceworksProjectCreator.CreateProject.nameExist' })) + return callback(intl.formatMessage({ id: 'web.iceworksProjectCreator.CreateProject.nameExist' })); } - return callback() - }; + return callback(); + } const intl = useIntl(); return (
-
+ {empInfoShowed && ( <> = ({ required requiredMessage={intl.formatMessage({ id: 'web.iceworksProjectCreator.CreateDEFProjectForm.inputEmpId' })} > - + - + )} - - {ALI_GITACCOUNT_SHORTURL} - Private Token} + label='GitLab Token' + help={ + + + + {ALI_GITACCOUNT_SHORTURL} + + Private Token + + } required - requiredMessage={intl.formatMessage({ id: 'web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabToken' })} + requiredMessage={intl.formatMessage({ + id: 'web.iceworksProjectCreator.CreateDEFProjectForm.inputGitLabToken', + })} onBlur={onBlur} > - + @@ -140,20 +155,18 @@ const CreateDEFProjectForm: React.FC = ({ autoValidate validator={onValidateProjectName} > - + - {errorMsg &&
- {errorMsg} -
- } -
- {children} -
+ {errorMsg &&
{errorMsg}
} +
{children}
); -} +}; export default CreateDEFProjectForm; diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateProjectForm/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateProjectForm/index.tsx index 082fd66e2..13da256bd 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateProjectForm/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/CreateProjectForm/index.tsx @@ -6,7 +6,6 @@ import folderIcon from '@/assets/folder.svg'; import RaxScaffoldTypeForm from '../RaxScaffoldTypeForm'; import styles from './index.module.scss'; - interface IProjectFormProps { value: IProjectField; children: React.ReactNode; @@ -15,45 +14,60 @@ interface IProjectFormProps { errorMsg?: string; } -const CreateProjectForm: React.FC = ({ value, onOpenFolderDialog, children, onChange, errorMsg }) => { +const CreateProjectForm: React.FC = ({ + value, + onOpenFolderDialog, + children, + onChange, + errorMsg, +}) => { const intl = useIntl(); - const { source: { type } } = value; + const { + source: { type }, + } = value; return (
-
+ - + - + } + innerAfter={ + folder + } /> - {errorMsg &&
- {errorMsg} -
- } -
- {children} -
+ {errorMsg &&
{errorMsg}
} +
{children}
- {type === 'rax' &&
- -
} + {type === 'rax' && ( +
+ +
+ )}
); }; diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/RaxScaffoldTypeForm/config.ts b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/RaxScaffoldTypeForm/config.ts index 1c98bef0e..f288bcecf 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/RaxScaffoldTypeForm/config.ts +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/RaxScaffoldTypeForm/config.ts @@ -3,21 +3,22 @@ export const targets = [ type: 'web', title: 'Web', icon: 'https://gw.alicdn.com/tfs/TB1Qx3Feq61gK0jSZFlXXXDKFXa-200-200.svg', - description: 'Web App 是指运行于浏览器上的应用,具有开发成本低、开发及更新速度快,维护比较简单的优势。' + description: 'Web App 是指运行于浏览器上的应用,具有开发成本低、开发及更新速度快,维护比较简单的优势。', }, { type: 'miniapp', title: 'Alibaba MiniApp', icon: 'https://gw.alicdn.com/tfs/TB1Y9.zeuL2gK0jSZPhXXahvXXa-200-200.svg', - description: '将 Rax 作为 DSL 极速开发阿里巴巴集团旗下系列小程序,使前端开发者更容易地使用他们熟悉的方式进行小程序开发。' + description: + '将 Rax 作为 DSL 极速开发阿里巴巴集团旗下系列小程序,使前端开发者更容易地使用他们熟悉的方式进行小程序开发。', }, { type: 'wechat-miniprogram', title: 'WeChat MiniProgram', icon: 'https://gw.alicdn.com/tfs/TB1HwgzepY7gK0jSZKzXXaikpXa-200-200.svg', - description: '将 Rax 作为 DSL 极速开发微信小程序,使前端开发者更容易地使用他们熟悉的方式进行小程序开发。' - } -] + description: '将 Rax 作为 DSL 极速开发微信小程序,使前端开发者更容易地使用他们熟悉的方式进行小程序开发。', + }, +]; export const webAppTypes = [ { @@ -28,19 +29,20 @@ export const webAppTypes = [ { type: 'mpa', title: 'MPA', - description: '将 App 工程变成多页面工程,每个页面会构建出独立的资源文件。' + description: '将 App 工程变成多页面工程,每个页面会构建出独立的资源文件。', }, -] +]; export const miniAppTypes = [ { type: 'runtime', title: '运行时', - description: '基于运行时的 Rax,可享受完整的 Rax 语法及其生态。适用于需要小程序快速开发上线同时对性能不敏感或小程序复杂度较低的场景' + description: + '基于运行时的 Rax,可享受完整的 Rax 语法及其生态。适用于需要小程序快速开发上线同时对性能不敏感或小程序复杂度较低的场景', }, { type: 'compile', title: '编译时', - description: '基于静态编译方式将 Rax DSL 转换为小程序 DSL,存在部分语法限制。适用于对小程序性能要求较高的场景' - } -] \ No newline at end of file + description: '基于静态编译方式将 Rax DSL 转换为小程序 DSL,存在部分语法限制。适用于对小程序性能要求较高的场景', + }, +]; diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/RaxScaffoldTypeForm/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/RaxScaffoldTypeForm/index.tsx index fc71dca02..3d76c5751 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/RaxScaffoldTypeForm/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/RaxScaffoldTypeForm/index.tsx @@ -13,32 +13,32 @@ interface IScaffoldTypeForm { const RaxScaffoldTypeForm: React.FC = ({ value, onChange }) => { const [selectedTargets, setSelectedTargets] = useState(() => { if (value.ejsOptions && value.ejsOptions.targets && value.ejsOptions.targets instanceof Array) { - return value.ejsOptions.targets + return value.ejsOptions.targets; } - return [targets[0].type] + return [targets[0].type]; }); const [isMpa, setIsMpa] = useState(() => { if (value.ejsOptions && typeof value.ejsOptions.mpa !== 'undefined') { - return value.ejsOptions.mpa + return value.ejsOptions.mpa; } - return webAppTypes[0].type === 'mpa' + return webAppTypes[0].type === 'mpa'; }); const [selectedMiniAppType, setSelectedMiniAppType] = useState(() => { if (value.ejsOptions && value.ejsOptions.miniappType) { - return value.ejsOptions.miniappType + return value.ejsOptions.miniappType; } - return miniAppTypes[0].type + return miniAppTypes[0].type; }); /** - * 选择 Rax 应用的 target + * 选择 Rax 应用的 target */ const onTargetClick = (target) => { const ejsOptions: any = { ...value.ejsOptions }; - const targetIndex = selectedTargets.findIndex(item => target.type === item); + const targetIndex = selectedTargets.findIndex((item) => target.type === item); if (targetIndex > -1) { if (selectedTargets.length === 1) { - Notification.error({ content: '请至少选择一个 Target' }) + Notification.error({ content: '请至少选择一个 Target' }); return; } // 删除已有的 target @@ -46,16 +46,21 @@ const RaxScaffoldTypeForm: React.FC = ({ value, onChange }) = if (target.type === 'web') { delete ejsOptions.mpa; - } else if (selectedTargets.length === 1) { // 当前 selectedTargets 只剩下 web + } else if (selectedTargets.length === 1) { + // 当前 selectedTargets 只剩下 web delete ejsOptions.miniappType; } } else { // 新增 target if (target.type === 'web') { - const ismpa = webAppTypes[0].type === 'mpa' + const ismpa = webAppTypes[0].type === 'mpa'; setIsMpa(ismpa); ejsOptions.mpa = ismpa; - } else if (!selectedTargets.some(target => target === 'miniapp' || target === 'wechat-miniprogram' || target === 'kraken')) { + } else if ( + !selectedTargets.some( + (target) => target === 'miniapp' || target === 'wechat-miniprogram' || target === 'kraken' + ) + ) { setSelectedMiniAppType(miniAppTypes[0].type); ejsOptions.miniappType = miniAppTypes[0].type; } @@ -65,7 +70,7 @@ const RaxScaffoldTypeForm: React.FC = ({ value, onChange }) = setSelectedTargets(newSelectedTargets); onChange({ ejsOptions: { ...ejsOptions, targets: newSelectedTargets } }); - } + }; /** * 选择 web 应用类型: mpa or spa */ @@ -80,7 +85,7 @@ const RaxScaffoldTypeForm: React.FC = ({ value, onChange }) = const onMiniAppTypeClick = (miniAppType) => { setSelectedMiniAppType(miniAppType.type); onChange({ ejsOptions: { ...value.ejsOptions, miniappType: miniAppType.type } }); - } + }; useEffect(() => { // init value @@ -90,8 +95,8 @@ const RaxScaffoldTypeForm: React.FC = ({ value, onChange }) =
Target (至少选择一个)
- {targets.map(item => { - const selected = selectedTargets.some(selectedTarget => selectedTarget === item.type); + {targets.map((item) => { + const selected = selectedTargets.some((selectedTarget) => selectedTarget === item.type); return ( = ({ value, onChange }) = /> } closable={false} - triggerType="hover" + triggerType='hover' > {item.description} - ) + ); })}
- {selectedTargets.some(item => item === 'web') && ( + {selectedTargets.some((item) => item === 'web') && ( <>
为 Web 应用选择应用类型
- {webAppTypes.map(item => ( + {webAppTypes.map((item) => ( = ({ value, onChange }) = selected={isMpa === (item.type === 'mpa')} title={item.title} onClick={() => onWebAppTypeClick(item)} - />} - triggerType="hover" + /> + } + triggerType='hover' closable={false} > {item.description} - ))}
)} - {selectedTargets.some(item => item === 'miniapp' || item === 'wechat-miniprogram' || item === 'kraken') && ( + {selectedTargets.some((item) => item === 'miniapp' || item === 'wechat-miniprogram' || item === 'kraken') && ( <>
为小程序选择构建类型
- {miniAppTypes.map(item => ( + {miniAppTypes.map((item) => ( = ({ value, onChange }) = selected={selectedMiniAppType === item.type} title={item.title} onClick={() => onMiniAppTypeClick(item)} - />} - triggerType="hover" + /> + } + triggerType='hover' closable={false} > {item.description} - ))}
)}
- ) -} + ); +}; export default RaxScaffoldTypeForm; diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.tsx index 77ecf5efe..16ca274e3 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/components/ScaffoldMarket/index.tsx @@ -41,17 +41,17 @@ const ScaffoldMarket = ({ onScaffoldSelect, curProjectField, children, onOpenCon async function getScaffolds(source: string): Promise { try { - const scaffolds = await callService('project', 'getScaffolds', source) as IMaterialScaffold[]; - let main = scaffolds.filter(scaffold => mainScaffoldsList.includes(scaffold.source.npm)); - let other = scaffolds.filter(scaffold => !mainScaffoldsList.includes(scaffold.source.npm)); + const scaffolds = (await callService('project', 'getScaffolds', source)) as IMaterialScaffold[]; + let main = scaffolds.filter((scaffold) => mainScaffoldsList.includes(scaffold.source.npm)); + let other = scaffolds.filter((scaffold) => !mainScaffoldsList.includes(scaffold.source.npm)); if (!main.length && other.length) { main = other; other = []; } - return { mainScaffolds: main, otherScaffolds: other } + return { mainScaffolds: main, otherScaffolds: other }; } catch (e) { Notification.error({ content: e.message }); - return { mainScaffolds: [], otherScaffolds: [] } + return { mainScaffolds: [], otherScaffolds: [] }; } } @@ -61,7 +61,7 @@ const ScaffoldMarket = ({ onScaffoldSelect, curProjectField, children, onOpenCon if (!materialSources.length) { return; } - const selectedSource = curProjectField.source ? curProjectField.source : materialSources[0] + const selectedSource = curProjectField.source ? curProjectField.source : materialSources[0]; setSelectedSource(selectedSource); const source = selectedSource.source; @@ -88,82 +88,72 @@ const ScaffoldMarket = ({ onScaffoldSelect, curProjectField, children, onOpenCon
- {materialSources && materialSources.map(item => { - let iconName = 'app'; - const projectType = item.type.toLocaleLowerCase(); - if (item.client) { - iconName = item.client.toLocaleLowerCase(); - } else if (projectTypes.includes(projectType)) { - iconName = projectType; - } - return - {projectType} -
{item.name}
-
+ {materialSources && + materialSources.map((item) => { + let iconName = 'app'; + const projectType = item.type.toLocaleLowerCase(); + if (item.client) { + iconName = item.client.toLocaleLowerCase(); + } else if (projectTypes.includes(projectType)) { + iconName = projectType; } - content={item.description} - selected={selectedSource.name && selectedSource.name === item.name} - style={{ width: 160, height: 120 }} - onClick={() => onMaterialSourceClick(item)} - /> - })} -
-
- -
-
- -
- {loading ? : <> -
- {!!mainScaffolds.length ? mainScaffolds.map(item => { - // tsScaffoldsList and jsScaffoldsList only contain the official scaffolds - // so the TypeScript and JavaScript logo only display in official scaffolds - const scaffoldType = tsScaffoldsList.includes(item.source.npm) ? 'ts' : - jsScaffoldsList.includes(item.source.npm) ? 'js' : - ''; - const isRax = selectedSource.type === 'rax'; - const CardComponent = isRax ? MobileScaffoldCard : ScaffoldCard; return ( - - {scaffoldType && languageType} -
{scaffoldType ? item.title.replace(' - TS', '').replace(' - JS', '') : item.title}
+ {projectType} +
{item.name}
} content={item.description} - media={item.screenshot} - selected={curProjectField.scaffold.name === item.name} - onClick={() => onScaffoldClick(item)} + selected={selectedSource.name && selectedSource.name === item.name} + style={{ width: 160, height: 120 }} + onClick={() => onMaterialSourceClick(item)} /> - ) - }) : - - } -
- {!!otherScaffolds.length && - -
- {otherScaffolds.map(item => { + ); + })} +
+
+ +
+ + +
+ {loading ? ( + + ) : ( + <> +
+ {!!mainScaffolds.length ? ( + mainScaffolds.map((item) => { // tsScaffoldsList and jsScaffoldsList only contain the official scaffolds // so the TypeScript and JavaScript logo only display in official scaffolds - const scaffoldType = tsScaffoldsList.includes(item.source.npm) ? 'ts' : - jsScaffoldsList.includes(item.source.npm) ? 'js' : - ''; - const isRax = selectedSource.type.toLocaleLowerCase() === 'rax'; + const scaffoldType = tsScaffoldsList.includes(item.source.npm) + ? 'ts' + : jsScaffoldsList.includes(item.source.npm) + ? 'js' + : ''; + const isRax = selectedSource.type === 'rax'; const CardComponent = isRax ? MobileScaffoldCard : ScaffoldCard; return ( - {scaffoldType && languageType} -
{scaffoldType ? item.title.replace(' - JS', '').replace(' - TS', '') : item.title}
+ {scaffoldType && ( + languageType + )} +
+ {scaffoldType ? item.title.replace(' - TS', '').replace(' - JS', '') : item.title} +
} content={item.description} @@ -171,17 +161,62 @@ const ScaffoldMarket = ({ onScaffoldSelect, curProjectField, children, onOpenCon selected={curProjectField.scaffold.name === item.name} onClick={() => onScaffoldClick(item)} /> - ) - })} -
-
-
} - } + ); + }) + ) : ( + + )} + + {!!otherScaffolds.length && ( + + +
+ {otherScaffolds.map((item) => { + // tsScaffoldsList and jsScaffoldsList only contain the official scaffolds + // so the TypeScript and JavaScript logo only display in official scaffolds + const scaffoldType = tsScaffoldsList.includes(item.source.npm) + ? 'ts' + : jsScaffoldsList.includes(item.source.npm) + ? 'js' + : ''; + const isRax = selectedSource.type.toLocaleLowerCase() === 'rax'; + const CardComponent = isRax ? MobileScaffoldCard : ScaffoldCard; + return ( + + {scaffoldType && ( + languageType + )} +
+ {scaffoldType ? item.title.replace(' - JS', '').replace(' - TS', '') : item.title} +
+
+ } + content={item.description} + media={item.screenshot} + selected={curProjectField.scaffold.name === item.name} + onClick={() => onScaffoldClick(item)} + /> + ); + })} + +
+
+ )} + + )} -
- {children} -
+
{children}
); }; diff --git a/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx b/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx index 1ff1ff03a..26d42469a 100644 --- a/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx +++ b/extensions/iceworks-project-creator/web/src/pages/CreateProject/index.tsx @@ -17,7 +17,7 @@ const CreateProject: React.FC = () => { const [currentStep, setStep] = useState(0); const [createProjectLoading, setCreateProjectLoading] = useState(false); const [createDEFProjectLoading, setCreateDEFProjectLoading] = useState(false); - const [isAliInternal, setIsAliInternal] = useState(false) + const [isAliInternal, setIsAliInternal] = useState(false); const [curProjectField, setCurProjectField] = useState({} as any); const [curDEFProjectField, setCurDEFProjectField] = useState({} as any); const [prevBtnDisabled, setPrevBtnDisabled] = useState(false); @@ -28,44 +28,56 @@ const CreateProject: React.FC = () => { const [loading, setLoading] = useState(false); const steps = [ - - , - + - {isAliInternal && onProjectDetailSubmit(values, error, true)} - validate - disabled={createDEFProjectDisabled} - > - - } + {isAliInternal && ( + onProjectDetailSubmit(values, error, true)} + validate + disabled={createDEFProjectDisabled} + > + + + )} onProjectDetailSubmit(values, error, false)} validate loading={createProjectLoading} > - + , ]; if (isAliInternal) { - steps.splice(2, 0, - - + steps.splice( + 2, + 0, + + { - ) + ); } function goNext() { setStep(currentStep + 1); - }; + } function goPrev() { setStep(currentStep - 1); - }; + } function onScaffoldSelect(source, scaffold) { setCurProjectField({ ...curProjectField, scaffold, source }); - }; + } async function onScaffoldSubmit() { if (!curProjectField.scaffold) { - Notification.error({ content: intl.formatMessage({ id: 'web.iceworksProjectCreator.CreateProject.chooseTemplate' }) }); + Notification.error({ + content: intl.formatMessage({ id: 'web.iceworksProjectCreator.CreateProject.chooseTemplate' }), + }); return; } goNext(); @@ -101,14 +115,14 @@ const CreateProject: React.FC = () => { async function onOpenFolderDialog() { try { const projectPath = await callService('project', 'getProjectPath'); - setCurProjectField({ ...curProjectField, projectPath }) + setCurProjectField({ ...curProjectField, projectPath }); } catch (e) { // ignore - }; + } } function onProjectFormChange(value) { - setCurProjectField({ ...curProjectField, ...value }) + setCurProjectField({ ...curProjectField, ...value }); } async function onProjectDetailSubmit(values: any, errors: any, isCreateDEFProject: boolean) { @@ -126,7 +140,7 @@ const CreateProject: React.FC = () => { throw new Error(intl.formatMessage({ id: 'web.iceworksProjectCreator.CreateProject.pathExist' })); } if (!isCreateDEFProject) { - await createProject(values) + await createProject(values); } else { setCurProjectField(values); setCurDEFProjectField({ ...curDEFProjectField, project: values.projectName }); @@ -140,10 +154,10 @@ const CreateProject: React.FC = () => { setPrevBtnDisabled(false); setCreateDEFProjectDisabled(false); } - }; + } function onDEFProjectFormChange(value) { - setCurDEFProjectField({ ...curDEFProjectField, ...value }) + setCurDEFProjectField({ ...curDEFProjectField, ...value }); } async function createProject(data: IProjectField) { @@ -165,7 +179,11 @@ const CreateProject: React.FC = () => { const { empId, account, gitlabToken } = values; let projectDir = ''; try { - projectDir = await callService('project', 'createDEFProjectAndCloneRepository', { ...values, ...curProjectField, clientToken: CLIENT_TOKEN }); + projectDir = await callService('project', 'createDEFProjectAndCloneRepository', { + ...values, + ...curProjectField, + clientToken: CLIENT_TOKEN, + }); await callService('common', 'saveDataToSettingJson', 'user', { empId, account, gitlabToken }); await callService('common', 'saveDataToSettingJson', 'workspace', projectPath); await callService('project', 'openLocalProjectFolder', projectDir); @@ -187,7 +205,7 @@ const CreateProject: React.FC = () => { } async function getMaterialSources() { - const materialSources: any = await callService('material', 'getSources') as IMaterialSource[]; + const materialSources: any = (await callService('material', 'getSources')) as IMaterialSource[]; setMaterialSources(materialSources); return materialSources; } @@ -199,7 +217,7 @@ const CreateProject: React.FC = () => { useEffect(() => { async function checkAliInternal() { try { - const isAliInternal = await callService('common', 'checkIsAliInternal') as boolean; + const isAliInternal = (await callService('common', 'checkIsAliInternal')) as boolean; setIsAliInternal(isAliInternal); } catch (e) { Notification.error({ content: e.message }); @@ -207,7 +225,7 @@ const CreateProject: React.FC = () => { } } async function setDefaultFields() { - const workspace = await callService('common', 'getDataFromSettingJson', 'workspace') || ''; + const workspace = (await callService('common', 'getDataFromSettingJson', 'workspace')) || ''; setCurProjectField({ ...curProjectField, projectPath: workspace }); } async function initMaterialSources() { @@ -243,13 +261,21 @@ const CreateProject: React.FC = () => {
- - {currentStep === 0 && } + + {currentStep === 0 && ( + + )}
- {loading ? : ( + {loading ? ( + + ) : (
{steps[currentStep]}
)}
@@ -263,7 +289,7 @@ const IntlCreateProject = () => { - ) -} + ); +}; -export default IntlCreateProject; \ No newline at end of file +export default IntlCreateProject; diff --git a/extensions/iceworks-project-creator/web/src/routes.ts b/extensions/iceworks-project-creator/web/src/routes.ts index d001ea1da..3f61edb37 100644 --- a/extensions/iceworks-project-creator/web/src/routes.ts +++ b/extensions/iceworks-project-creator/web/src/routes.ts @@ -3,8 +3,8 @@ import CreateProject from '@/pages/CreateProject'; const routerConfig = [ { path: '/', - component: CreateProject - } + component: CreateProject, + }, ]; export default routerConfig; diff --git a/extensions/iceworks-project-creator/web/src/types.ts b/extensions/iceworks-project-creator/web/src/types.ts index c4adba2da..d3e3a326c 100644 --- a/extensions/iceworks-project-creator/web/src/types.ts +++ b/extensions/iceworks-project-creator/web/src/types.ts @@ -28,15 +28,15 @@ export interface IGitLabExistProject { } export interface IGitLabGroup { - 'avatar_url': string; - 'description': string; - 'id': number; - 'name': string; - 'path': string; - 'web_url': string; + avatar_url: string; + description: string; + id: number; + name: string; + path: string; + web_url: string; } export interface IScaffoldMarket { mainScaffolds: IMaterialScaffold[]; otherScaffolds: IMaterialScaffold[]; -} \ No newline at end of file +} diff --git a/extensions/iceworks-project-creator/web/src/typings.d.ts b/extensions/iceworks-project-creator/web/src/typings.d.ts index 65e41179d..bb126101b 100644 --- a/extensions/iceworks-project-creator/web/src/typings.d.ts +++ b/extensions/iceworks-project-creator/web/src/typings.d.ts @@ -11,4 +11,4 @@ interface IVScode { declare const vscode: IVScode; declare module '*.svg'; -declare module '*.png'; \ No newline at end of file +declare module '*.png'; diff --git a/extensions/iceworks-project-creator/web/tsconfig.json b/extensions/iceworks-project-creator/web/tsconfig.json index 91ccbe96d..a83b4ad1a 100644 --- a/extensions/iceworks-project-creator/web/tsconfig.json +++ b/extensions/iceworks-project-creator/web/tsconfig.json @@ -5,24 +5,12 @@ "outDir": "build", "rootDir": "./", "paths": { - "@/*": [ - "./src/*" - ], - "ice": [ - ".ice/index.ts" - ], - "ice/*": [ - ".ice/pages/*" - ] + "@/*": ["./src/*"], + "ice": [".ice/index.ts"], + "ice/*": [".ice/pages/*"] }, "resolveJsonModule": true }, - "include": [ - "src/*", - ".ice" - ], - "exclude": [ - "node_modules", - "public" - ] -} \ No newline at end of file + "include": ["src/*", ".ice"], + "exclude": ["node_modules", "public"] +} diff --git a/extensions/iceworks-project-creator/webpack.config.js b/extensions/iceworks-project-creator/webpack.config.js index 4b20dd159..f5701c256 100644 --- a/extensions/iceworks-project-creator/webpack.config.js +++ b/extensions/iceworks-project-creator/webpack.config.js @@ -9,13 +9,13 @@ const config = { path: path.resolve(__dirname, 'build'), filename: 'extension.js', libraryTarget: 'commonjs2', - devtoolModuleFilenameTemplate: '../[resource-path]' + devtoolModuleFilenameTemplate: '../[resource-path]', }, externals: { - vscode: 'commonjs vscode' + vscode: 'commonjs vscode', }, resolve: { - extensions: ['.ts', '.js'] + extensions: ['.ts', '.js'], }, module: { rules: [ @@ -28,11 +28,11 @@ const config = { transpileOnly: true, configFile: tsConfigPath, }, - } - ] - } - ] - } + }, + ], + }, + ], + }, }; module.exports = (env, argv) => { diff --git a/extensions/iceworks-style-helper/.vscode/launch.json b/extensions/iceworks-style-helper/.vscode/launch.json index ef66b8865..9747f6e31 100644 --- a/extensions/iceworks-style-helper/.vscode/launch.json +++ b/extensions/iceworks-style-helper/.vscode/launch.json @@ -10,12 +10,8 @@ "type": "extensionHost", "request": "launch", "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "outFiles": [ - "${workspaceFolder}/out/**/*.js" - ], + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}" }, { @@ -27,9 +23,7 @@ "--extensionDevelopmentPath=${workspaceFolder}", "--extensionTestsPath=${workspaceFolder}/out/test/suite/index" ], - "outFiles": [ - "${workspaceFolder}/out/test/**/*.js" - ], + "outFiles": ["${workspaceFolder}/out/test/**/*.js"], "preLaunchTask": "${defaultBuildTask}" } ] diff --git a/extensions/iceworks-style-helper/src/cssClassAutoCompete/index.ts b/extensions/iceworks-style-helper/src/cssClassAutoCompete/index.ts index 572586050..19ddd7a62 100644 --- a/extensions/iceworks-style-helper/src/cssClassAutoCompete/index.ts +++ b/extensions/iceworks-style-helper/src/cssClassAutoCompete/index.ts @@ -25,13 +25,9 @@ function provideCompletionItems(document: vscode.TextDocument, position: vscode. classNames = classNames.concat(getClassNames(filePath), getCSSModuleKeys(filePath)); } }); - + return unique(classNames).map( - className => - new vscode.CompletionItem( - `.${className}`, - vscode.CompletionItemKind.Text - ) + (className) => new vscode.CompletionItem(`.${className}`, vscode.CompletionItemKind.Text) ); } @@ -80,10 +76,10 @@ export default function cssClassAutoCompete(context: vscode.ExtensionContext): v { scheme: 'file', language: 'css' }, { scheme: 'file', language: 'less' }, { scheme: 'file', language: 'sass' }, - { scheme: 'file', language: 'scss' } + { scheme: 'file', language: 'scss' }, ], { provideCompletionItems }, '.' ) ); -}; \ No newline at end of file +} diff --git a/extensions/iceworks-style-helper/src/getFocusCodeInfo.ts b/extensions/iceworks-style-helper/src/getFocusCodeInfo.ts index 2d3f40691..2e79d5d2a 100644 --- a/extensions/iceworks-style-helper/src/getFocusCodeInfo.ts +++ b/extensions/iceworks-style-helper/src/getFocusCodeInfo.ts @@ -18,4 +18,4 @@ export function getFocusCodeInfo(document: vscode.TextDocument, position: vscode fileName: document.fileName, directory: path.dirname(document.fileName), }; -}; +} diff --git a/extensions/iceworks-style-helper/src/index.ts b/extensions/iceworks-style-helper/src/index.ts index 61241dc0a..5e93e0156 100644 --- a/extensions/iceworks-style-helper/src/index.ts +++ b/extensions/iceworks-style-helper/src/index.ts @@ -9,6 +9,6 @@ function activate(context: vscode.ExtensionContext) { inlineStyleAutoComplete(context); styleInfoViewer(context); sassVariablesViewer(context); -}; +} -exports.activate = activate; \ No newline at end of file +exports.activate = activate; diff --git a/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/cssData.d.ts b/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/cssData.d.ts index 9d0b2c5bb..acb91ef83 100644 --- a/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/cssData.d.ts +++ b/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/cssData.d.ts @@ -1,6 +1,4 @@ - declare module 'vscode-web-custom-data/data/browsers.css-data.json' { - export interface IPropertyValue { name: string; description?: string; @@ -22,4 +20,4 @@ declare module 'vscode-web-custom-data/data/browsers.css-data.json' { const CSSData: ICssData; export default CSSData; -} \ No newline at end of file +} diff --git a/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/getCompletionItem.ts b/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/getCompletionItem.ts index 0ae59e770..f2ffc4b3d 100644 --- a/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/getCompletionItem.ts +++ b/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/getCompletionItem.ts @@ -14,4 +14,4 @@ export default function getCompletionItem( completionItem.documentation = new vscode.MarkdownString(`**Iceworks Style Helper** \n ${documentation}`); } return completionItem; -}; +} diff --git a/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/index.ts b/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/index.ts index 0b3c35168..7505cfd00 100644 --- a/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/index.ts +++ b/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/index.ts @@ -79,7 +79,7 @@ function provideCompletionItems(document: vscode.TextDocument, position: vscode. ) ); } - }) + }); } // Completion property value @@ -92,20 +92,20 @@ function provideCompletionItems(document: vscode.TextDocument, position: vscode. if (firstCharsEqual(value.name, word)) { completions.push( getCompletionItem( - value.name, value.description || '', + value.name, + value.description || '', `${CSS_DOCS_URL}/${property.name}#Values`, // Docs `'${value.name}'${!isEndsWithComma(currentText) ? ',' : ''}`, // EXP 'relative', 'Value' ) ); } - }) + }); } } return completions; } - // Set completion export default function inlineStyleAutoComplete(context: vscode.ExtensionContext): void { context.subscriptions.push( @@ -114,9 +114,9 @@ export default function inlineStyleAutoComplete(context: vscode.ExtensionContext { scheme: 'file', language: 'javascript' }, { scheme: 'file', language: 'javascriptreact' }, { scheme: 'file', language: 'typescript' }, - { scheme: 'file', language: 'typescriptreact' } + { scheme: 'file', language: 'typescriptreact' }, ], { provideCompletionItems } ) ); -} \ No newline at end of file +} diff --git a/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/isEditStyleKey.ts b/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/isEditStyleKey.ts index 896785298..25973ec2c 100644 --- a/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/isEditStyleKey.ts +++ b/extensions/iceworks-style-helper/src/inlineStyleAutoComplete/isEditStyleKey.ts @@ -7,32 +7,24 @@ import * as vscode from 'vscode'; // EXP-3: position: 'relative', \n p| export default function isEditStyleKey(word: string, line: vscode.TextLine): boolean { - let isEditStyle = false; const document = vscode.window.activeTextEditor?.document as vscode.TextDocument; const currentLineText: string = line.text; const previousLine: vscode.TextLine = document.lineAt(line.lineNumber - 1); - const previousLineText: string = document.getText( - new vscode.Range( - previousLine.range.start, - previousLine.range.end - ) - ).trim(); + const previousLineText: string = document + .getText(new vscode.Range(previousLine.range.start, previousLine.range.end)) + .trim(); if ( // EXP: marginLeft, margin-left - /^[a-zA-Z-]+$/.test(word) && ( - // The JSX style attribute accepts a JavaScript object - currentLineText.indexOf('{') > -1 || - previousLineText.endsWith('{') || - previousLineText.endsWith(',') - ) + /^[a-zA-Z-]+$/.test(word) && + // The JSX style attribute accepts a JavaScript object + (currentLineText.indexOf('{') > -1 || previousLineText.endsWith('{') || previousLineText.endsWith(',')) ) { isEditStyle = true; } return isEditStyle; -}; - +} diff --git a/extensions/iceworks-style-helper/src/sassVariablesViewer/colorPreviewDisplay.ts b/extensions/iceworks-style-helper/src/sassVariablesViewer/colorPreviewDisplay.ts index 954b77fce..db36f607e 100644 --- a/extensions/iceworks-style-helper/src/sassVariablesViewer/colorPreviewDisplay.ts +++ b/extensions/iceworks-style-helper/src/sassVariablesViewer/colorPreviewDisplay.ts @@ -15,8 +15,7 @@ export default function colorPreviewDisplay(value: string): string { const width = 12; const height = 12; - const src = - ` + const src = ` { findVariablesByFile(getFullModulePath(importModule, filePath)); - }) + }); } } diff --git a/extensions/iceworks-style-helper/src/sassVariablesViewer/getFullModulePath.ts b/extensions/iceworks-style-helper/src/sassVariablesViewer/getFullModulePath.ts index 6bfff094e..c833fd8b7 100644 --- a/extensions/iceworks-style-helper/src/sassVariablesViewer/getFullModulePath.ts +++ b/extensions/iceworks-style-helper/src/sassVariablesViewer/getFullModulePath.ts @@ -4,7 +4,6 @@ import * as vscode from 'vscode'; const SPECIAL_MODULE_IMPORT_REG = /~[^/]+/g; export default function getFullModulePath(modulePath: string, currentFilePath?: string): string { - const rootPath = vscode.workspace.rootPath || ''; let targetPath = modulePath.trim().replace(/'|"/g, ''); @@ -26,4 +25,4 @@ export default function getFullModulePath(modulePath: string, currentFilePath?: } return fullModulePath; -}; \ No newline at end of file +} diff --git a/extensions/iceworks-style-helper/src/sassVariablesViewer/index.ts b/extensions/iceworks-style-helper/src/sassVariablesViewer/index.ts index 1f7cde83b..629724add 100644 --- a/extensions/iceworks-style-helper/src/sassVariablesViewer/index.ts +++ b/extensions/iceworks-style-helper/src/sassVariablesViewer/index.ts @@ -24,10 +24,7 @@ function provideDefinition(document: vscode.TextDocument, position: vscode.Posit const matchedVariable = findVariables(fileName)[word] || FUSION_VARIABLES[word]; if (matchedVariable) { - return new vscode.Location( - vscode.Uri.file(matchedVariable.filePath), - matchedVariable.position - ); + return new vscode.Location(vscode.Uri.file(matchedVariable.filePath), matchedVariable.position); } } @@ -52,7 +49,6 @@ function provideHover(document: vscode.TextDocument, position: vscode.Position) // Variables auto Complete function provideCompletionItems(document: vscode.TextDocument, position: vscode.Position) { - const { fileName } = getFocusCodeInfo(document, position); const variables = Object.assign({}, FUSION_VARIABLES, findVariables(fileName)); @@ -70,13 +66,14 @@ function provideCompletionItems(document: vscode.TextDocument, position: vscode. }); } - // Process fusion component. https://ice.work/docs/guide/advance/fusion function processFusionVariables() { try { const rootPath = vscode.workspace.rootPath || ''; const buildConfig = JSON.parse(fs.readFileSync(path.join(rootPath, 'build.json'), 'utf-8')); - const fusionConfig = buildConfig.plugins.find(plugin => Array.isArray(plugin) && plugin[0] === 'build-plugin-fusion'); + const fusionConfig = buildConfig.plugins.find( + (plugin) => Array.isArray(plugin) && plugin[0] === 'build-plugin-fusion' + ); // Get themePackage config from build.json if (fusionConfig[1].themePackage) { FUSION_VARIABLES = findVariables(getFullModulePath(`~${fusionConfig[1].themePackage} `)); @@ -90,30 +87,25 @@ export default function sassVariablesViewer(context: vscode.ExtensionContext): v processFusionVariables(); // Listen build.json change - vscode.workspace.onDidChangeTextDocument((e) => { - if (/build\.json$/.test(e.document.uri.fsPath)) { - processFusionVariables(); - } - }, null, context.subscriptions); + vscode.workspace.onDidChangeTextDocument( + (e) => { + if (/build\.json$/.test(e.document.uri.fsPath)) { + processFusionVariables(); + } + }, + null, + context.subscriptions + ); // Set definitionProvider - context.subscriptions.push( - vscode.languages.registerDefinitionProvider( - SUPPORT_LANGUAGES, - { provideDefinition } - ) - ); + context.subscriptions.push(vscode.languages.registerDefinitionProvider(SUPPORT_LANGUAGES, { provideDefinition })); SUPPORT_LANGUAGES.forEach((language) => { // Set provideHover - context.subscriptions.push( - vscode.languages.registerHoverProvider(language, { provideHover }) - ); + context.subscriptions.push(vscode.languages.registerHoverProvider(language, { provideHover })); // Styles auto Complete context.subscriptions.push( - vscode.languages.registerCompletionItemProvider( - language, { provideCompletionItems }, '.' - ) + vscode.languages.registerCompletionItemProvider(language, { provideCompletionItems }, '.') ); - }) -} \ No newline at end of file + }); +} diff --git a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts index 2ac2a6e5a..5c68134be 100644 --- a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts +++ b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyle.ts @@ -25,7 +25,11 @@ export interface IStyle { } // Find style property by className, in some CSS files. -export function findStyle(directory: string, className: string, styleDependencies: IStyleDependency[] = []): IStyle | undefined { +export function findStyle( + directory: string, + className: string, + styleDependencies: IStyleDependency[] = [] +): IStyle | undefined { let matched: IStyle | undefined; for (let i = 0, l = styleDependencies.length; i < l; i++) { @@ -61,9 +65,10 @@ export function findStyle(directory: string, className: string, styleDependencie const stylesheet = css.parse(cssContent).stylesheet; matched = stylesheet.rules.find( - rule => rule.selectors && + (rule) => + rule.selectors && // Selector endWith className. Example: '.bar' can match '.foo .bar'. - rule.selectors.find(selector => selector.endsWith(className)) + rule.selectors.find((selector) => selector.endsWith(className)) ); // Just find one matched stylesheet. @@ -71,11 +76,11 @@ export function findStyle(directory: string, className: string, styleDependencie matched.file = file; matched.code = css.stringify({ type: 'stylesheet', - stylesheet: { rules: [matched] } + stylesheet: { rules: [matched] }, }); break; } } return matched; -}; +} diff --git a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyleDependencies.ts b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyleDependencies.ts index 78fc7a844..f91d5c405 100644 --- a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyleDependencies.ts +++ b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyleDependencies.ts @@ -26,18 +26,22 @@ export function findStyleDependencies(file: string) { ImportDeclaration(path) { const { node } = path; // Example /\.css$|\.scss$|\.sass$/ - if (new RegExp(`${supportFiles.map(supportFile => `\\.${supportFile}$`).join('|')}`, 'i').test(node.source.value)) { + if ( + new RegExp(`${supportFiles.map((supportFile) => `\\.${supportFile}$`).join('|')}`, 'i').test( + node.source.value + ) + ) { StyleDependencies.push({ source: node.source.value, // Just return first identifier. - identifier: node.specifiers[0] ? node.specifiers[0].local.name : null + identifier: node.specifiers[0] ? node.specifiers[0].local.name : null, }); } - } + }, }); } catch (e) { // ignore } return StyleDependencies; -}; +} diff --git a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyleSelectors.ts b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyleSelectors.ts index 23ff5bb59..c3336c2d9 100644 --- a/extensions/iceworks-style-helper/src/styleInfoViewer/findStyleSelectors.ts +++ b/extensions/iceworks-style-helper/src/styleInfoViewer/findStyleSelectors.ts @@ -19,7 +19,6 @@ export default function findStyleSelectors(directory: string, styleDependencies: } }); } - - return selectors; -}; + return selectors; +} diff --git a/extensions/iceworks-style-helper/src/styleInfoViewer/index.ts b/extensions/iceworks-style-helper/src/styleInfoViewer/index.ts index 3c227e4d9..42c9dbcd6 100644 --- a/extensions/iceworks-style-helper/src/styleInfoViewer/index.ts +++ b/extensions/iceworks-style-helper/src/styleInfoViewer/index.ts @@ -4,12 +4,7 @@ import { findStyleDependencies } from './findStyleDependencies'; import findStyleSelectors from './findStyleSelectors'; import { getFocusCodeInfo } from '../getFocusCodeInfo'; -const SUPPORT_LANGUAGES = [ - 'javascript', - 'javascriptreact', - 'typescript', - 'typescriptreact' -]; +const SUPPORT_LANGUAGES = ['javascript', 'javascriptreact', 'typescript', 'typescriptreact']; // Cmd+Click jump to style definition function provideDefinition(document: vscode.TextDocument, position: vscode.Position) { @@ -67,21 +62,11 @@ function provideCompletionItems(document: vscode.TextDocument, position: vscode. export default function styleInfoViewer(context: vscode.ExtensionContext) { // Cmd+Click jump to style definition - context.subscriptions.push( - vscode.languages.registerDefinitionProvider( - SUPPORT_LANGUAGES, - { provideDefinition } - ) - ); + context.subscriptions.push(vscode.languages.registerDefinitionProvider(SUPPORT_LANGUAGES, { provideDefinition })); SUPPORT_LANGUAGES.forEach((language) => { // Show current style on hover over - context.subscriptions.push( - vscode.languages.registerHoverProvider( - language, - { provideHover } - ) - ); + context.subscriptions.push(vscode.languages.registerHoverProvider(language, { provideHover })); // Styles auto Complete context.subscriptions.push( @@ -89,9 +74,11 @@ export default function styleInfoViewer(context: vscode.ExtensionContext) { language, { provideCompletionItems }, // eslint-disable-next-line - '.', '\"', '\'', ' ', + '.', + '"', + "'", + ' ' ) ); }); } - diff --git a/extensions/iceworks-style-helper/tsconfig.json b/extensions/iceworks-style-helper/tsconfig.json index be6e7d0be..d9883e3d5 100644 --- a/extensions/iceworks-style-helper/tsconfig.json +++ b/extensions/iceworks-style-helper/tsconfig.json @@ -9,8 +9,6 @@ "esModuleInterop": true, "skipLibCheck": true }, - - "exclude": [ - "node_modules" - ] -} \ No newline at end of file + + "exclude": ["node_modules"] +} diff --git a/extensions/iceworks/.vscode/launch.json b/extensions/iceworks/.vscode/launch.json index 01ffefadf..1cc0b4ec8 100644 --- a/extensions/iceworks/.vscode/launch.json +++ b/extensions/iceworks/.vscode/launch.json @@ -1,12 +1,12 @@ { "version": "0.2.0", - "configurations": [{ - "name": "Extension", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ] - }] + "configurations": [ + { + "name": "Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": ["--extensionDevelopmentPath=${workspaceFolder}"] + } + ] } diff --git a/jest.config.js b/jest.config.js index 2d789c83a..2e7e7020a 100644 --- a/jest.config.js +++ b/jest.config.js @@ -2,21 +2,13 @@ module.exports = { coverageDirectory: './coverage/', collectCoverage: true, testEnvironment: 'node', - testPathIgnorePatterns: [ - 'lib/', - '__tests__/tmp/', - '/node_modules/', - ], + testPathIgnorePatterns: ['lib/', '__tests__/tmp/', '/node_modules/'], modulePathIgnorePatterns: [ // '/packages/generate-project/', // '/packages/ice-npm-utils/', // '/packages/config/', ], preset: 'ts-jest', - setupFilesAfterEnv: [ - 'jest-extended' - ], - setupFiles: [ - './jest.setup.js' - ] + setupFilesAfterEnv: ['jest-extended'], + setupFiles: ['./jest.setup.js'], }; diff --git a/lerna.json b/lerna.json index c77d73336..b24fa0b09 100644 --- a/lerna.json +++ b/lerna.json @@ -2,9 +2,7 @@ "version": "independent", "npmClient": "yarn", "useWorkspaces": true, - "packages": [ - "packages/*" - ], + "packages": ["packages/*"], "command": { "publish": { "message": "chore(release): publish" diff --git a/packages/block-service/package.json b/packages/block-service/package.json index 129d6a553..df4d9f55b 100644 --- a/packages/block-service/package.json +++ b/packages/block-service/package.json @@ -28,4 +28,4 @@ "access": "public" }, "gitHead": "fc5b35f95ab4cc24898845916acf598c2f34d576" -} \ No newline at end of file +} diff --git a/packages/block-service/src/i18n.ts b/packages/block-service/src/i18n.ts index 18a58446d..c0c80a5f2 100644 --- a/packages/block-service/src/i18n.ts +++ b/packages/block-service/src/i18n.ts @@ -6,6 +6,6 @@ import * as enUSTextMap from './locales/en-US.json'; const i18n = new I18nService(); i18n.registry('zh-cn', zhCNTextMap); i18n.registry('en', enUSTextMap); -i18n.setLocal(vscode.env.language ); +i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/packages/block-service/src/index.ts b/packages/block-service/src/index.ts index e2a81a4a4..956d78e54 100644 --- a/packages/block-service/src/index.ts +++ b/packages/block-service/src/index.ts @@ -11,14 +11,14 @@ import { pagesPath, COMPONENT_DIR_NAME, jsxFileExtnames, - checkIsTemplate + checkIsTemplate, } from '@iceworks/project-service'; import { createNpmCommand, getTagTemplate, getImportInfos, getLastAcitveTextEditor, - getImportTemplate + getImportTemplate, } from '@iceworks/common-service'; import * as upperCamelCase from 'uppercamelcase'; import * as transfromTsToJs from 'transform-ts-to-js'; @@ -30,7 +30,7 @@ const { window, Position } = vscode; function getBlockType(blockSourceSrcPath) { const files = readFiles(blockSourceSrcPath); - const index = files.findIndex(item => { + const index = files.findIndex((item) => { return /\.ts(x)/.test(item); }); @@ -43,14 +43,14 @@ function getBlockType(blockSourceSrcPath) { export const bulkGenerate = async function (blocks: IMaterialBlock[], localPath: string) { await bulkDownload(blocks, localPath); await bulkInstallDependencies(blocks); -} +}; /** * Download blocks code to page */ export const bulkDownload = async function (blocks: IMaterialBlock[], localPath: string, log?: (text: string) => void) { if (!log) { - log = (text) => console.log(text) + log = (text) => console.log(text); } return await Promise.all( @@ -73,17 +73,13 @@ export const bulkDownload = async function (blocks: IMaterialBlock[], localPath: const blockTempDir = path.join(localPath, `.${blockName}.temp`); try { - await getAndExtractTarball( - blockTempDir, - tarballURL, - ({ percent }) => { - log(i18n.format('package.block-service.downloadBlock.process', { percent: (percent * 100).toFixed(2) })); - } - ); + await getAndExtractTarball(blockTempDir, tarballURL, ({ percent }) => { + log(i18n.format('package.block-service.downloadBlock.process', { percent: (percent * 100).toFixed(2) })); + }); } catch (error) { error.message = i18n.format('package.block-service.uzipError', { blockName, tarballURL }); if (error.code === 'ETIMEDOUT' || error.code === 'ESOCKETTIMEDOUT') { - error.message = i18n.format('package.block-service.uzipOutTime', { blockName, tarballURL });; + error.message = i18n.format('package.block-service.uzipOutTime', { blockName, tarballURL }); } await fsExtra.remove(blockTempDir); throw error; @@ -112,9 +108,9 @@ export const bulkDownload = async function (blocks: IMaterialBlock[], localPath: await fsExtra.move(blockSourceSrcPath, blockDir); await fsExtra.remove(blockTempDir); return blockDir; - }), + }) ); -} +}; /** * Installation block dependencies @@ -129,7 +125,7 @@ export const bulkInstallDependencies = async function (blocks: IMaterialBlock[]) // filter existing dependencies of project const filterDependencies: { [packageName: string]: string }[] = []; - Object.keys(blocksDependencies).forEach(packageName => { + Object.keys(blocksDependencies).forEach((packageName) => { if (!projectPackageJSON.dependencies.hasOwnProperty(packageName)) { filterDependencies.push({ [packageName]: blocksDependencies[packageName], @@ -138,14 +134,14 @@ export const bulkInstallDependencies = async function (blocks: IMaterialBlock[]) }); if (filterDependencies.length > 0) { - const deps = filterDependencies.map(dependency => { + const deps = filterDependencies.map((dependency) => { const [packageName, version]: [string, string] = Object.entries(dependency)[0]; return `${packageName}@${version}`; }); let terminal: vscode.Terminal; const terminalName = 'Iceworks'; - const targetTerminal = terminals.find(terminal => terminal.name === terminalName); + const targetTerminal = terminals.find((terminal) => terminal.name === terminalName); if (targetTerminal) { terminal = targetTerminal; @@ -159,10 +155,12 @@ export const bulkInstallDependencies = async function (blocks: IMaterialBlock[]) } else { return []; } -} +}; export async function addBlockCode(block: IMaterialBlock) { - const templateError = i18n.format('package.block-service.templateError', { jsxFileExtnames: jsxFileExtnames.join(',') });; + const templateError = i18n.format('package.block-service.templateError', { + jsxFileExtnames: jsxFileExtnames.join(','), + }); const activeTextEditor = getLastAcitveTextEditor(); console.log('addBlockCode....'); if (!activeTextEditor) { @@ -177,20 +175,17 @@ export async function addBlockCode(block: IMaterialBlock) { } const pageName = path.basename(path.dirname(fsPath)); - const pagePath = path.join( - pagesPath, - pageName - ); + const pagePath = path.join(pagesPath, pageName); const isPageFile = await fsExtra.pathExists(pagePath); if (!isPageFile) { throw new Error(i18n.format('package.block-service.notPageFileError', { pagesPath })); } - // insert code + // insert code const blockName: string = await generateBlockName(pageName, block.name); await insertBlock(activeTextEditor, blockName); - // download block + // download block const componentsPath = path.join(pagePath, COMPONENT_DIR_NAME); const materialOutputChannel = window.createOutputChannel('material'); materialOutputChannel.show(); @@ -214,18 +209,12 @@ export async function addBlockCode(block: IMaterialBlock) { export async function insertBlock(activeTextEditor: vscode.TextEditor, blockName: string) { const { position: importDeclarationPosition } = await getImportInfos(activeTextEditor.document.getText()); activeTextEditor.edit((editBuilder: vscode.TextEditorEdit) => { - editBuilder.insert( - importDeclarationPosition, - getImportTemplate(blockName, `./components/${blockName}`) - ); + editBuilder.insert(importDeclarationPosition, getImportTemplate(blockName, `./components/${blockName}`)); const { selection } = activeTextEditor; if (selection && selection.active) { const insertPosition = new Position(selection.active.line, selection.active.character); - editBuilder.insert( - insertPosition, - getTagTemplate(blockName) - ); + editBuilder.insert(insertPosition, getTagTemplate(blockName)); } }); } diff --git a/packages/block-service/src/locales/en-US.json b/packages/block-service/src/locales/en-US.json index 3f7a97113..c655389cc 100644 --- a/packages/block-service/src/locales/en-US.json +++ b/packages/block-service/src/locales/en-US.json @@ -1,15 +1,15 @@ { - "package.block-service.downloadBlock.getDownloadUrl": "Obtain Download URL...", - "package.block-service.downloadBlock.getDownloadUrlError": "Failed to obtain url, please copy and open <%= repository %> in browse.", - "package.block-service.downloadBlock.unzipCode": "Download and unzip code...", - "package.block-service.downloadBlock.unzipCodeError": "Error in unzipping <%= blockName %>,please copy and download from this url: :<%= tarballURL %>", - "package.block-service.downloadBlock.process": "===>>> Downloading:<%= percent %>%", - "package.block-service.downloadBlock.downloadError": "Block <%= blockName %> download timeout, please copy and download from this url: :<%= tarballURL %>", - "package.block-service.downloadError": "Failed to obtain zips from <%= blockSourceNpm %> ,try to clone the <%= repository %> repository manually.", - "package.block-service.uzipError": "Failed to unzip <%= blockName %>,download from:<%= tarballURL %>", - "package.block-service.uzipOutTime": "Uzip <%= blockName %> timeout,download from:<%= tarballURL %>", - "package.block-service.templateError": "You can only add block codes to <%= jsxFileExtnames %> ", - "package.block-service.notPageFileError": "You can only add block codes to files in <%= pagesPath %>", - "package.block-service.startObtainBlock": "> Obtain block codes...", - "package.block-service.obtainDone": "> The block code has been downloaded to <%= blockDir %>" -} \ No newline at end of file + "package.block-service.downloadBlock.getDownloadUrl": "Obtain Download URL...", + "package.block-service.downloadBlock.getDownloadUrlError": "Failed to obtain url, please copy and open <%= repository %> in browse.", + "package.block-service.downloadBlock.unzipCode": "Download and unzip code...", + "package.block-service.downloadBlock.unzipCodeError": "Error in unzipping <%= blockName %>,please copy and download from this url: :<%= tarballURL %>", + "package.block-service.downloadBlock.process": "===>>> Downloading:<%= percent %>%", + "package.block-service.downloadBlock.downloadError": "Block <%= blockName %> download timeout, please copy and download from this url: :<%= tarballURL %>", + "package.block-service.downloadError": "Failed to obtain zips from <%= blockSourceNpm %> ,try to clone the <%= repository %> repository manually.", + "package.block-service.uzipError": "Failed to unzip <%= blockName %>,download from:<%= tarballURL %>", + "package.block-service.uzipOutTime": "Uzip <%= blockName %> timeout,download from:<%= tarballURL %>", + "package.block-service.templateError": "You can only add block codes to <%= jsxFileExtnames %> ", + "package.block-service.notPageFileError": "You can only add block codes to files in <%= pagesPath %>", + "package.block-service.startObtainBlock": "> Obtain block codes...", + "package.block-service.obtainDone": "> The block code has been downloaded to <%= blockDir %>" +} diff --git a/packages/block-service/src/locales/zh-CN.json b/packages/block-service/src/locales/zh-CN.json index f8cb385e9..386939cf1 100644 --- a/packages/block-service/src/locales/zh-CN.json +++ b/packages/block-service/src/locales/zh-CN.json @@ -1,15 +1,15 @@ { - "package.block-service.downloadBlock.getDownloadUrl": "获取区块代码包下载地址", - "package.block-service.downloadBlock.getDownloadUrlError": "获取区块代码包地址失败,请手动拷贝代码仓库:<%= repository %>", - "package.block-service.downloadBlock.unzipCode": "下载区块代码包并解压", - "package.block-service.downloadBlock.unzipCodeError": "解压区块<%= blockName %>出错,请手动下载区块:<%= tarballURL %>", - "package.block-service.downloadBlock.process": "===>>> 进度:<%= percent %>%", - "package.block-service.downloadBlock.downloadError": "区块<%= blockName %>下载超时,请手动下载区块:<%= tarballURL %>", - "package.block-service.downloadError": "从 <%= blockSourceNpm %> 获取压缩包链接失败,您可以尝试手动克隆 <%= repository %> 仓库", - "package.block-service.uzipError": "解压 <%= blockName %> 失败,压缩包链接地址是:<%= tarballURL %>", - "package.block-service.uzipOutTime": "解压 <%= blockName %> 超时,压缩包链接地址是:<%= tarballURL %>", - "package.block-service.templateError": "只能向 <%= jsxFileExtnames %> 文件添加区块代码", - "package.block-service.notPageFileError": "只能向 <%= pagesPath %> 下的页面文件添加区块代码", - "package.block-service.startObtainBlock": "> 开始获取区块代码", - "package.block-service.obtainDone": "> 已将区块代码下载到:<%= blockDir %>" -} \ No newline at end of file + "package.block-service.downloadBlock.getDownloadUrl": "获取区块代码包下载地址", + "package.block-service.downloadBlock.getDownloadUrlError": "获取区块代码包地址失败,请手动拷贝代码仓库:<%= repository %>", + "package.block-service.downloadBlock.unzipCode": "下载区块代码包并解压", + "package.block-service.downloadBlock.unzipCodeError": "解压区块<%= blockName %>出错,请手动下载区块:<%= tarballURL %>", + "package.block-service.downloadBlock.process": "===>>> 进度:<%= percent %>%", + "package.block-service.downloadBlock.downloadError": "区块<%= blockName %>下载超时,请手动下载区块:<%= tarballURL %>", + "package.block-service.downloadError": "从 <%= blockSourceNpm %> 获取压缩包链接失败,您可以尝试手动克隆 <%= repository %> 仓库", + "package.block-service.uzipError": "解压 <%= blockName %> 失败,压缩包链接地址是:<%= tarballURL %>", + "package.block-service.uzipOutTime": "解压 <%= blockName %> 超时,压缩包链接地址是:<%= tarballURL %>", + "package.block-service.templateError": "只能向 <%= jsxFileExtnames %> 文件添加区块代码", + "package.block-service.notPageFileError": "只能向 <%= pagesPath %> 下的页面文件添加区块代码", + "package.block-service.startObtainBlock": "> 开始获取区块代码", + "package.block-service.obtainDone": "> 已将区块代码下载到:<%= blockDir %>" +} diff --git a/packages/block-service/src/utils/generateBlockName.ts b/packages/block-service/src/utils/generateBlockName.ts index 77089f35f..264a97450 100644 --- a/packages/block-service/src/utils/generateBlockName.ts +++ b/packages/block-service/src/utils/generateBlockName.ts @@ -15,4 +15,4 @@ export async function generateBlockName(pageName: string, defineName: string): P } return generateName(defineName); -} \ No newline at end of file +} diff --git a/packages/block-service/src/utils/getBlocks.ts b/packages/block-service/src/utils/getBlocks.ts index 2365e7b32..b66560a04 100644 --- a/packages/block-service/src/utils/getBlocks.ts +++ b/packages/block-service/src/utils/getBlocks.ts @@ -23,4 +23,4 @@ export async function getBlocks(pageName: string): Promise { }; }); return blocks; -} \ No newline at end of file +} diff --git a/packages/block-service/src/utils/scanDirectory.ts b/packages/block-service/src/utils/scanDirectory.ts index 722b28e77..200bbce1e 100644 --- a/packages/block-service/src/utils/scanDirectory.ts +++ b/packages/block-service/src/utils/scanDirectory.ts @@ -10,28 +10,27 @@ import * as junk from 'junk'; export const scanDirectory = async (directoryPath: string): Promise => { const files = await fs.readdir(directoryPath); const targetFiles: any[] = []; - await Promise.all(files.map(async (filename: string) => { - const targetPath = path.join(directoryPath, filename); - let stats; - try { - stats = await fs.lstat(targetPath); - } catch (err) { - console.warn('lstatAsync got error:', err); - } - - const isDirectory = stats && - stats.isDirectory() && - junk.not(filename) && - filename.indexOf('.') !== 0; - if (isDirectory) { + await Promise.all( + files.map(async (filename: string) => { + const targetPath = path.join(directoryPath, filename); + let stats; try { - await fs.access(targetPath, fs.constants.R_OK); - targetFiles.push(filename); - } catch (error) { - console.warn('accessAsync got error:', error); + stats = await fs.lstat(targetPath); + } catch (err) { + console.warn('lstatAsync got error:', err); + } + + const isDirectory = stats && stats.isDirectory() && junk.not(filename) && filename.indexOf('.') !== 0; + if (isDirectory) { + try { + await fs.access(targetPath, fs.constants.R_OK); + targetFiles.push(filename); + } catch (error) { + console.warn('accessAsync got error:', error); + } } - } - })); + }) + ); return targetFiles; -}; \ No newline at end of file +}; diff --git a/packages/block-service/tsconfig.json b/packages/block-service/tsconfig.json index 5666436e7..3c8e7f348 100644 --- a/packages/block-service/tsconfig.json +++ b/packages/block-service/tsconfig.json @@ -8,8 +8,5 @@ "moduleResolution": "node", "resolveJsonModule": true }, - "exclude": [ - "src/__tests__", - "lib" - ] -} \ No newline at end of file + "exclude": ["src/__tests__", "lib"] +} diff --git a/packages/common-service/package.json b/packages/common-service/package.json index 088074131..1c3acfed5 100644 --- a/packages/common-service/package.json +++ b/packages/common-service/package.json @@ -11,7 +11,7 @@ "dependencies": { "@babel/parser": "^7.10.4", "@babel/traverse": "^7.10.4", - "@iceworks/constant":"^0.1.0", + "@iceworks/constant": "^0.1.0", "axios": "^0.19.2", "co": "4.6.0", "fs-extra": "^9.0.0", diff --git a/packages/common-service/scripts/get-def-login-client.ts b/packages/common-service/scripts/get-def-login-client.ts index 1943781c8..47e90e3ef 100644 --- a/packages/common-service/scripts/get-def-login-client.ts +++ b/packages/common-service/scripts/get-def-login-client.ts @@ -10,7 +10,7 @@ if (process.env.ACCESS_KEY_ID && process.env.ACCESS_KEY_SECRET) { accessKeyId: process.env.ACCESS_KEY_ID, accessKeySecret: process.env.ACCESS_KEY_SECRET, timeout: '300s', - }) + }); const target = 'packages/def-login-client.zip'; @@ -18,7 +18,8 @@ if (process.env.ACCESS_KEY_ID && process.env.ACCESS_KEY_SECRET) { * get def login client package from oss */ (function () { - ossClient.get(target) + ossClient + .get(target) .then((result) => { const zipPath = path.join(__dirname, '..', 'tmp.zip'); fse.writeFileSync(zipPath, result.content); @@ -27,6 +28,6 @@ if (process.env.ACCESS_KEY_ID && process.env.ACCESS_KEY_SECRET) { zip.extractAllTo(extractPath, true); fse.removeSync(zipPath); }) - .catch(e => console.error(e)) - })() -} \ No newline at end of file + .catch((e) => console.error(e)); + })(); +} diff --git a/packages/common-service/scripts/install-def-login-client-deps.ts b/packages/common-service/scripts/install-def-login-client-deps.ts index 54a9d106a..348b5d678 100644 --- a/packages/common-service/scripts/install-def-login-client-deps.ts +++ b/packages/common-service/scripts/install-def-login-client-deps.ts @@ -16,9 +16,9 @@ import * as spawn from 'cross-spawn'; console.log('Start to install def-login-client dependencies...'); spawn.sync('npm', installCommonds, { stdio: 'inherit', - cwd + cwd, }); } catch { // ignore } -})() \ No newline at end of file +})(); diff --git a/packages/common-service/src/index.ts b/packages/common-service/src/index.ts index 1cbe82f32..15e92717a 100644 --- a/packages/common-service/src/index.ts +++ b/packages/common-service/src/index.ts @@ -3,7 +3,12 @@ import * as fse from 'fs-extra'; import * as vscode from 'vscode'; import * as path from 'path'; import axios from 'axios'; -import { ALI_GITLABGROUPS_API, ALI_GITLABPROJECTS_API, ALI_FUSION_MATERIAL_URL, ALI_NPM_REGISTRY } from '@iceworks/constant' +import { + ALI_GITLABGROUPS_API, + ALI_GITLABPROJECTS_API, + ALI_FUSION_MATERIAL_URL, + ALI_NPM_REGISTRY, +} from '@iceworks/constant'; import { IImportDeclarations, getImportDeclarations } from './utils/getImportDeclarations'; export * from './log'; @@ -23,10 +28,10 @@ try { /* eslint-disable */ Client = require('../def-login-client'); defClient = new Client({ - 'server': 'http://def.alibaba-inc.com', + server: 'http://def.alibaba-inc.com', }); } catch { - console.log('def-login-client is not found') + console.log('def-login-client is not found'); } let activeTextEditorId: string; @@ -40,7 +45,7 @@ export async function checkIsAliInternal(): Promise { export async function checkPathExists(p: string, folderName?: string): Promise { if (folderName) { - p = path.join(p, folderName) + p = path.join(p, folderName); } return await fse.pathExists(p); } @@ -81,7 +86,7 @@ export async function initExtension(context: vscode.ExtensionContext) { export function onChangeActiveTextEditor(context: vscode.ExtensionContext) { vscode.window.onDidChangeActiveTextEditor( - editor => { + (editor) => { if (editor) { const fsPath = editor.document.uri.fsPath; const isJSXFile = fsPath.match(/^.*\.(jsx?|tsx)$/g); @@ -108,9 +113,11 @@ export async function autoInitMaterialSource(globalState: vscode.Memento) { // old materialSources and remove it from the previous users const officalMaterialSources = [ 'http://ice.alicdn.com/assets/materials/react-materials.json', - ALI_FUSION_MATERIAL_URL + ALI_FUSION_MATERIAL_URL, ]; - const newSources = materialSources.filter(materialSource => !officalMaterialSources.includes(materialSource.source)); + const newSources = materialSources.filter( + (materialSource) => !officalMaterialSources.includes(materialSource.source) + ); saveDataToSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES, newSources); } @@ -184,20 +191,20 @@ export function createNpmCommand(action: string, target: string = '', extra: str export async function getGitLabGroups(token: string) { const res = await axios.get(ALI_GITLABGROUPS_API, { params: { - 'private_token': token - } + private_token: token, + }, }); - console.log('gitLab groups', res.data) + console.log('gitLab groups', res.data); return res.data; } export async function getExistProjects(token: string) { const res = await axios.get(ALI_GITLABPROJECTS_API, { params: { - 'private_token': token - } - }) - console.log('exist projects', res.data) + private_token: token, + }, + }); + console.log('exist projects', res.data); return res.data; } @@ -228,7 +235,7 @@ export function getTagTemplate(name: string): string { interface IImportInfos { position: vscode.Position; declarations: IImportDeclarations[]; -}; +} export async function getImportInfos(text: string): Promise { const importDeclarations: IImportDeclarations[] = await getImportDeclarations(text); @@ -249,7 +256,7 @@ export async function getUserInfo() { const user = yield defClient.user(); return user; } else { - throw new Error('Error: Fail to get user info through def client.') + throw new Error('Error: Fail to get user info through def client.'); } }); @@ -258,17 +265,17 @@ export async function getUserInfo() { const { empId, account, gitlabToken } = userData; if (empId && account) { - return userData + return userData; } else { try { const { account, empid: empId } = await fn(); - return { account, empId, gitlabToken } + return { account, empId, gitlabToken }; } catch (e) { - throw new Error(e.message) + throw new Error(e.message); } } } export function getLanguage() { return vscode.env.language; -} \ No newline at end of file +} diff --git a/packages/common-service/src/log.ts b/packages/common-service/src/log.ts index 9ef174ac6..ee0e59159 100644 --- a/packages/common-service/src/log.ts +++ b/packages/common-service/src/log.ts @@ -29,7 +29,7 @@ async function recordPV(originParam: IGoldlogParam, recordType?: RecordType) { recordType = recordType || 'PV'; const param = { ...originParam, - // eslint-disable-next-line + // eslint-disable-next-line record_type: recordType, recordType, cache: Math.random(), @@ -37,13 +37,8 @@ async function recordPV(originParam: IGoldlogParam, recordType?: RecordType) { try { const dataKeyArray = Object.keys(param); const gokey = dataKeyArray.reduce((finalStr, currentKey, index) => { - const currentData = - typeof param[currentKey] === 'string' - ? param[currentKey] - : JSON.stringify(param[currentKey]); - return `${finalStr}${currentKey}=${currentData}${ - dataKeyArray.length - 1 === index ? '' : '&' - }`; + const currentData = typeof param[currentKey] === 'string' ? param[currentKey] : JSON.stringify(param[currentKey]); + return `${finalStr}${currentKey}=${currentData}${dataKeyArray.length - 1 === index ? '' : '&'}`; }, ''); if (typeof isAlibaba === 'undefined') { @@ -83,7 +78,7 @@ function recordUV(originParam: IGoldlogParam, storage: IStorage) { const nowtDate = new Date().toDateString(); const dauKey = `iceworks.logger.${JSON.stringify(originParam)}`; const lastDate = storage.get(dauKey); - if(nowtDate !== lastDate) { + if (nowtDate !== lastDate) { storage.update(dauKey, nowtDate); return recordPV(originParam, 'UV'); } @@ -97,24 +92,30 @@ export async function record(originParam: IGoldlogParam, storage?: IStorage) { } export function recordMainDAU(storage: IStorage) { - return record({ - namespace: MAIN_KEY, - module: LOGGER_MODULE_KEY, - action: 'dau', - data: { - platform: process.platform, - locale: vscode.env.language, + return record( + { + namespace: MAIN_KEY, + module: LOGGER_MODULE_KEY, + action: 'dau', + data: { + platform: process.platform, + locale: vscode.env.language, + }, }, - }, storage); + storage + ); } export function recordMainActivate(storage: IStorage, data: { extension: string; version?: string }) { - return record({ - namespace: MAIN_KEY, - module: LOGGER_MODULE_KEY, - action: 'activate', - data, - }, storage); + return record( + { + namespace: MAIN_KEY, + module: LOGGER_MODULE_KEY, + action: 'activate', + data, + }, + storage + ); } interface IStorage { @@ -143,10 +144,13 @@ export class Logger { } public record(param: ILogParam) { - return record({ - namespace: this.namespace, - ...param - }, this.storage); + return record( + { + namespace: this.namespace, + ...param, + }, + this.storage + ); } /** diff --git a/packages/common-service/src/utils/getImportDeclarations.ts b/packages/common-service/src/utils/getImportDeclarations.ts index 7583258d0..4f12d8c80 100644 --- a/packages/common-service/src/utils/getImportDeclarations.ts +++ b/packages/common-service/src/utils/getImportDeclarations.ts @@ -35,9 +35,7 @@ export async function getImportDeclarations(content: string): Promisefalse' - } - ] - } + use: 'imports-loader?define=>false', + }, + ], + }, }; -module.exports = config; \ No newline at end of file +module.exports = config; diff --git a/packages/component-service/package.json b/packages/component-service/package.json index 1bd7188be..2a7c002d8 100644 --- a/packages/component-service/package.json +++ b/packages/component-service/package.json @@ -22,4 +22,4 @@ "access": "public" }, "gitHead": "fc5b35f95ab4cc24898845916acf598c2f34d576" -} \ No newline at end of file +} diff --git a/packages/component-service/src/i18n.ts b/packages/component-service/src/i18n.ts index 612c0c8ba..6cd9f9895 100644 --- a/packages/component-service/src/i18n.ts +++ b/packages/component-service/src/i18n.ts @@ -11,4 +11,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/packages/component-service/src/index.ts b/packages/component-service/src/index.ts index 7970058c8..71bb00200 100644 --- a/packages/component-service/src/index.ts +++ b/packages/component-service/src/index.ts @@ -14,7 +14,7 @@ import { dependencyDir, packageJSONFilename, checkIsTemplate, - getPackageJSON + getPackageJSON, } from '@iceworks/project-service'; import insertComponent from './utils/insertComponent'; import i18n from './i18n'; @@ -22,7 +22,9 @@ import i18n from './i18n'; const { window, Position } = vscode; export async function addBizCode(dataSource: IMaterialComponent) { - const templateError = i18n.format('package.component-service.index.templateError', { jsxFileExtnames: jsxFileExtnames.join(',') }); + const templateError = i18n.format('package.component-service.index.templateError', { + jsxFileExtnames: jsxFileExtnames.join(','), + }); const { name, source } = dataSource; const { npm, version } = source; const { terminals } = window; @@ -54,7 +56,7 @@ export async function addBizCode(dataSource: IMaterialComponent) { let terminal: vscode.Terminal; const terminalName = 'Iceworks'; - const targetTerminal = terminals.find(terminal => terminal.name === terminalName); + const targetTerminal = terminals.find((terminal) => terminal.name === terminalName); if (targetTerminal) { terminal = targetTerminal; } else { @@ -64,14 +66,16 @@ export async function addBizCode(dataSource: IMaterialComponent) { const packageManager = getDataFromSettingJson(CONFIGURATION_KEY_PCKAGE_MANAGER); terminal.show(); - terminal.sendText(`cd '${projectPath}'`, true); // the command, for example `cd 'd:\workspace'`, is to be compatible with Windows and Linux + terminal.sendText(`cd '${projectPath}'`, true); // the command, for example `cd 'd:\workspace'`, is to be compatible with Windows and Linux terminal.sendText(`${packageManager} install ${npm}@${version}`, true); // activate the textEditor window.showTextDocument(activeTextEditor.document, activeTextEditor.viewColumn); } export async function addBaseCode(dataSource: IMaterialBase) { - const templateError = i18n.format('package.component-service.index.templateError', { jsxFileExtnames: jsxFileExtnames.join(',') }); + const templateError = i18n.format('package.component-service.index.templateError', { + jsxFileExtnames: jsxFileExtnames.join(','), + }); const activeTextEditor = getLastAcitveTextEditor(); if (!activeTextEditor) { @@ -87,7 +91,9 @@ export async function addBaseCode(dataSource: IMaterialBase) { const { importStatement, name, source } = dataSource; const { npm } = source; - const { position: importDeclarationPosition, declarations: importDeclarations } = await getImportInfos(activeTextEditor.document.getText()); + const { position: importDeclarationPosition, declarations: importDeclarations } = await getImportInfos( + activeTextEditor.document.getText() + ); const baseImportDeclaration = importDeclarations.find(({ source }) => { return source.value === npm; }); @@ -96,10 +102,7 @@ export async function addBaseCode(dataSource: IMaterialBase) { activeTextEditor.edit((editBuilder: vscode.TextEditorEdit) => { let existImportedName = ''; if (!baseImportDeclaration) { - editBuilder.insert( - importDeclarationPosition, - `${importStatement}\n` - ); + editBuilder.insert(importDeclarationPosition, `${importStatement}\n`); } else { const baseSpecifiers = baseImportDeclaration.specifiers; baseSpecifiers.forEach(({ imported, local }) => { @@ -114,15 +117,12 @@ export async function addBaseCode(dataSource: IMaterialBase) { editBuilder.insert( new Position(baseLastSpecifierPosition.line - 1, baseLastSpecifierPosition.column), - `, ${name}`, + `, ${name}` ); } } - editBuilder.insert( - insertPosition, - getTagTemplate(existImportedName || name) - ); + editBuilder.insert(insertPosition, getTagTemplate(existImportedName || name)); }); // activate the textEditor window.showTextDocument(activeTextEditor.document, activeTextEditor.viewColumn); diff --git a/packages/component-service/src/locales/en-US.json b/packages/component-service/src/locales/en-US.json index 8efe8ab26..bf51191ea 100644 --- a/packages/component-service/src/locales/en-US.json +++ b/packages/component-service/src/locales/en-US.json @@ -1,3 +1,3 @@ { - "package.component-service.index.templateError": "You can only add component code to <%= jsxFileExtnames %> files" -} \ No newline at end of file + "package.component-service.index.templateError": "You can only add component code to <%= jsxFileExtnames %> files" +} diff --git a/packages/component-service/src/locales/zh-CN.json b/packages/component-service/src/locales/zh-CN.json index eb38245d1..9a1845d1d 100644 --- a/packages/component-service/src/locales/zh-CN.json +++ b/packages/component-service/src/locales/zh-CN.json @@ -1,3 +1,3 @@ { - "package.component-service.index.templateError": "只能向 <%= jsxFileExtnames %> 文件添加组件代码" -} \ No newline at end of file + "package.component-service.index.templateError": "只能向 <%= jsxFileExtnames %> 文件添加组件代码" +} diff --git a/packages/component-service/src/utils/insertComponent.ts b/packages/component-service/src/utils/insertComponent.ts index f4585cf0c..b5151af1e 100644 --- a/packages/component-service/src/utils/insertComponent.ts +++ b/packages/component-service/src/utils/insertComponent.ts @@ -5,7 +5,9 @@ import generateComponentName from './generateComponentName'; const { Position } = vscode; export default async function insertComponent(activeTextEditor: vscode.TextEditor, name: string, npm: string) { - const { position: importDeclarationPosition, declarations: importDeclarations } = await getImportInfos(activeTextEditor.document.getText()); + const { position: importDeclarationPosition, declarations: importDeclarations } = await getImportInfos( + activeTextEditor.document.getText() + ); const componentImportDeclaration = importDeclarations.find(({ source }) => source.value === npm); let componentName = generateComponentName(name); if (componentImportDeclaration) { @@ -14,19 +16,13 @@ export default async function insertComponent(activeTextEditor: vscode.TextEdito activeTextEditor.edit((editBuilder: vscode.TextEditorEdit) => { if (!componentImportDeclaration) { - editBuilder.insert( - importDeclarationPosition, - getImportTemplate(componentName, npm) - ); + editBuilder.insert(importDeclarationPosition, getImportTemplate(componentName, npm)); } const { selection } = activeTextEditor; if (selection && selection.active) { const insertPosition = new Position(selection.active.line, selection.active.character); - editBuilder.insert( - insertPosition, - getTagTemplate(componentName) - ); + editBuilder.insert(insertPosition, getTagTemplate(componentName)); } }); -} \ No newline at end of file +} diff --git a/packages/component-service/tsconfig.json b/packages/component-service/tsconfig.json index acfeec213..b138defa6 100644 --- a/packages/component-service/tsconfig.json +++ b/packages/component-service/tsconfig.json @@ -6,8 +6,5 @@ "outDir": "lib", "resolveJsonModule": true }, - "exclude": [ - "src/__tests__", - "lib" - ] -} \ No newline at end of file + "exclude": ["src/__tests__", "lib"] +} diff --git a/packages/config/tsconfig.json b/packages/config/tsconfig.json index cfae8b78c..4c3742776 100644 --- a/packages/config/tsconfig.json +++ b/packages/config/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "baseUrl": "./", "rootDir": "src", - "outDir": "lib", + "outDir": "lib" }, "exclude": ["src/__tests__", "lib"] } diff --git a/packages/constant/src/index.ts b/packages/constant/src/index.ts index 82cb1f105..03e1a5fb2 100644 --- a/packages/constant/src/index.ts +++ b/packages/constant/src/index.ts @@ -1,17 +1,25 @@ -import { Base64 } from 'js-base64' +import { Base64 } from 'js-base64'; export const ALI_NPM_REGISTRY = Base64.decode('aHR0cHM6Ly9yZWdpc3RyeS5ucG0uYWxpYmFiYS1pbmMuY29t'); -export const ALI_GITACCOUNT_URL = Base64.decode('aHR0cDovL2dpdGxhYi5hbGliYWJhLWluYy5jb20vcHJvZmlsZS9hY2NvdW50'); +export const ALI_GITACCOUNT_URL = Base64.decode('aHR0cDovL2dpdGxhYi5hbGliYWJhLWluYy5jb20vcHJvZmlsZS9hY2NvdW50'); export const ALI_GITACCOUNT_SHORTURL = Base64.decode('Z2l0bGFiLmFsaWJhYmEtaW5jLmNvbS9wcm9maWxlL2FjY291bnQ='); export const ALI_GITLABGROUPS_API = Base64.decode('aHR0cDovL2dpdGxhYi5hbGliYWJhLWluYy5jb20vYXBpL3YzL2dyb3Vwcw=='); export const ALI_GITLABPROJECTS_API = Base64.decode('aHR0cDovL2dpdGxhYi5hbGliYWJhLWluYy5jb20vYXBpL3YzL3Byb2plY3Rz'); -export const ALI_FUSION_MATERIAL_URL= Base64.decode('aHR0cHM6Ly9mdXNpb24uYWxpYmFiYS1pbmMuY29tL2FwaS92MS9zaXRlcy8xMTk0L21hdGVyaWFscw=='); +export const ALI_FUSION_MATERIAL_URL = Base64.decode( + 'aHR0cHM6Ly9mdXNpb24uYWxpYmFiYS1pbmMuY29tL2FwaS92MS9zaXRlcy8xMTk0L21hdGVyaWFscw==' +); export const ALI_YUEQU_URL = Base64.decode('aHR0cHM6Ly95dXF1ZS5hbGliYWJhLWluYy5jb20vaWNlL3JkeTk5cC9hbmd3eXg='); export const ALI_UNPKG_URL = Base64.decode('aHR0cHM6Ly91bnBrZy5hbGliYWJhLWluYy5jb20='); export const ALI_CHECKNODE_URL = Base64.decode('aHR0cHM6Ly9pY2UuYWxpYmFiYS1pbmMuY29tL2NoZWNrLm5vZGU='); -export const ALI_FUSION_V1_MATERIAL = Base64.decode('aHR0cHM6Ly9mdXNpb24uYWxpYmFiYS1pbmMuY29tL2FwaS92MS9zaXRlcy8yMS9tYXRlcmlhbHM='); -export const ALI_CREATETASK_URL = Base64.decode('aHR0cHM6Ly9hcGkuZGVmLmFsaWJhYmEtaW5jLmNvbS9hcGkvZ2VuZXJhdG9yL2dlbmVyYXRvci9jcmVhdGV0YXNr'); -export const ALI_TASKRESULT_URL = Base64.decode('aHR0cHM6Ly9hcGkuZGVmLmFsaWJhYmEtaW5jLmNvbS9hcGkvZ2VuZXJhdG9yL2dlbmVyYXRvci90YXNr'); +export const ALI_FUSION_V1_MATERIAL = Base64.decode( + 'aHR0cHM6Ly9mdXNpb24uYWxpYmFiYS1pbmMuY29tL2FwaS92MS9zaXRlcy8yMS9tYXRlcmlhbHM=' +); +export const ALI_CREATETASK_URL = Base64.decode( + 'aHR0cHM6Ly9hcGkuZGVmLmFsaWJhYmEtaW5jLmNvbS9hcGkvZ2VuZXJhdG9yL2dlbmVyYXRvci9jcmVhdGV0YXNr' +); +export const ALI_TASKRESULT_URL = Base64.decode( + 'aHR0cHM6Ly9hcGkuZGVmLmFsaWJhYmEtaW5jLmNvbS9hcGkvZ2VuZXJhdG9yL2dlbmVyYXRvci90YXNr' +); export const ALI_APPLYREPO_URL = Base64.decode('aHR0cHM6Ly9hcGkuZGVmLmFsaWJhYmEtaW5jLmNvbS9hcGkvd29yay9yZXBvL2FwcGx5'); export const ALI_GITLAB_URL = Base64.decode('Z2l0QGdpdGxhYi5hbGliYWJhLWluYy5jb20='); -export const ALI_EMAIL= Base64.decode('YWxpYmFiYS1pbmMuY29t'); +export const ALI_EMAIL = Base64.decode('YWxpYmFiYS1pbmMuY29t'); diff --git a/packages/constant/tsconfig.json b/packages/constant/tsconfig.json index cfae8b78c..4c3742776 100644 --- a/packages/constant/tsconfig.json +++ b/packages/constant/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "baseUrl": "./", "rootDir": "src", - "outDir": "lib", + "outDir": "lib" }, "exclude": ["src/__tests__", "lib"] } diff --git a/packages/generate-project/package.json b/packages/generate-project/package.json index eedd4217b..5487c422f 100644 --- a/packages/generate-project/package.json +++ b/packages/generate-project/package.json @@ -18,4 +18,4 @@ "@iceworks/constant": "^0.1.0" }, "gitHead": "fc5b35f95ab4cc24898845916acf598c2f34d576" -} \ No newline at end of file +} diff --git a/packages/generate-project/src/__tests__/index.ts b/packages/generate-project/src/__tests__/index.ts index 04cf39426..b70f7d90f 100644 --- a/packages/generate-project/src/__tests__/index.ts +++ b/packages/generate-project/src/__tests__/index.ts @@ -19,14 +19,20 @@ test('downloadAndGenerateProject raxjs with ejs options', async () => { const projectDir = path.resolve(tmpPath, 'raxjs-ejs'); await fs.ensureDir(projectDir); - await downloadAndGenerateProject(projectDir, '@rax-materials/scaffolds-web-app-js', null, 'https://registry.npmjs.org/', null, { - targets: ['web', 'miniapp'], - mpa: true, - }); + await downloadAndGenerateProject( + projectDir, + '@rax-materials/scaffolds-web-app-js', + null, + 'https://registry.npmjs.org/', + null, + { + targets: ['web', 'miniapp'], + mpa: true, + } + ); // await fs.remove(projectDir); }); - test('downloadAndGenerateProject ice-scripts@2.x', async () => { const projectDir = path.resolve(tmpPath, 'ice-scripts-2.x'); await fs.ensureDir(projectDir); diff --git a/packages/generate-project/src/checkEmpty.ts b/packages/generate-project/src/checkEmpty.ts index 4bcbbd589..22ca43ca5 100644 --- a/packages/generate-project/src/checkEmpty.ts +++ b/packages/generate-project/src/checkEmpty.ts @@ -4,14 +4,11 @@ export default async function checkEmpty(dir: string): Promise { let files: string[] = await fs.readdir(dir); // filter some special files files = files.filter((filename) => { - return [ - 'node_modules', '.git', '.DS_Store', '.iceworks-tmp', - 'build', '.bzbconfig', - ].indexOf(filename) === -1; + return ['node_modules', '.git', '.DS_Store', '.iceworks-tmp', 'build', '.bzbconfig'].indexOf(filename) === -1; }); if (files.length && files.length > 0) { return false; } else { return true; } -}; +} diff --git a/packages/generate-project/src/ejsRenderDir.ts b/packages/generate-project/src/ejsRenderDir.ts index a0fc080ab..fcba68120 100644 --- a/packages/generate-project/src/ejsRenderDir.ts +++ b/packages/generate-project/src/ejsRenderDir.ts @@ -3,27 +3,35 @@ import * as glob from 'glob'; import * as ejs from 'ejs'; import * as fse from 'fs-extra'; -export default async function(dir: string, options: any): Promise { +export default async function (dir: string, options: any): Promise { return new Promise((resolve, reject) => { - glob('**/*.ejs', { - cwd: dir, - nodir: true, - }, (err, files) => { - if (err) { - return reject(err); - } + glob( + '**/*.ejs', + { + cwd: dir, + nodir: true, + }, + (err, files) => { + if (err) { + return reject(err); + } - Promise.all(files.map((file) => { - const filepath = path.join(dir, file); - return renderFile(filepath, options); - })).then(() => { - resolve(); - }).catch((err) => { - reject(err); - }); - }); + Promise.all( + files.map((file) => { + const filepath = path.join(dir, file); + return renderFile(filepath, options); + }) + ) + .then(() => { + resolve(); + }) + .catch((err) => { + reject(err); + }); + } + ); }); -}; +} function renderFile(filepath: string, options: any): Promise { return new Promise((resolve, reject) => { diff --git a/packages/generate-project/src/fommatProject.ts b/packages/generate-project/src/fommatProject.ts index 19cc7dd14..f4dc61e2a 100644 --- a/packages/generate-project/src/fommatProject.ts +++ b/packages/generate-project/src/fommatProject.ts @@ -1,6 +1,6 @@ import * as path from 'path'; import * as fse from 'fs-extra'; -import { ALI_YUEQU_URL } from '@iceworks/constant' +import { ALI_YUEQU_URL } from '@iceworks/constant'; import { checkAliInternal } from 'ice-npm-utils'; export default async function formatProject(projectDir: string, projectName?: string): Promise { @@ -44,23 +44,20 @@ export default async function formatProject(projectDir: string, projectName?: st delete buildData.publicPath; if (isAliInternal) { - if (pkgData.dependencies.rax) { // For Rax project abcData = { type: 'rax', builder: '@ali/builder-rax-v1', info: { - raxVersion: '1.x' - } + raxVersion: '1.x', + }, }; // add @ali/build-plugin-rax-app-def pkgData.devDependencies['@ali/build-plugin-rax-app-def'] = '^1.0.2'; buildData.plugins.push('@ali/build-plugin-rax-app-def'); - } else { - abcData = { type: 'ice-app', builder: '@ali/builder-ice-app', diff --git a/packages/generate-project/src/index.ts b/packages/generate-project/src/index.ts index cec1c65e5..b2d6c50fe 100644 --- a/packages/generate-project/src/index.ts +++ b/packages/generate-project/src/index.ts @@ -1,22 +1,17 @@ import * as ora from 'ora'; -import { - isAliNpm, getNpmTarball, getAndExtractTarball -} from 'ice-npm-utils'; +import { isAliNpm, getNpmTarball, getAndExtractTarball } from 'ice-npm-utils'; import { ALI_NPM_REGISTRY } from '@iceworks/constant'; import ejsRenderDir from './ejsRenderDir'; import formatProject from './fommatProject'; import checkEmpty from './checkEmpty'; -export { - formatProject, - checkEmpty, -}; +export { formatProject, checkEmpty }; export interface IEjsOptions { targets?: string[]; miniappType?: 'runtime' | 'compile'; mpa?: boolean; -}; +} export async function downloadAndGenerateProject( projectDir: string, @@ -24,16 +19,16 @@ export async function downloadAndGenerateProject( version?: string, registry?: string, projectName?: string, - ejsOptions?: IEjsOptions, + ejsOptions?: IEjsOptions ): Promise { - registry = registry || await getNpmRegistry(npmName); + registry = registry || (await getNpmRegistry(npmName)); // 根据模板创建项目支持的参数 ejsOptions = { targets: ['web'], miniappType: 'runtime', mpa: false, - ...ejsOptions + ...ejsOptions, }; let tarballURL: string; @@ -67,7 +62,7 @@ export async function downloadAndGenerateProject( } catch (err) { console.warn('formatProject error', err.message); } -}; +} async function getNpmRegistry(npmName: string): Promise { if (process.env.REGISTRY) { diff --git a/packages/generate-project/tsconfig.json b/packages/generate-project/tsconfig.json index cfae8b78c..4c3742776 100644 --- a/packages/generate-project/tsconfig.json +++ b/packages/generate-project/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "baseUrl": "./", "rootDir": "src", - "outDir": "lib", + "outDir": "lib" }, "exclude": ["src/__tests__", "lib"] } diff --git a/packages/i18n/src/index.ts b/packages/i18n/src/index.ts index c66de766c..4612848a6 100644 --- a/packages/i18n/src/index.ts +++ b/packages/i18n/src/index.ts @@ -10,20 +10,20 @@ export default class I18n { currentTextMap: ITextMap = {}; - registry(locale: string, text: ITextMap){ + registry(locale: string, text: ITextMap) { this.localesTextMap[locale] = text; } - setLocal(locale: string){ + setLocal(locale: string) { this.currentTextMap = this.localesTextMap[locale] || this.localesTextMap[Object.keys(this.localesTextMap)[0]]; } - - format(contentKey: string, args?: object){ + + format(contentKey: string, args?: object) { const i18nformatString = this.currentTextMap[contentKey]; - if(!i18nformatString){ + if (!i18nformatString) { return ''; } - + return args ? _.template(i18nformatString)(args) : i18nformatString; } -} \ No newline at end of file +} diff --git a/packages/i18n/tsconfig.json b/packages/i18n/tsconfig.json index cfae8b78c..4c3742776 100644 --- a/packages/i18n/tsconfig.json +++ b/packages/i18n/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "baseUrl": "./", "rootDir": "src", - "outDir": "lib", + "outDir": "lib" }, "exclude": ["src/__tests__", "lib"] } diff --git a/packages/ice-npm-utils/src/__tests__/index.ts b/packages/ice-npm-utils/src/__tests__/index.ts index c1271537d..e054e5367 100644 --- a/packages/ice-npm-utils/src/__tests__/index.ts +++ b/packages/ice-npm-utils/src/__tests__/index.ts @@ -27,7 +27,6 @@ test('getNpmRegistry', () => { expect(getNpmRegistry('@alipay/ice-test')).toBe(ALI_NPM_REGISTRY); }); - test('getUnpkgHost custom host', () => { const custom = 'https://unpkg.example.com'; @@ -104,7 +103,6 @@ test('getNpmClient', () => { expect(getNpmClient('@alixxx/ice-test')).toBe(defaultData); }); - test('checkAliInternal', () => { return checkAliInternal().then((internal) => { console.log('checkAliInternal', internal); @@ -139,7 +137,10 @@ test('getAndExtractTarball', () => { test('getAndExtractTarballWithDir', () => { const tempDir = path.resolve(tmpdir(), 'babel_helper_function_name_tarball'); - return getAndExtractTarball(tempDir, `${defaultRegistry}/@babel/helper-function-name/download/@babel/helper-function-name-7.1.0.tgz`) + return getAndExtractTarball( + tempDir, + `${defaultRegistry}/@babel/helper-function-name/download/@babel/helper-function-name-7.1.0.tgz` + ) .then((files) => { rimraf.sync(tempDir); expect(files.length > 0).toBe(true); diff --git a/packages/ice-npm-utils/src/index.ts b/packages/ice-npm-utils/src/index.ts index 68a7c7164..139159f29 100644 --- a/packages/ice-npm-utils/src/index.ts +++ b/packages/ice-npm-utils/src/index.ts @@ -1,5 +1,5 @@ import * as fsExtra from 'fs-extra'; -import { ALI_NPM_REGISTRY, ALI_UNPKG_URL, ALI_CHECKNODE_URL } from '@iceworks/constant' +import { ALI_NPM_REGISTRY, ALI_UNPKG_URL, ALI_CHECKNODE_URL } from '@iceworks/constant'; import request = require('request-promise'); import semver = require('semver'); @@ -21,12 +21,7 @@ function getNpmTarball(npm: string, version?: string, registry?: string): Promis version = json['dist-tags'][version] || json['dist-tags'].latest; } - if ( - semver.valid(version) && - json.versions && - json.versions[version] && - json.versions[version].dist - ) { + if (semver.valid(version) && json.versions && json.versions[version] && json.versions[version].dist) { return json.versions[version].dist.tarball; } @@ -40,7 +35,7 @@ function getNpmTarball(npm: string, version?: string, registry?: string): Promis function getAndExtractTarball( destDir: string, tarball: string, - progressFunc = (state) => { }, + progressFunc = (state) => {}, formatFilename = (filename: string): string => { // 为了兼容 if (filename === '_package.json') { @@ -48,7 +43,7 @@ function getAndExtractTarball( } else { return filename.replace(/^_/, '.'); } - }, + } ): Promise { return new Promise((resolve, reject) => { const allFiles = []; @@ -86,12 +81,14 @@ function getAndExtractTarball( } allFiles.push(destPath); - allWriteStream.push(new Promise((streamResolve) => { - entry - .pipe(fs.createWriteStream(destPath)) - .on('finish', () => streamResolve()) - .on('close', () => streamResolve()); // resolve when file is empty in node v8 - })); + allWriteStream.push( + new Promise((streamResolve) => { + entry + .pipe(fs.createWriteStream(destPath)) + .on('finish', () => streamResolve()) + .on('close', () => streamResolve()); // resolve when file is empty in node v8 + }) + ); }) .on('end', () => { if (progressFunc) { @@ -225,11 +222,13 @@ function checkAliInternal(): Promise { url: ALI_CHECKNODE_URL, timeout: 3 * 1000, resolveWithFullResponse: true, - }).catch((err) => { - return false; - }).then((response) => { - return response.statusCode === 200 && /success/.test(response.body); - }); + }) + .catch((err) => { + return false; + }) + .then((response) => { + return response.statusCode === 200 && /success/.test(response.body); + }); } const packageJSONFilename = 'package.json'; @@ -238,7 +237,7 @@ async function readPackageJSON(projectPath: string) { const packagePath = path.join(projectPath, packageJSONFilename); const packagePathIsExist = await fsExtra.pathExists(packagePath); if (!packagePathIsExist) { - throw new Error('Project\'s package.json file not found in local environment'); + throw new Error("Project's package.json file not found in local environment"); } return await fsExtra.readJson(packagePath); } diff --git a/packages/ice-npm-utils/tsconfig.json b/packages/ice-npm-utils/tsconfig.json index cfae8b78c..4c3742776 100644 --- a/packages/ice-npm-utils/tsconfig.json +++ b/packages/ice-npm-utils/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "baseUrl": "./", "rootDir": "src", - "outDir": "lib", + "outDir": "lib" }, "exclude": ["src/__tests__", "lib"] } diff --git a/packages/ice-screenshot/bin/index.js b/packages/ice-screenshot/bin/index.js index 530a1c439..7685e1302 100755 --- a/packages/ice-screenshot/bin/index.js +++ b/packages/ice-screenshot/bin/index.js @@ -13,7 +13,7 @@ const createServer = require('../utils/createServer'); const getPuppeteer = require('../utils/getPuppeteer'); const packageJSON = require('../package.json'); -const sleep = ms => new Promise(resolve => setTimeout(resolve, ms)); +const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)); const cwd = process.cwd(); const DEFAULT_PORT = 8100; @@ -26,7 +26,10 @@ async function exec() { .version(packageJSON.version) .usage('-u https://www.example.com') .option('-u, --url ', 'The target url or path to local server') - .option('-l, --local [local]', 'Set up a local server in [local] directory and take screenshot, defaults set up in `./`') + .option( + '-l, --local [local]', + 'Set up a local server in [local] directory and take screenshot, defaults set up in `./`' + ) .option('-s, --selector ', 'Select a element through CSS selector') .option('-t, --timeout ', 'screenshot with a delay') .option('-o, --output ', 'Output path') @@ -36,7 +39,7 @@ async function exec() { const output = program.output || path.join(cwd, 'screenshot.png'); // compatiable `-s mountNode` to fix: https://github.com/alibaba/ice/issues/2641 - const formatedSelector = (selector && !/^(#|\.)/.test(selector) && selector !== 'body') ? `#${selector}` : selector; + const formatedSelector = selector && !/^(#|\.)/.test(selector) && selector !== 'body' ? `#${selector}` : selector; if (!url && !local) { console.log(chalk.red('The -u or -l is required! Using the following command:')); @@ -67,9 +70,7 @@ async function exec() { * @param {string} output output path */ async function screenshotWithLocalServer(serverPath, port, targetUrl, selector, output, timeout) { - targetUrl = targetUrl - ? `http://127.0.0.1:${port}${targetUrl}` - : `http://127.0.0.1:${port}/build/index.html`; // default screenshot target + targetUrl = targetUrl ? `http://127.0.0.1:${port}${targetUrl}` : `http://127.0.0.1:${port}/build/index.html`; // default screenshot target const server = createServer(serverPath, port); console.log(chalk.white(`Create local server with port ${port}`)); @@ -145,7 +146,11 @@ async function screenshot(url, selector, output, timeout) { if (err.message === 'Chromium revision is not downloaded. Run "npm install" or "yarn install"') { console.log(chalk.red('\n\nPuppeteer Install fail. \nPlease install puppeteer using the following commands:')); console.log(chalk.white('\n npm uninstall puppeteer -g')); - console.log(chalk.white('\n PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org npm i puppeteer -g --registry=https://registry.npm.taobao.org')); + console.log( + chalk.white( + '\n PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org npm i puppeteer -g --registry=https://registry.npm.taobao.org' + ) + ); console.log(chalk.white('\n screenshot -u http://www.example.com\n')); } else { console.error(err); diff --git a/packages/ice-screenshot/utils/createServer.js b/packages/ice-screenshot/utils/createServer.js index 67a80c2f7..30c297a7f 100644 --- a/packages/ice-screenshot/utils/createServer.js +++ b/packages/ice-screenshot/utils/createServer.js @@ -11,7 +11,9 @@ module.exports = function (cwd, port) { fs.exists(pathname, (exists) => { if (exists) { - switch (path.extname(pathname)) { // set HTTP HEAD + switch ( + path.extname(pathname) // set HTTP HEAD + ) { case '.html': res.writeHead(200, { 'Content-Type': 'text/html' }); break; diff --git a/packages/ice-screenshot/utils/getPuppeteer.js b/packages/ice-screenshot/utils/getPuppeteer.js index ad3ae1964..15c8db952 100644 --- a/packages/ice-screenshot/utils/getPuppeteer.js +++ b/packages/ice-screenshot/utils/getPuppeteer.js @@ -34,14 +34,22 @@ module.exports = async function getPuppeteer() { // default download host has been blocking, use cnpm mirror // https://github.com/cnpm/cnpmjs.org/issues/1246#issuecomment-341631992 spawn.sync('npm', ['config', 'set', 'puppeteer_download_host=https://storage.googleapis.com.cnpmjs.org']); - const result = spawn.sync('npm', ['install', 'puppeteer@1.x', '-g', '--registry', 'https://registry.npm.taobao.org'], { stdio: 'inherit' }); + const result = spawn.sync( + 'npm', + ['install', 'puppeteer@1.x', '-g', '--registry', 'https://registry.npm.taobao.org'], + { stdio: 'inherit' } + ); spawn.sync('npm', ['config', 'delete', 'puppeteer_download_host']); // get spawn error, exit with code 1 if (result.error) { console.log(chalk.red('\n\nInstall Error. \nPlease install puppeteer using the following commands:')); console.log(chalk.white('\n npm uninstall puppeteer -g')); - console.log(chalk.white('\n PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org npm i puppeteer -g --registry=https://registry.npm.taobao.org')); + console.log( + chalk.white( + '\n PUPPETEER_DOWNLOAD_HOST=https://storage.googleapis.com.cnpmjs.org npm i puppeteer -g --registry=https://registry.npm.taobao.org' + ) + ); console.log(chalk.white('\n screenshot -u http://www.example.com\n')); process.exit(1); } diff --git a/packages/material-service/package.json b/packages/material-service/package.json index 15290461e..2685b12bf 100644 --- a/packages/material-service/package.json +++ b/packages/material-service/package.json @@ -21,4 +21,4 @@ }, "license": "MIT", "gitHead": "fc5b35f95ab4cc24898845916acf598c2f34d576" -} \ No newline at end of file +} diff --git a/packages/material-service/src/i18n.ts b/packages/material-service/src/i18n.ts index 612c0c8ba..6cd9f9895 100644 --- a/packages/material-service/src/i18n.ts +++ b/packages/material-service/src/i18n.ts @@ -11,4 +11,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/packages/material-service/src/index.ts b/packages/material-service/src/index.ts index d12b2ec99..e72637f39 100644 --- a/packages/material-service/src/index.ts +++ b/packages/material-service/src/index.ts @@ -1,7 +1,11 @@ import * as kebabCase from 'lodash.kebabcase'; import axios from 'axios'; import { checkAliInternal } from 'ice-npm-utils'; -import { saveDataToSettingJson, getDataFromSettingJson, CONFIGURATION_KEY_MATERIAL_SOURCES } from '@iceworks/common-service'; +import { + saveDataToSettingJson, + getDataFromSettingJson, + CONFIGURATION_KEY_MATERIAL_SOURCES, +} from '@iceworks/common-service'; import { IMaterialSource, IMaterialData, IMaterialBase } from '@iceworks/material-utils'; import { getProjectType } from '@iceworks/project-service'; import i18n from './i18n'; @@ -16,24 +20,24 @@ const OFFICAL_MATERIAL_SOURCES = [ type: 'react', client: 'pc', source: ICE_MATERIAL_SOURCE, - description: i18n.format('package.materialService.index.webDescription') + description: i18n.format('package.materialService.index.webDescription'), }, { name: i18n.format('package.materialService.index.raxTitle'), type: 'rax', client: 'wireless', source: 'https://ice.alicdn.com/assets/materials/rax-materials.json', - description: i18n.format('package.materialService.index.raxDescription') - } -] + description: i18n.format('package.materialService.index.raxDescription'), + }, +]; const OFFICAL_MATERIAL_SOURCES_FOR_EXTERNAL = [ { name: i18n.format('package.materialService.index.vueTitle'), type: 'vue', source: 'https://ice.alicdn.com/assets/materials/vue-materials.json', - description: i18n.format('package.materialService.index.vueDescription') - } -] + description: i18n.format('package.materialService.index.vueDescription'), + }, +]; const dataCache: { [source: string]: IMaterialData } = {}; const isIceMaterial = (source: string) => { @@ -44,7 +48,7 @@ export const getSourcesByProjectType = async function () { const type = await getProjectType(); console.log('project type is:', type); return getSources(type); -} +}; export const getOfficalMaterialSources = () => OFFICAL_MATERIAL_SOURCES; export const getUserSources = () => getDataFromSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES); @@ -55,11 +59,11 @@ export const getUserSources = () => getDataFromSettingJson(CONFIGURATION_KEY_MAT */ export async function getSources(specifiedType?: string): Promise { if (specifiedType === 'unknown') { - // if the project type is unknown, set the default project type - specifiedType = 'react' + // if the project type is unknown, set the default project type + specifiedType = 'react'; } let officalsources: IMaterialSource[] = getOfficalMaterialSources(); - if (!await checkAliInternal()) { + if (!(await checkAliInternal())) { officalsources = officalsources.concat(OFFICAL_MATERIAL_SOURCES_FOR_EXTERNAL); } const userSources: IMaterialSource[] = getUserSources(); @@ -120,7 +124,7 @@ export const getData = async function (source: string): Promise { } return data; -} +}; export const addSource = async function (materialSource: IMaterialSource) { const { source, name } = materialSource; @@ -142,15 +146,19 @@ export const addSource = async function (materialSource: IMaterialSource) { materialSources.push({ ...materialSource, type }); saveDataToSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES, materialSources); return materialSources; -} +}; export const updateSource = async function (newMaterialSource: IMaterialSource, originSource: IMaterialSource) { const sources: IMaterialSource[] = await getSources(); - const existedSource = sources.some(({ source: defaultSource }) => defaultSource === newMaterialSource.source && defaultSource !== originSource.source); + const existedSource = sources.some( + ({ source: defaultSource }) => defaultSource === newMaterialSource.source && defaultSource !== originSource.source + ); if (existedSource) { throw Error(i18n.format('package.materialService.index.materialSourceExistError')); } - const existedName = sources.some(({ name: defaultName }) => defaultName === newMaterialSource.name && defaultName !== originSource.name); + const existedName = sources.some( + ({ name: defaultName }) => defaultName === newMaterialSource.name && defaultName !== originSource.name + ); if (existedName) { throw Error(i18n.format('package.materialService.index.materialNameExistError')); } @@ -161,23 +169,23 @@ export const updateSource = async function (newMaterialSource: IMaterialSource, } const materialSources = getDataFromSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES); - const newSources = materialSources.map(item => { + const newSources = materialSources.map((item) => { if (item.source === newMaterialSource.source) { return { ...item, ...newMaterialSource, - type + type, }; } return item; }); saveDataToSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES, newSources); return newSources; -} +}; export async function removeSource(source: string): Promise { const materialSources = getDataFromSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES); - const newSources = materialSources.filter(item => item.source !== source); + const newSources = materialSources.filter((item) => item.source !== source); saveDataToSettingJson(CONFIGURATION_KEY_MATERIAL_SOURCES, newSources); return newSources; } diff --git a/packages/material-service/src/locales/en-US.json b/packages/material-service/src/locales/en-US.json index 04acc85c9..82e66bac4 100644 --- a/packages/material-service/src/locales/en-US.json +++ b/packages/material-service/src/locales/en-US.json @@ -1,10 +1,10 @@ { - "package.materialService.index.webDescription": "Offical Materials Based On Fusion Component And ICE CLI", - "package.materialService.index.raxTitle": "Mobile Apps", - "package.materialService.index.raxDescription": "Offical Materials Based On Rax Components Rax CLI", - "package.materialService.index.vueTitle": "Vue materials", - "package.materialService.index.vueDescription": "Offical Materials Based On Element And Vue CLI ", - "package.materialService.index.materialSourceExistError": "Material source already exists.", - "package.materialService.index.materialNameExistError": "Material name s already exists.", - "package.materialService.index.materialDataError": "Incorrect material source " -} \ No newline at end of file + "package.materialService.index.webDescription": "Offical Materials Based On Fusion Component And ICE CLI", + "package.materialService.index.raxTitle": "Mobile Apps", + "package.materialService.index.raxDescription": "Offical Materials Based On Rax Components Rax CLI", + "package.materialService.index.vueTitle": "Vue materials", + "package.materialService.index.vueDescription": "Offical Materials Based On Element And Vue CLI ", + "package.materialService.index.materialSourceExistError": "Material source already exists.", + "package.materialService.index.materialNameExistError": "Material name s already exists.", + "package.materialService.index.materialDataError": "Incorrect material source " +} diff --git a/packages/material-service/src/locales/zh-CN.json b/packages/material-service/src/locales/zh-CN.json index c296b48e8..2fc43e8ce 100644 --- a/packages/material-service/src/locales/zh-CN.json +++ b/packages/material-service/src/locales/zh-CN.json @@ -1,10 +1,10 @@ { - "package.materialService.index.webDescription": "基于 Fusion 基础组件和 ICE 脚手架的官方物料", - "package.materialService.index.raxTitle": "无线跨端", - "package.materialService.index.raxDescription": "基于 Rax 组件和 Rax 脚手架的官方物料", - "package.materialService.index.vueTitle": "Vue 物料源", - "package.materialService.index.vueDescription": "基于 Element, Vue CLI 的 Vue 官方物料", - "package.materialService.index.materialSourceExistError": "物料源已存在。", - "package.materialService.index.materialNameExistError": "物料源名称已存在。", - "package.materialService.index.materialDataError": "物料源数据错误。" -} \ No newline at end of file + "package.materialService.index.webDescription": "基于 Fusion 基础组件和 ICE 脚手架的官方物料", + "package.materialService.index.raxTitle": "无线跨端", + "package.materialService.index.raxDescription": "基于 Rax 组件和 Rax 脚手架的官方物料", + "package.materialService.index.vueTitle": "Vue 物料源", + "package.materialService.index.vueDescription": "基于 Element, Vue CLI 的 Vue 官方物料", + "package.materialService.index.materialSourceExistError": "物料源已存在。", + "package.materialService.index.materialNameExistError": "物料源名称已存在。", + "package.materialService.index.materialDataError": "物料源数据错误。" +} diff --git a/packages/material-ui/build.json b/packages/material-ui/build.json index b77881bd6..90ae90fcf 100644 --- a/packages/material-ui/build.json +++ b/packages/material-ui/build.json @@ -5,11 +5,9 @@ [ "build-plugin-moment-locales", { - "locales": [ - "zh-cn" - ] + "locales": ["zh-cn"] } ], "./build.plugin.js" ] -} \ No newline at end of file +} diff --git a/packages/material-ui/build.plugin.js b/packages/material-ui/build.plugin.js index 6951244f1..4bcbc7878 100644 --- a/packages/material-ui/build.plugin.js +++ b/packages/material-ui/build.plugin.js @@ -1,8 +1,5 @@ module.exports = ({ onGetWebpackConfig }) => { onGetWebpackConfig((config) => { - config.node - .set('fs', 'empty') - .set('net', 'empty') - .set('tls', 'empty'); + config.node.set('fs', 'empty').set('net', 'empty').set('tls', 'empty'); }); }; diff --git a/packages/material-ui/src/components/base.module.scss b/packages/material-ui/src/components/base.module.scss index 5a9bec46d..fa30fbebf 100644 --- a/packages/material-ui/src/components/base.module.scss +++ b/packages/material-ui/src/components/base.module.scss @@ -1,4 +1,4 @@ -@import "~@alifd/next/lib/core/index.scss"; +@import '~@alifd/next/lib/core/index.scss'; .container { transition: transform 0.3s ease; diff --git a/packages/material-ui/src/components/base.tsx b/packages/material-ui/src/components/base.tsx index 0cdf69f0b..00e2e1119 100644 --- a/packages/material-ui/src/components/base.tsx +++ b/packages/material-ui/src/components/base.tsx @@ -4,45 +4,34 @@ import classnames from 'classnames'; import * as styles from './base.module.scss'; export const MaterialBase: React.FC<{ - dataSource: IMaterialBase, - onClick?: (dataSource: IMaterialBase) => void, - selected?: boolean, + dataSource: IMaterialBase; + onClick?: (dataSource: IMaterialBase) => void; + selected?: boolean; }> = ({ dataSource, onClick, selected }) => { function handleClick() { onClick && onClick(dataSource); } return ( -
+
{dataSource.name}

{dataSource.title || dataSource.name}

diff --git a/packages/material-ui/src/components/block.module.scss b/packages/material-ui/src/components/block.module.scss index 96771d489..a75727718 100644 --- a/packages/material-ui/src/components/block.module.scss +++ b/packages/material-ui/src/components/block.module.scss @@ -1,4 +1,4 @@ -@import "~@alifd/next/lib/core/index.scss"; +@import '~@alifd/next/lib/core/index.scss'; .container { transition: transform 0.3s ease; diff --git a/packages/material-ui/src/components/block.tsx b/packages/material-ui/src/components/block.tsx index 08bc5e95a..bcfb034a5 100644 --- a/packages/material-ui/src/components/block.tsx +++ b/packages/material-ui/src/components/block.tsx @@ -5,54 +5,45 @@ import { Icon } from '@alifd/next'; import * as styles from './block.module.scss'; export const MaterialBlock: React.FC<{ - dataSource: IMaterialBlock, - onClick?: (dataSource: IMaterialBlock) => void, - selected?: boolean, + dataSource: IMaterialBlock; + onClick?: (dataSource: IMaterialBlock) => void; + selected?: boolean; }> = ({ dataSource, onClick, selected }) => { function handleClick() { onClick && onClick(dataSource); } return ( -
- {selected && } +
+ {selected && ( + + )}
{dataSource.isNewly ?
NEW
: null} {dataSource.title}
{dataSource.title}
diff --git a/packages/material-ui/src/components/component.module.scss b/packages/material-ui/src/components/component.module.scss index d78ef512b..285030e02 100644 --- a/packages/material-ui/src/components/component.module.scss +++ b/packages/material-ui/src/components/component.module.scss @@ -1,4 +1,4 @@ -@import "~@alifd/next/lib/core/index.scss"; +@import '~@alifd/next/lib/core/index.scss'; .container { position: relative; diff --git a/packages/material-ui/src/components/component.tsx b/packages/material-ui/src/components/component.tsx index fa364ce19..d049e83ce 100644 --- a/packages/material-ui/src/components/component.tsx +++ b/packages/material-ui/src/components/component.tsx @@ -4,45 +4,34 @@ import classnames from 'classnames'; import * as styles from './component.module.scss'; export const MaterialComponent: React.FC<{ - dataSource: IMaterialComponent, - onClick?: (dataSource: IMaterialComponent) => void, - selected?: boolean, + dataSource: IMaterialComponent; + onClick?: (dataSource: IMaterialComponent) => void; + selected?: boolean; }> = ({ dataSource, onClick, selected }) => { function handleClick() { onClick && onClick(dataSource); } return ( -
+
{dataSource.name}

{dataSource.description || dataSource.name}

diff --git a/packages/material-ui/src/components/scaffold.module.scss b/packages/material-ui/src/components/scaffold.module.scss index 1f0f261e7..7f09e8e78 100644 --- a/packages/material-ui/src/components/scaffold.module.scss +++ b/packages/material-ui/src/components/scaffold.module.scss @@ -1,4 +1,4 @@ -@import "~@alifd/next/lib/core/index.scss"; +@import '~@alifd/next/lib/core/index.scss'; .scaffold { position: relative; diff --git a/packages/material-ui/src/components/scaffold.tsx b/packages/material-ui/src/components/scaffold.tsx index e6a39aa1c..b4fb869f4 100644 --- a/packages/material-ui/src/components/scaffold.tsx +++ b/packages/material-ui/src/components/scaffold.tsx @@ -4,13 +4,12 @@ import { IMaterialScaffold, PLACEHOLDER_IMG } from '@iceworks/material-utils'; import * as styles from './scaffold.module.scss'; export const MaterialScaffold: React.FC<{ - dataSource: IMaterialScaffold, - onDownload?: (dataSource: IMaterialScaffold) => void, - selected?: boolean, - hiddenDownloadButton?: boolean, - onClick?: any, + dataSource: IMaterialScaffold; + onDownload?: (dataSource: IMaterialScaffold) => void; + selected?: boolean; + hiddenDownloadButton?: boolean; + onClick?: any; }> = ({ dataSource, onDownload, selected, hiddenDownloadButton, onClick }) => { - function handleDownload() { onDownload && onDownload(dataSource); } @@ -19,61 +18,48 @@ export const MaterialScaffold: React.FC<{
- {dataSource.isNewlyCreated ? ( -
NEW
- ) : null} + {dataSource.isNewlyCreated ?
NEW
: null} {selected ? ( -
+
+ +
) : null} - {dataSource.screenshots && dataSource.screenshots.length - ? + {dataSource.screenshots && dataSource.screenshots.length ? ( {dataSource.title} - : ( - {dataSource.title} - ) - } + ) : ( + {dataSource.title} + )}
{dataSource.title}
-
- {dataSource.description || '-'} -
+
{dataSource.description || '-'}
- + 预览 - + 源码 - { - hiddenDownloadButton ? null : Download - } + {hiddenDownloadButton ? null : ( + + Download + + )}
); }; - diff --git a/packages/material-ui/src/components/type.module.scss b/packages/material-ui/src/components/type.module.scss index 518fa5beb..26d7c9f5f 100644 --- a/packages/material-ui/src/components/type.module.scss +++ b/packages/material-ui/src/components/type.module.scss @@ -1,4 +1,4 @@ -@import "~@alifd/next/lib/core/index.scss"; +@import '~@alifd/next/lib/core/index.scss'; .spin { width: 100%; diff --git a/packages/material-ui/src/components/type.tsx b/packages/material-ui/src/components/type.tsx index 7ac7ac13c..f5edb0b8d 100644 --- a/packages/material-ui/src/components/type.tsx +++ b/packages/material-ui/src/components/type.tsx @@ -1,7 +1,14 @@ import * as React from 'react'; import { Search, ResponsiveGrid, Radio, Loading } from '@alifd/next'; import LazyLoad from 'react-lazyload'; -import { IMaterialTypeDatum, IMaterialScaffold, IMaterialBlock, IMaterialComponent, IMaterialBase, CUSTOM_CATEGORY } from '@iceworks/material-utils'; +import { + IMaterialTypeDatum, + IMaterialScaffold, + IMaterialBlock, + IMaterialComponent, + IMaterialBase, + CUSTOM_CATEGORY, +} from '@iceworks/material-utils'; import { MaterialScaffold } from './scaffold'; import { MaterialBlock } from './block'; import { MaterialComponent } from './component'; @@ -47,10 +54,7 @@ const Content: React.FC = ({ return { ...item, list: list.filter(({ name, title }) => { - if ( - name.indexOf(keyword) > -1 || - title.indexOf(keyword) > -1 - ) { + if (name.indexOf(keyword) > -1 || title.indexOf(keyword) > -1) { return true; } @@ -65,88 +69,82 @@ const Content: React.FC = ({ return (
- +
- { - data.map(({ name, list }, cIndex) => { - return ( -
- { name !== CUSTOM_CATEGORY ?
- {name} -
: null } - - { - list.map((item, index) => { - const { source } = item; - let $ele; - if (typeId === 'scaffolds') { + {data.map(({ name, list }, cIndex) => { + return ( +
+ {name !== CUSTOM_CATEGORY ?
{name}
: null} + + {list.map((item, index) => { + const { source } = item; + let $ele; + if (typeId === 'scaffolds') { + // @ts-ignore + $ele = ; + } else if (typeId === 'blocks') { + const $block = ( + ); - } else if (typeId === 'blocks') { - const $block = selectedBlock.name === item.name) : - false - } - onClick={onBlockClick} - />; - if (cIndex === 0 && index > 3 && scrollId) { - $ele = ( - {$block} - ); - } else { - $ele = $block; + dataSource={item} + selected={ + selectedBlocks + ? !!selectedBlocks.find((selectedBlock) => selectedBlock.name === item.name) + : false } - } else if (typeId === 'components') { - $ele = ( selectedComponent.name === item.name) : - false - } - onClick={onComponentClick} - />); - } else if (typeId === 'bases') { - $ele = ( selectedBase.name === item.name) : - false - } - onClick={onBaseClick} - />); - } - return ( - - {$ele} - + onClick={onBlockClick} + /> + ); + if (cIndex === 0 && index > 3 && scrollId) { + $ele = ( + + {$block} + ); - }) + } else { + $ele = $block; + } + } else if (typeId === 'components') { + $ele = ( + selectedComponent.name === item.name) + : false + } + onClick={onComponentClick} + /> + ); + } else if (typeId === 'bases') { + $ele = ( + selectedBase.name === item.name) + : false + } + onClick={onBaseClick} + /> + ); } - -
- ); - }) - } + return ( + + {$ele} + + ); + })} +
+
+ ); + })}
- { - !categoryData.length ?
- Empty -
: null - } + {!categoryData.length ?
Empty
: null}
); @@ -178,42 +176,34 @@ export const MaterialType: React.FC<{ setTypeId(value); } - const content = data.length > 0 ? data.map((item) => { - const { name, id } = item; - return typeId === id ? : null; - }) :
- 没有数据 -
; + const content = + data.length > 0 ? ( + data.map((item) => { + const { name, id } = item; + return typeId === id ? ( + + ) : null; + }) + ) : ( +
没有数据
+ ); return ( - { data.length > 1 &&
- - { - data.map(({ name, id }) => { + {data.length > 1 && ( +
+ + {data.map(({ name, id }) => { return ( - { name } + {name} ); - }) - } - -
} - { - isLoadingData ? -
- 加载中…… -
: - content - } + })} +
+
+ )} + {isLoadingData ?
加载中……
: content}
); }; diff --git a/packages/material-ui/src/components/view.tsx b/packages/material-ui/src/components/view.tsx index a4982d586..2996c5328 100644 --- a/packages/material-ui/src/components/view.tsx +++ b/packages/material-ui/src/components/view.tsx @@ -1,6 +1,13 @@ import * as React from 'react'; import { Tab } from '@alifd/next'; -import { IMaterialSource, IMaterialTypeDatum, IMaterialScaffold, IMaterialBlock, IMaterialComponent, IMaterialBase } from '@iceworks/material-utils'; +import { + IMaterialSource, + IMaterialTypeDatum, + IMaterialScaffold, + IMaterialBlock, + IMaterialComponent, + IMaterialBase, +} from '@iceworks/material-utils'; import { MaterialType } from './type'; import * as styles from './view.module.scss'; @@ -13,7 +20,7 @@ export const MaterialView: React.FC<{ sources: IMaterialSource[]; currentSource: string; data: IMaterialTypeDatum[]; - onChangeSource(source: string): void, + onChangeSource(source: string): void; isLoadingSources?: boolean; isLoadingData?: boolean; extra?: any; @@ -22,53 +29,36 @@ export const MaterialView: React.FC<{ selectedBlocks?: IMaterialBlock[]; selectedComponents?: IMaterialComponent[]; selectedBases?: IMaterialBase[]; - onBaseClick?: (dataSource: IMaterialBase) => void, - onComponentClick?: (dataSource: IMaterialComponent) => void, - onBlockClick?: (dataSource: IMaterialBlock) => void, - onScaffoldClick?: (dataSource: IMaterialScaffold) => void, -}> = ({ - sources, - currentSource, - onChangeSource, - extra, - isLoadingSources, - ...others -}) => { + onBaseClick?: (dataSource: IMaterialBase) => void; + onComponentClick?: (dataSource: IMaterialComponent) => void; + onBlockClick?: (dataSource: IMaterialBlock) => void; + onScaffoldClick?: (dataSource: IMaterialScaffold) => void; +}> = ({ sources, currentSource, onChangeSource, extra, isLoadingSources, ...others }) => { const sourceActiveKey = sources.length ? currentSource : EMPTY_TAB_KEY; - const tabItems = sources.length > 0 ? - sources.map((sourceData, index) => { - const { name, source } = sourceData; - return ( - - {name} -
- } key={source}> - { - (currentSource === source ? : null) - } - - ); - }) : - - 没有找到物料源数据,请配置后再试。 - ; + const tabItems = + sources.length > 0 ? ( + sources.map((sourceData, index) => { + const { name, source } = sourceData; + return ( + {name}
} key={source}> + {currentSource === source ? : null} + + ); + }) + ) : ( + + 没有找到物料源数据,请配置后再试。 + + ); return ( - { - isLoadingSources ? - : - tabItems - } + {isLoadingSources ? : tabItems} ); }; diff --git a/packages/material-ui/src/index.tsx b/packages/material-ui/src/index.tsx index 7cd1ee580..f45a0b4c1 100644 --- a/packages/material-ui/src/index.tsx +++ b/packages/material-ui/src/index.tsx @@ -1,9 +1,16 @@ import * as React from 'react'; import { Icon, Loading } from '@alifd/next'; -import { IMaterialData, IMaterialSource, IMaterialBlock, IMaterialComponent, IMaterialBase, convertMaterialData } from '@iceworks/material-utils'; +import { + IMaterialData, + IMaterialSource, + IMaterialBlock, + IMaterialComponent, + IMaterialBase, + convertMaterialData, +} from '@iceworks/material-utils'; import { MaterialView } from './components/view'; -const Index : React.FC<{ +const Index: React.FC<{ getSources: () => Promise; getData: (source: string) => Promise; disableLazyLoad?: boolean; @@ -25,7 +32,7 @@ const Index : React.FC<{ async function refreshSources() { setIsLoadingSources(true); - const sources = await getSources() || []; + const sources = (await getSources()) || []; setIsLoadingSources(false); resetSources(sources); } @@ -40,7 +47,7 @@ const Index : React.FC<{ function handleChangeSource(source: string) { resetCurrentSource(source); - }; + } async function resetCurrentSource(currentSource: string) { setCurrentSource(currentSource); @@ -50,7 +57,9 @@ const Index : React.FC<{ async function refreshMaterialData(source: string) { setIsLoadingData(true); const materialData: IMaterialData = await getData(source); - const data = convertMaterialData(materialData).filter(({ id }) => !dataBlackList.includes(id) && (dataWhiteList.length > 0 ? dataWhiteList.includes(id) : true) ); + const data = convertMaterialData(materialData).filter( + ({ id }) => !dataBlackList.includes(id) && (dataWhiteList.length > 0 ? dataWhiteList.includes(id) : true) + ); setIsLoadingData(false); setData(data); } @@ -60,7 +69,7 @@ const Index : React.FC<{ }, []); return ( - + - {onSettingsClick && - - } - +
+ {onSettingsClick && } +
} {...others} diff --git a/packages/material-utils/package.json b/packages/material-utils/package.json index ebc31c29b..401f0a1f0 100644 --- a/packages/material-utils/package.json +++ b/packages/material-utils/package.json @@ -14,4 +14,4 @@ "access": "public" }, "gitHead": "fc5b35f95ab4cc24898845916acf598c2f34d576" -} \ No newline at end of file +} diff --git a/packages/material-utils/src/methods.ts b/packages/material-utils/src/methods.ts index fcefca03f..1723e1c8c 100644 --- a/packages/material-utils/src/methods.ts +++ b/packages/material-utils/src/methods.ts @@ -1,5 +1,12 @@ import packageJSON from 'package-json'; -import { IMaterialData, IMaterialTypeDatum, IMaterialBase, IMaterialItem, IMaterialCategoryDatum, IMaterialNpmSource } from './types'; +import { + IMaterialData, + IMaterialTypeDatum, + IMaterialBase, + IMaterialItem, + IMaterialCategoryDatum, + IMaterialNpmSource, +} from './types'; import { CUSTOM_CATEGORY } from './constant'; export function convertMaterialData(materialData: IMaterialData): IMaterialTypeDatum[] { @@ -72,7 +79,10 @@ export function getMaterialCategoryData(components: IMaterialItem[]): IMaterialC return materialCategoryData; } -export const getTarballURLByMaterielSource = async function (source: IMaterialNpmSource, iceVersion?: string): Promise { +export const getTarballURLByMaterielSource = async function ( + source: IMaterialNpmSource, + iceVersion?: string +): Promise { let { version } = source; if (iceVersion === '1.x') { @@ -91,4 +101,4 @@ export const getTarballURLByMaterielSource = async function (source: IMaterialNp }); return packageData.dist.tarball; -} +}; diff --git a/packages/page-service/src/i18n.ts b/packages/page-service/src/i18n.ts index 1c87e8efe..cf9fade77 100644 --- a/packages/page-service/src/i18n.ts +++ b/packages/page-service/src/i18n.ts @@ -12,4 +12,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/packages/page-service/src/index.ts b/packages/page-service/src/index.ts index 12e99e392..cd0fed920 100644 --- a/packages/page-service/src/index.ts +++ b/packages/page-service/src/index.ts @@ -15,7 +15,13 @@ import i18n from './i18n'; * @param pageName {string} page name * @param blocks {array} blocks information */ -export const generate = async function ({ pageName: name, blocks = [] }: { pageName: string; blocks: IMaterialBlock[] }) { +export const generate = async function ({ + pageName: name, + blocks = [], +}: { + pageName: string; + blocks: IMaterialBlock[]; +}) { const pageName = upperCamelCase(name); const pagePath = path.join(pagesPath, pageName); @@ -24,7 +30,7 @@ export const generate = async function ({ pageName: name, blocks = [] }: { pageN const isPagePathExists = await fsExtra.pathExists(pagePath); if (!isPagePathExists) { - throw new Error(i18n.format('package.pageService.index.pagePathExistError', {name})); + throw new Error(i18n.format('package.pageService.index.pagePathExistError', { name })); } try { @@ -62,7 +68,7 @@ export const generate = async function ({ pageName: name, blocks = [] }: { pageN } return pageName; -} +}; /** * Remove page files @@ -71,8 +77,8 @@ export const generate = async function ({ pageName: name, blocks = [] }: { pageN */ export const remove = async function (name: string) { await fsExtra.remove(path.join(pagesPath, name)); -} +}; export const addBlocks = async function (blocks: IMaterialBlock[], pageName: string) { return await bulkGenerate(blocks, path.join(pagesPath, pageName, COMPONENT_DIR_NAME)); -} +}; diff --git a/packages/page-service/src/locales/en-US.json b/packages/page-service/src/locales/en-US.json index dd0658b2e..7e417ab58 100644 --- a/packages/page-service/src/locales/en-US.json +++ b/packages/page-service/src/locales/en-US.json @@ -1,3 +1,3 @@ { - "package.pageService.index.pagePathExistError": "Page folder「<%= name %> exists,please enter a new page name。" -} \ No newline at end of file + "package.pageService.index.pagePathExistError": "Page folder「<%= name %> exists,please enter a new page name。" +} diff --git a/packages/page-service/src/locales/zh-CN.json b/packages/page-service/src/locales/zh-CN.json index 58679e9af..6d43339c0 100644 --- a/packages/page-service/src/locales/zh-CN.json +++ b/packages/page-service/src/locales/zh-CN.json @@ -1,3 +1,3 @@ { - "package.pageService.index.pagePathExistError": "页面文件夹「<%= name %>」已存在,无法覆盖,请输入新的页面名称。" + "package.pageService.index.pagePathExistError": "页面文件夹「<%= name %>」已存在,无法覆盖,请输入新的页面名称。" } diff --git a/packages/page-service/src/templates/template.react.ts b/packages/page-service/src/templates/template.react.ts index c77aa4bfa..a82ebdb83 100644 --- a/packages/page-service/src/templates/template.react.ts +++ b/packages/page-service/src/templates/template.react.ts @@ -13,5 +13,5 @@ export default function () {
); } -` -export default templateStr; \ No newline at end of file +`; +export default templateStr; diff --git a/packages/page-service/src/templates/template.vue.ts b/packages/page-service/src/templates/template.vue.ts index e0b9db83b..83d9e15b2 100644 --- a/packages/page-service/src/templates/template.vue.ts +++ b/packages/page-service/src/templates/template.vue.ts @@ -20,6 +20,6 @@ components: { } } -` +`; export default template; diff --git a/packages/project-service/src/constant.ts b/packages/project-service/src/constant.ts index 340e98bd7..700803356 100644 --- a/packages/project-service/src/constant.ts +++ b/packages/project-service/src/constant.ts @@ -1,6 +1,6 @@ import * as vscode from 'vscode'; import * as path from 'path'; -import { ALI_CREATETASK_URL, ALI_TASKRESULT_URL,ALI_APPLYREPO_URL } from '@iceworks/constant' +import { ALI_CREATETASK_URL, ALI_TASKRESULT_URL, ALI_APPLYREPO_URL } from '@iceworks/constant'; const { workspace } = vscode; @@ -14,7 +14,7 @@ export const jsxFileExtnames = ['.jsx', '.tsx', '.js']; export const packageJSONPath = path.join(projectPath, packageJSONFilename); export const generatorCreatetaskUrl = ALI_CREATETASK_URL; -export const generatorTaskResultUrl = ALI_TASKRESULT_URL +export const generatorTaskResultUrl = ALI_TASKRESULT_URL; export const applyRepositoryUrl = ALI_APPLYREPO_URL; /** diff --git a/packages/project-service/src/i18n.ts b/packages/project-service/src/i18n.ts index 2bbee6203..cf9fade77 100644 --- a/packages/project-service/src/i18n.ts +++ b/packages/project-service/src/i18n.ts @@ -3,7 +3,6 @@ import I18nService from '@iceworks/i18n'; import * as zhCNTextMap from './locales/zh-CN.json'; import * as enUSTextMap from './locales/en-US.json'; - // 注册语言表 const i18n = new I18nService(); @@ -13,4 +12,4 @@ i18n.registry('en', enUSTextMap); // 设置使用的语言 i18n.setLocal(vscode.env.language); -export default i18n; \ No newline at end of file +export default i18n; diff --git a/packages/project-service/src/index.ts b/packages/project-service/src/index.ts index 87f98d3ad..c46dd00c6 100644 --- a/packages/project-service/src/index.ts +++ b/packages/project-service/src/index.ts @@ -13,7 +13,7 @@ import { applyRepositoryUrl, GeneratorTaskStatus, projectPath, - jsxFileExtnames + jsxFileExtnames, } from './constant'; import i18n from './i18n'; import { IDEFProjectField, IProjectField } from './types'; @@ -27,7 +27,9 @@ export async function getProjectLanguageType() { let isTypescript = false; if (framework === 'icejs') { // icejs 都有 tsconfig,因此需要通过 src/app.js[x] 进一步区分 - const hasAppJs = fsExtra.existsSync(path.join(projectPath, 'src/app.js')) || fsExtra.existsSync(path.join(projectPath, 'src/app.jsx')); + const hasAppJs = + fsExtra.existsSync(path.join(projectPath, 'src/app.js')) || + fsExtra.existsSync(path.join(projectPath, 'src/app.jsx')); isTypescript = hasTsconfig && !hasAppJs; } else { isTypescript = hasTsconfig; @@ -122,11 +124,10 @@ export async function openLocalProjectFolder(projectDir: string, ...args): Promi const webviewPanel = args[1]; const isProjectDirExists = await checkPathExists(projectDir); if (!isProjectDirExists) { - throw new Error(i18n.format('package.projectService.index.noLocalPath', { projectDir })) + throw new Error(i18n.format('package.projectService.index.noLocalPath', { projectDir })); } const newWindow = !!vscode.workspace.rootPath; - if (newWindow) - webviewPanel.dispose(); + if (newWindow) webviewPanel.dispose(); vscode.commands.executeCommand('vscode.openFolder', vscode.Uri.file(projectDir), newWindow); } @@ -135,11 +136,11 @@ export async function createDEFProjectAndCloneRepository(DEFProjectField: IDEFPr const projectDir = path.join(projectPath, projectName); const isProjectDirExists = await checkPathExists(projectDir); if (isProjectDirExists) { - throw new Error(i18n.format('package.projectService.index.folderExists', { projectDir })) + throw new Error(i18n.format('package.projectService.index.folderExists', { projectDir })); } await createDEFProject(DEFProjectField); await cloneRepositoryToLocal(projectDir, group, project); - return projectDir + return projectDir; } export async function createDEFProject(DEFProjectField: IDEFProjectField): Promise { @@ -148,16 +149,16 @@ export async function createDEFProject(DEFProjectField: IDEFProjectField): Promi const { data } = response.data; const taskId = data.task_id; await getGeneratorTaskStatus(taskId, clientToken); - await applyRepository(DEFProjectField) + await applyRepository(DEFProjectField); } async function cloneRepositoryToLocal(projectDir, group, project): Promise { const isProjectDirExists = await checkPathExists(projectDir); if (isProjectDirExists) { - throw new Error(i18n.format('package.projectService.index.folderExists', { projectDir })) + throw new Error(i18n.format('package.projectService.index.folderExists', { projectDir })); } const repoPath = `${ALI_GITLAB_URL}:${group}/${project}.git`; - await simpleGit().clone(repoPath, projectDir) + await simpleGit().clone(repoPath, projectDir); } async function generatorCreatetask(field: IDEFProjectField) { @@ -174,23 +175,23 @@ async function generatorCreatetask(field: IDEFProjectField) { project, description, trunk: 'master', - 'generator_id': generatorId, - 'schema_data': { + generator_id: generatorId, + schema_data: { npmName: npm, - ...ejsOptions + ...ejsOptions, }, - 'gitlab_info': { + gitlab_info: { id: empId, token: gitlabToken, name: account, - email: `${account}@${ALI_EMAIL}` + email: `${account}@${ALI_EMAIL}`, }, - 'emp_id': empId, - 'client_token': clientToken + emp_id: empId, + client_token: clientToken, }); console.log('generatorCreatetaskResponse', response); if (response.data.error) { - throw new Error(response.data.error) + throw new Error(response.data.error); } return response; } @@ -201,29 +202,32 @@ function getGeneratorTaskStatus(taskId: number, clientToken: string): Promise」exists,please enter a new application name。", - "package.projectService.index.noLocalPath": "Path:「<%= projectDir %>」does not exist", - "package.projectService.index.DEFOutTime": "Fail to create DEF application, task ID: <%= taskId %>." -} \ No newline at end of file + "package.projectService.index.packageNotFound": "Project's package.json file not found in local environment", + "package.projectService.index.folderExists": "Floder「<%= projectDir %>」exists,please enter a new application name。", + "package.projectService.index.noLocalPath": "Path:「<%= projectDir %>」does not exist", + "package.projectService.index.DEFOutTime": "Fail to create DEF application, task ID: <%= taskId %>." +} diff --git a/packages/project-service/src/locales/zh-CN.json b/packages/project-service/src/locales/zh-CN.json index a96e8d4d1..e0148fe73 100644 --- a/packages/project-service/src/locales/zh-CN.json +++ b/packages/project-service/src/locales/zh-CN.json @@ -1,6 +1,6 @@ { - "package.projectService.index.packageNotFound": "本地目录中没有找到 package.json 文件", - "package.projectService.index.folderExists": "文件夹「<%= projectDir %>」已存在,请重新输入应用名称。", - "package.projectService.index.noLocalPath": "本地不存在「<%= projectDir %>」目录!", - "package.projectService.index.DEFOutTime": "创建 DEF 应用失败,任务 ID 是: <%= taskId %>." -} \ No newline at end of file + "package.projectService.index.packageNotFound": "本地目录中没有找到 package.json 文件", + "package.projectService.index.folderExists": "文件夹「<%= projectDir %>」已存在,请重新输入应用名称。", + "package.projectService.index.noLocalPath": "本地不存在「<%= projectDir %>」目录!", + "package.projectService.index.DEFOutTime": "创建 DEF 应用失败,任务 ID 是: <%= taskId %>." +} diff --git a/packages/project-service/tsconfig.json b/packages/project-service/tsconfig.json index acfeec213..b138defa6 100644 --- a/packages/project-service/tsconfig.json +++ b/packages/project-service/tsconfig.json @@ -6,8 +6,5 @@ "outDir": "lib", "resolveJsonModule": true }, - "exclude": [ - "src/__tests__", - "lib" - ] -} \ No newline at end of file + "exclude": ["src/__tests__", "lib"] +} diff --git a/packages/transform-ts-to-js/src/babelDynamicImportPlugin.ts b/packages/transform-ts-to-js/src/babelDynamicImportPlugin.ts index 2ca905781..b29bc06a2 100644 --- a/packages/transform-ts-to-js/src/babelDynamicImportPlugin.ts +++ b/packages/transform-ts-to-js/src/babelDynamicImportPlugin.ts @@ -5,5 +5,5 @@ export default function () { name: 'syntax-dynamic-import', inherits: DynamicImport, visitor: {}, - } -} \ No newline at end of file + }; +} diff --git a/packages/transform-ts-to-js/src/index.ts b/packages/transform-ts-to-js/src/index.ts index 333d63165..db0782cd1 100644 --- a/packages/transform-ts-to-js/src/index.ts +++ b/packages/transform-ts-to-js/src/index.ts @@ -18,17 +18,14 @@ function sylvanas(files: string[], option: IOption) { const fileList: IFileEntity[] = files.map( (file): IFileEntity => { const filePath = path.resolve(cwd, file); - const targetFilePath = path.resolve( - outDir, - file.replace(/\.ts$/, '.js').replace(/\.tsx$/, '.jsx'), - ); + const targetFilePath = path.resolve(outDir, file.replace(/\.ts$/, '.js').replace(/\.tsx$/, '.jsx')); return { sourceFilePath: filePath, targetFilePath, data: fs.readFileSync(filePath, 'utf8'), }; - }, + } ); const parsedFileList = parse(fileList, option); @@ -55,7 +52,7 @@ sylvanas.parseText = function parseText(text: string, option: IBabelOption = {}) data: text, }, ], - option, + option ); return result[0].data; diff --git a/packages/transform-ts-to-js/src/ts2js.ts b/packages/transform-ts-to-js/src/ts2js.ts index 4da75ce88..a9be4b3db 100644 --- a/packages/transform-ts-to-js/src/ts2js.ts +++ b/packages/transform-ts-to-js/src/ts2js.ts @@ -29,7 +29,7 @@ function ts2js(fileList: IFileEntity[], option: IBabelOption = {}): IFileEntity[ ...entity, data: code, }; - }, + } ); return jsFiles; diff --git a/packages/transform-ts-to-js/tsconfig.json b/packages/transform-ts-to-js/tsconfig.json index ca8425a4e..cfd32659b 100644 --- a/packages/transform-ts-to-js/tsconfig.json +++ b/packages/transform-ts-to-js/tsconfig.json @@ -4,9 +4,7 @@ "outDir": "lib", "module": "CommonJS", "target": "esnext", - "lib": [ - "esnext" - ], + "lib": ["esnext"], "sourceMap": false, "baseUrl": ".", "allowSyntheticDefaultImports": true, @@ -18,12 +16,8 @@ "experimentalDecorators": true, "rootDir": "src", "paths": { - "@/*": [ - "./src/*" - ] + "@/*": ["./src/*"] } }, - "include": [ - "src/**/*" - ] -} \ No newline at end of file + "include": ["src/**/*"] +} diff --git a/packages/vscode-webview/src/vscode.ts b/packages/vscode-webview/src/vscode.ts index ce4137fb2..f0d632f7b 100644 --- a/packages/vscode-webview/src/vscode.ts +++ b/packages/vscode-webview/src/vscode.ts @@ -27,7 +27,11 @@ export function active(context: vscode.ExtensionContext, config?: IConfig) { connectService(webviewPanel, context, services); } -export function connectService(webviewPanel: vscode.WebviewPanel, context: vscode.ExtensionContext, { services, logger }) { +export function connectService( + webviewPanel: vscode.WebviewPanel, + context: vscode.ExtensionContext, + { services, logger } +) { const { subscriptions } = context; const { webview } = webviewPanel; webview.onDidReceiveMessage( diff --git a/packages/vscode-webview/src/webview.ts b/packages/vscode-webview/src/webview.ts index 0231c59a7..8d9aef4bf 100644 --- a/packages/vscode-webview/src/webview.ts +++ b/packages/vscode-webview/src/webview.ts @@ -2,7 +2,7 @@ // eslint-disable-next-line const vscode = typeof acquireVsCodeApi === 'function' ? acquireVsCodeApi() : null; -export const callService = function(service: string, method: string, ...args) { +export const callService = function (service: string, method: string, ...args) { return new Promise((resolve, reject) => { const eventId = setTimeout(() => {}); console.log('webview call vscode service:', service, method, eventId, args); @@ -24,4 +24,4 @@ export const callService = function(service: string, method: string, ...args) { args, }); }); -} +}; diff --git a/scripts/build.ts b/scripts/build.ts index f7b5053b7..dc5b52db5 100644 --- a/scripts/build.ts +++ b/scripts/build.ts @@ -9,34 +9,38 @@ import { run } from './fn/shell'; await run('npx tsc --build ./tsconfig.json'); await run('lerna run build'); - const packagesPath = path.join(__dirname, '../packages');; + const packagesPath = path.join(__dirname, '../packages'); const packageFiles = await fs.readdir(packagesPath); - return await Promise.all(packageFiles.map(async function(packageFile) { - const cwd = path.join(packagesPath, packageFile); - const cwdStat = await fs.stat(cwd); - if (cwdStat.isDirectory()) { - const packageJSON: any = await fs.readJson(path.join(cwd, 'package.json')); - const isUIPackage = packageJSON && packageJSON.devDependencies && packageJSON.devDependencies['@alifd/next']; + return await Promise.all( + packageFiles.map(async function (packageFile) { + const cwd = path.join(packagesPath, packageFile); + const cwdStat = await fs.stat(cwd); + if (cwdStat.isDirectory()) { + const packageJSON: any = await fs.readJson(path.join(cwd, 'package.json')); + const isUIPackage = packageJSON && packageJSON.devDependencies && packageJSON.devDependencies['@alifd/next']; - // 解决 tsc 不支持 copy 非 .ts/.tsx 文件的问题 - if (!isUIPackage) { - console.log('copy cwd', cwd); - const filePattern = 'src/**/!(*.ts|*.tsx)'; - const files = glob.sync(filePattern, { cwd, nodir: true }); - console.log('copy files', files); + // 解决 tsc 不支持 copy 非 .ts/.tsx 文件的问题 + if (!isUIPackage) { + console.log('copy cwd', cwd); + const filePattern = 'src/**/!(*.ts|*.tsx)'; + const files = glob.sync(filePattern, { cwd, nodir: true }); + console.log('copy files', files); - return await Promise.all(files.map(async function(file) { - const from = path.join(cwd, file); - const to = path.join(cwd, file.replace(/src\//, 'lib/')); - console.log('copy from', from); - console.log('copy to', to); + return await Promise.all( + files.map(async function (file) { + const from = path.join(cwd, file); + const to = path.join(cwd, file.replace(/src\//, 'lib/')); + console.log('copy from', from); + console.log('copy to', to); - await fs.mkdirp(path.dirname(to)); - await fs.copyFile(from, to); - })); + await fs.mkdirp(path.dirname(to)); + await fs.copyFile(from, to); + }) + ); + } } - } - })); + }) + ); })().catch((e) => { console.trace(e); process.exit(128); diff --git a/scripts/dependency-check.ts b/scripts/dependency-check.ts index 51df549a9..d38f85bce 100644 --- a/scripts/dependency-check.ts +++ b/scripts/dependency-check.ts @@ -7,7 +7,7 @@ import getPackages from './fn/getPackages'; packageDirs.forEach((pkgDir) => { execa.commandSync(`dependency-check ${pkgDir} --missing -i vscode -i puppeteer -i @babel/runtime`, { cwd: pkgDir, - stdio: 'inherit' + stdio: 'inherit', }); }); })().catch((e) => { diff --git a/scripts/extension-deps-install.ts b/scripts/extension-deps-install.ts index 6c5d11e55..5ba1c161c 100644 --- a/scripts/extension-deps-install.ts +++ b/scripts/extension-deps-install.ts @@ -2,7 +2,7 @@ import extensionDepsInstall from './fn/extension-deps-install'; try { extensionDepsInstall(); -} catch(e) { +} catch (e) { console.trace(e); process.exit(128); } diff --git a/scripts/extension-docs-check.ts b/scripts/extension-docs-check.ts index 28812a9ba..11a067776 100644 --- a/scripts/extension-docs-check.ts +++ b/scripts/extension-docs-check.ts @@ -3,35 +3,35 @@ import * as path from 'path'; import * as fse from 'fs-extra'; const EXTENSION_PATH = path.join(__dirname, '../extensions'); -const ZHCN_DOC = 'README.md' -const I18N_DOC = 'README.en.md' +const ZHCN_DOC = 'README.md'; +const I18N_DOC = 'README.en.md'; const DOCS = []; // 加载所有docs -const extensions = fse.readdirSync(EXTENSION_PATH) -extensions.forEach(extension=>{ - if(extension.startsWith('.')){ +const extensions = fse.readdirSync(EXTENSION_PATH); +extensions.forEach((extension) => { + if (extension.startsWith('.')) { return; } DOCS.push(path.join(EXTENSION_PATH, extension, ZHCN_DOC)); DOCS.push(path.join(EXTENSION_PATH, extension, I18N_DOC)); -}) +}); // MarkdownLint 设置 const OPTIONS = { - files:DOCS, - config:{ - 'line-length':false, - 'first-line-heading':false, - } -} + files: DOCS, + config: { + 'line-length': false, + 'first-line-heading': false, + }, +}; // 检测是否符合规范 const result = markdownLint.sync(OPTIONS); -if(result.toString()===''){ - console.log('Docs are checked successfully.') -}else{ - console.log('Docs are non-standard... Please correct mistakes: ') +if (result.toString() === '') { + console.log('Docs are checked successfully.'); +} else { + console.log('Docs are non-standard... Please correct mistakes: '); console.log(result.toString()); process.exit(128); -} \ No newline at end of file +} diff --git a/scripts/extension-link-package.ts b/scripts/extension-link-package.ts index e4791fa5a..d94f34006 100644 --- a/scripts/extension-link-package.ts +++ b/scripts/extension-link-package.ts @@ -3,29 +3,31 @@ import * as fse from 'fs-extra'; import { run } from './fn/shell'; (async function () { - const extensionsPath = path.join(__dirname, '../extensions') + const extensionsPath = path.join(__dirname, '../extensions'); const extensionFiles = await fse.readdir(extensionsPath); - return await Promise.all(extensionFiles.map(async extensionFile => { - const cwd = path.join(extensionsPath, extensionFile); - if (fse.existsSync(cwd)) { - // link packages to extension - if (!process.env.CI) { - await removeIceworks(cwd); - } - const webviewPath = path.join(cwd, 'web'); - if (fse.existsSync(webviewPath)) { - // link packages to extension webview + return await Promise.all( + extensionFiles.map(async (extensionFile) => { + const cwd = path.join(extensionsPath, extensionFile); + if (fse.existsSync(cwd)) { + // link packages to extension if (!process.env.CI) { - await removeIceworks(webviewPath); + await removeIceworks(cwd); + } + const webviewPath = path.join(cwd, 'web'); + if (fse.existsSync(webviewPath)) { + // link packages to extension webview + if (!process.env.CI) { + await removeIceworks(webviewPath); + } } } - } - })) -})().catch(e => { + }) + ); +})().catch((e) => { console.trace(e); process.exit(128); -}) +}); async function removeIceworks(cwd: string) { const cwdStat = await fse.stat(cwd); diff --git a/scripts/fn/extension-deps-install.ts b/scripts/fn/extension-deps-install.ts index 11a794214..9ebc17536 100644 --- a/scripts/fn/extension-deps-install.ts +++ b/scripts/fn/extension-deps-install.ts @@ -3,7 +3,7 @@ import * as fse from 'fs-extra'; import * as spawn from 'cross-spawn'; export default function () { - const extensionsPath = path.join(__dirname, '..', '..', 'extensions') + const extensionsPath = path.join(__dirname, '..', '..', 'extensions'); const extensionFiles = fse.readdirSync(extensionsPath); const installCommonds = ['install']; if (!process.env.CI) { @@ -14,7 +14,7 @@ export default function () { for (let i = 0; i < extensionFiles.length; i++) { const cwd = path.join(extensionsPath, extensionFiles[i]); - console.log('Installing extension\'s dependencies', cwd); + console.log("Installing extension's dependencies", cwd); spawn.sync('npm', installCommonds, { stdio: 'inherit', @@ -23,7 +23,7 @@ export default function () { const webviewPath = path.join(cwd, 'web'); if (fse.existsSync(webviewPath)) { // webview: npm install - console.log('Installing extension webview\'s dependencies', webviewPath); + console.log("Installing extension webview's dependencies", webviewPath); spawn.sync('npm', installCommonds, { stdio: 'inherit', cwd: webviewPath, diff --git a/scripts/fn/getPackages.ts b/scripts/fn/getPackages.ts index 4deda4b36..d9133350a 100644 --- a/scripts/fn/getPackages.ts +++ b/scripts/fn/getPackages.ts @@ -1,4 +1,3 @@ - /* eslint no-restricted-syntax:0, no-await-in-loop:0, no-restricted-syntax:0 */ import * as path from 'path'; import * as fse from 'fs-extra'; diff --git a/scripts/getExtensionInfos.ts b/scripts/getExtensionInfos.ts index 4bf98401a..551a4299b 100644 --- a/scripts/getExtensionInfos.ts +++ b/scripts/getExtensionInfos.ts @@ -1,4 +1,3 @@ - import { existsSync, readdirSync, readFileSync } from 'fs'; import { join } from 'path'; import axios from 'axios'; @@ -15,14 +14,17 @@ export interface IExtensionInfo { } function checkVersionExists(extension: string, version: string, retry = 0): Promise { - return axios.get( - // Use VS Code Extension assets icon check version. - `http://iceworks-team.gallery.vsassets.io/_apis/public/gallery/publisher/iceworks-team/extension/${encodeURIComponent(extension)}/${encodeURIComponent(version)}/assetbyname/Microsoft.VisualStudio.Services.Icons.Default`, - { timeout: TIMEOUT }, - ) - .then(res => res.status === 200) - .catch(err => { - if (err.response && err.response.status === 404 || (retry && retry >= RETRY_LIMIT)) { + return axios + .get( + // Use VS Code Extension assets icon check version. + `http://iceworks-team.gallery.vsassets.io/_apis/public/gallery/publisher/iceworks-team/extension/${encodeURIComponent( + extension + )}/${encodeURIComponent(version)}/assetbyname/Microsoft.VisualStudio.Services.Icons.Default`, + { timeout: TIMEOUT } + ) + .then((res) => res.status === 200) + .catch((err) => { + if ((err.response && err.response.status === 404) || (retry && retry >= RETRY_LIMIT)) { return false; } else { console.log(`Retry check ${extension}@${version} Times: ${retry + 1}`); @@ -40,35 +42,34 @@ export async function getExtensionInfos(): Promise { const extensionFolders: string[] = readdirSync(TARGET_DIRECTORY).filter((filename) => filename[0] !== '.'); console.log('[PUBLISH] Start check with following extensions:'); - await Promise.all(extensionFolders.map(async (extensionFolder) => { - - - const directory = join(TARGET_DIRECTORY, extensionFolder); - const packageInfoPath = join(directory, 'package.json'); + await Promise.all( + extensionFolders.map(async (extensionFolder) => { + const directory = join(TARGET_DIRECTORY, extensionFolder); + const packageInfoPath = join(directory, 'package.json'); - // Process extension info. - if (existsSync(packageInfoPath)) { + // Process extension info. + if (existsSync(packageInfoPath)) { + const packageInfo = JSON.parse(readFileSync(packageInfoPath, 'utf8')); + const extensionName = packageInfo.name || extensionFolder; - const packageInfo = JSON.parse(readFileSync(packageInfoPath, 'utf8')); - const extensionName = packageInfo.name || extensionFolder; + console.log(`- ${extensionName}`); - console.log(`- ${extensionName}`); - - try { - extensionInfos.push({ - name: extensionName, - directory, - localVersion: packageInfo.version, - // If localVersion not exist, publish it - shouldPublish: !await checkVersionExists(extensionName, packageInfo.version) - }); - } catch (e) { - console.log(`[ERROR] get ${extensionName} information failed: `, e); + try { + extensionInfos.push({ + name: extensionName, + directory, + localVersion: packageInfo.version, + // If localVersion not exist, publish it + shouldPublish: !(await checkVersionExists(extensionName, packageInfo.version)), + }); + } catch (e) { + console.log(`[ERROR] get ${extensionName} information failed: `, e); + } + } else { + console.log(`[ERROR] ${extensionFolder}'s package.json not found.`); } - } else { - console.log(`[ERROR] ${extensionFolder}'s package.json not found.`); - } - })); + }) + ); } return extensionInfos; } diff --git a/scripts/getPackageInfos.ts b/scripts/getPackageInfos.ts index bd9f50143..9702b54f7 100644 --- a/scripts/getPackageInfos.ts +++ b/scripts/getPackageInfos.ts @@ -17,7 +17,9 @@ function checkBuildSuccess(directory: string, mainFile: string): boolean { } function checkVersionExists(pkg: string, version: string): Promise { - return getLatestVersion(pkg).then(latestVersion => version === latestVersion).catch(() => false); + return getLatestVersion(pkg) + .then((latestVersion) => version === latestVersion) + .catch(() => false); } export async function getPackageInfos(): Promise { @@ -27,37 +29,37 @@ export async function getPackageInfos(): Promise { } else { const packageFolders: string[] = readdirSync(TARGET_DIRECTORY).filter((filename) => filename[0] !== '.'); console.log('[PUBLISH] Start check with following packages:'); - await Promise.all(packageFolders.map(async (packageFolder) => { - - const directory = join(TARGET_DIRECTORY, packageFolder); - const packageInfoPath = join(directory, 'package.json'); - - // Process package info. - if (existsSync(packageInfoPath)) { - - const packageInfo = JSON.parse(readFileSync(packageInfoPath, 'utf8')); - const packageName = packageInfo.name || packageFolder; - - console.log(`- ${packageName}`); - - try { - packageInfos.push({ - name: packageName, - directory, - localVersion: packageInfo.version, - mainFile: packageInfo.main, - // If localVersion not exist, publish it - shouldPublish: - checkBuildSuccess(directory, packageInfo.main) && - !await checkVersionExists(packageName, packageInfo.version) - }); - } catch (e) { - console.log(`[ERROR] get ${packageName} information failed: `, e); + await Promise.all( + packageFolders.map(async (packageFolder) => { + const directory = join(TARGET_DIRECTORY, packageFolder); + const packageInfoPath = join(directory, 'package.json'); + + // Process package info. + if (existsSync(packageInfoPath)) { + const packageInfo = JSON.parse(readFileSync(packageInfoPath, 'utf8')); + const packageName = packageInfo.name || packageFolder; + + console.log(`- ${packageName}`); + + try { + packageInfos.push({ + name: packageName, + directory, + localVersion: packageInfo.version, + mainFile: packageInfo.main, + // If localVersion not exist, publish it + shouldPublish: + checkBuildSuccess(directory, packageInfo.main) && + !(await checkVersionExists(packageName, packageInfo.version)), + }); + } catch (e) { + console.log(`[ERROR] get ${packageName} information failed: `, e); + } + } else { + console.log(`[ERROR] ${packageFolder}'s package.json not found.`); } - } else { - console.log(`[ERROR] ${packageFolder}'s package.json not found.`); - } - })); + }) + ); } return packageInfos; -} \ No newline at end of file +} diff --git a/scripts/owner.ts b/scripts/owner.ts index 75963f63d..1dc8b18ae 100644 --- a/scripts/owner.ts +++ b/scripts/owner.ts @@ -1,4 +1,3 @@ - /** * npm run owner -- add sobear * npm run owner -- rm sobear @@ -7,12 +6,11 @@ import * as spawn from 'cross-spawn'; import getPackages from './fn/getPackages'; - (async function () { const args = process.argv; const action = args[2]; const name = args[3]; - const { packageNames } = await getPackages(); + const { packageNames } = await getPackages(); console.log(`npm owner ${action} ${name} to ${packageNames.join(',')}...`); @@ -22,5 +20,4 @@ import getPackages from './fn/getPackages'; const params = action === 'ls' ? ['owner', action, npmName] : ['owner', action, name, npmName]; spawn.sync('npm', params, { stdio: 'inherit' }); }); - })(); diff --git a/scripts/publish-beta-extension.ts b/scripts/publish-beta-extension.ts index 6cd17588a..7b158f673 100644 --- a/scripts/publish-beta-extension.ts +++ b/scripts/publish-beta-extension.ts @@ -33,14 +33,12 @@ function updateBetaDependencies(extension: string, directory: string) { } catch (e) { console.log(`[ERROR] ${extension} update beta package dependencies failed.`, e); } -}; +} function publish(extension: string, directory: string, version: string): void { // vsce package console.log('[VSCE] PACKAGE: ', `${extension}@${version}`); - spawnSync('vsce', [ - 'package', - ], { + spawnSync('vsce', ['package'], { stdio: 'inherit', cwd: directory, }); diff --git a/scripts/publish-beta-package.ts b/scripts/publish-beta-package.ts index 2c6ffd114..cec7d6c6d 100644 --- a/scripts/publish-beta-package.ts +++ b/scripts/publish-beta-package.ts @@ -21,11 +21,8 @@ function getBetaVersionInfo(packageInfo: IPackageInfo): IBetaPackageInfo { if (!BETA_REG.test(localVersion)) { // Add beta version let betaVersion = 1; - const childProcess = spawnSync('npm', [ - 'show', name, 'dist-tags', - '--json', - ], { - encoding: 'utf-8' + const childProcess = spawnSync('npm', ['show', name, 'dist-tags', '--json'], { + encoding: 'utf-8', }); const distTags = JSON.parse(childProcess.stdout) || {}; const matched = (distTags.beta || '').match(BETA_REG); @@ -61,16 +58,12 @@ function updatePackageJson(betaPackageInfos: IBetaPackageInfo[]): void { } fs.writeFileSync(packageFile, JSON.stringify(packageData, null, 2)); - }) -}; + }); +} function publish(pkg: string, betaVersion: string, directory: string): void { - console.log('[PUBLISH BETA]', `${pkg}@${betaVersion}`); - spawnSync('npm', [ - 'publish', - '--tag=beta', - ], { + spawnSync('npm', ['publish', '--tag=beta'], { stdio: 'inherit', cwd: directory, }); @@ -79,10 +72,9 @@ function publish(pkg: string, betaVersion: string, directory: string): void { // Entry console.log('[PUBLISH BETA] Start:'); getPackageInfos().then((packageInfos: IPackageInfo[]) => { - const shouldPublishPackages = packageInfos - .filter(packageInfo => packageInfo.shouldPublish) - .map(packageInfo => getBetaVersionInfo(packageInfo)) + .filter((packageInfo) => packageInfo.shouldPublish) + .map((packageInfo) => getBetaVersionInfo(packageInfo)); updatePackageJson(shouldPublishPackages); @@ -97,7 +89,6 @@ getPackageInfos().then((packageInfos: IPackageInfo[]) => { publishedPackages.push(`${name}:${betaVersion}`); }); - console.log(`[PUBLISH PACKAGE BETA] Complete (count=${publishedCount}):`); console.log(`${publishedPackages.join('\n')}`); setPublishedPackages(publishedPackages); diff --git a/scripts/publish-extension.ts b/scripts/publish-extension.ts index a08511ce9..7cc19519b 100644 --- a/scripts/publish-extension.ts +++ b/scripts/publish-extension.ts @@ -14,41 +14,42 @@ function checkPackagePublished() { const timeout = 10000; const maxDetectTimes = 30; - return Promise.all(publishedPackages.map((publishedPackage) => { - return new Promise((resolve, retject) => { + return Promise.all( + publishedPackages.map((publishedPackage) => { + return new Promise((resolve, retject) => { + const info = publishedPackage.split(':'); + // Example: @iceworks/project-service:0.1.8 + const name = info[0]; + const version = info[1]; - const info = publishedPackage.split(':'); - // Example: @iceworks/project-service:0.1.8 - const name = info[0]; - const version = info[1]; - - let times = 0; - const timer = setInterval(() => { - if (times++ > maxDetectTimes) { - // Exit if detect times over maxDetectTimes. - clearInterval(timer); - retject(new Error(`${name}@${version} publish failed! Please try again.`)); - } else { - getLatestVersion(name).then((latestVersion) => { - if (version === latestVersion) { - // Can be installed. - clearInterval(timer); - resolve(); - } - }).catch(() => { - // ignore - }) - } - }, timeout); + let times = 0; + const timer = setInterval(() => { + if (times++ > maxDetectTimes) { + // Exit if detect times over maxDetectTimes. + clearInterval(timer); + retject(new Error(`${name}@${version} publish failed! Please try again.`)); + } else { + getLatestVersion(name) + .then((latestVersion) => { + if (version === latestVersion) { + // Can be installed. + clearInterval(timer); + resolve(); + } + }) + .catch(() => { + // ignore + }); + } + }, timeout); + }); }) - })); + ); } - + function packExtension(extension: string, directory: string, version: string) { console.log('[VSCE] PACK: ', `${extension}@${version}`); - spawnSync('vsce', [ - 'package', - ], { + spawnSync('vsce', ['package'], { stdio: 'inherit', cwd: directory, }); @@ -57,46 +58,44 @@ function packExtension(extension: string, directory: string, version: string) { function publish(extension: string, directory: string, version: string): void { // vsce publish console.log('[VSCE] PUBLISH: ', `${extension}@${version}`); - spawnSync('vsce', [ - 'publish', - '-p', - process.env.VSCE_TOKEN - ], { + spawnSync('vsce', ['publish', '-p', process.env.VSCE_TOKEN], { stdio: 'inherit', cwd: directory, }); } -checkPackagePublished().then(() => { - // Entry - console.log('[PUBLISH] Start:'); - getExtensionInfos().then((extensionInfos: IExtensionInfo[]) => { - // npm install - extensionDepsInstall(); +checkPackagePublished() + .then(() => { + // Entry + console.log('[PUBLISH] Start:'); + getExtensionInfos().then((extensionInfos: IExtensionInfo[]) => { + // npm install + extensionDepsInstall(); - // Publish - let publishedCount = 0; - const extensions = []; - const publishedExtensions = []; - for (let i = 0; i < extensionInfos.length; i++) { - const { name, directory, localVersion, shouldPublish } = extensionInfos[i]; - // Production publish should zip all extensions. - // Pack extension first. - extensions.push(`${name}:${localVersion}`); - packExtension(name, directory, localVersion); + // Publish + let publishedCount = 0; + const extensions = []; + const publishedExtensions = []; + for (let i = 0; i < extensionInfos.length; i++) { + const { name, directory, localVersion, shouldPublish } = extensionInfos[i]; + // Production publish should zip all extensions. + // Pack extension first. + extensions.push(`${name}:${localVersion}`); + packExtension(name, directory, localVersion); - if (shouldPublish) { - publishedCount++; - console.log(`--- ${name}@${localVersion} ---`); - publish(name, directory, localVersion); - publishedExtensions.push(`${name}:${localVersion}`); + if (shouldPublish) { + publishedCount++; + console.log(`--- ${name}@${localVersion} ---`); + publish(name, directory, localVersion); + publishedExtensions.push(`${name}:${localVersion}`); + } } - } - uploadExtesions(extensions, true); - console.log(`[PUBLISH EXTENSION PRODUCTION] Complete (count=${publishedCount}):`); - console.log(`${publishedExtensions.join('\n')}`); + uploadExtesions(extensions, true); + console.log(`[PUBLISH EXTENSION PRODUCTION] Complete (count=${publishedCount}):`); + console.log(`${publishedExtensions.join('\n')}`); + }); + }) + .catch((e) => { + console.error(e); + process.exit(1); }); -}).catch((e) => { - console.error(e); - process.exit(1); -}); diff --git a/scripts/publish-package.ts b/scripts/publish-package.ts index a0462bd6e..023022a7b 100644 --- a/scripts/publish-package.ts +++ b/scripts/publish-package.ts @@ -8,13 +8,17 @@ import { IPackageInfo, getPackageInfos } from './getPackageInfos'; function publish(pkg: string, version: string, directory: string): void { console.log('[PUBLISH]', `${pkg}@${version}`); - spawnSync('npm', [ - 'publish', - // use default registry - ], { - stdio: 'inherit', - cwd: directory, - }); + spawnSync( + 'npm', + [ + 'publish', + // use default registry + ], + { + stdio: 'inherit', + cwd: directory, + } + ); } // Entry @@ -32,7 +36,7 @@ getPackageInfos().then((packageInfos: IPackageInfo[]) => { publishedPackages.push(`${name}:${localVersion}`); } } - console.log(`[PUBLISH PACKAGE PRODUCTION] Complete (count=${publishedCount}):`) + console.log(`[PUBLISH PACKAGE PRODUCTION] Complete (count=${publishedCount}):`); console.log(`${publishedPackages.join('\n')}`); setPublishedPackages(publishedPackages); }); diff --git a/scripts/upload-extensions.ts b/scripts/upload-extensions.ts index 941faa61d..2f11971f0 100644 --- a/scripts/upload-extensions.ts +++ b/scripts/upload-extensions.ts @@ -21,7 +21,8 @@ const ZIP_FILE = path.join(__dirname, ZIP_NAME); const EXTENSIONS_DIR = path.join(__dirname, 'Iceworks'); function upload(target, filePath) { - ossClient.put(target, filePath) + ossClient + .put(target, filePath) .then(() => { console.log(`[UPLOAD] ${filePath} upload success.`); }) @@ -33,7 +34,6 @@ function upload(target, filePath) { // Beta publish only zip published extension. // Production publish should zip all extensions. export default function uploadExtesions(extensions: string[], production?: boolean) { - extensions.forEach((extension) => { const info = extension.split(':'); const name = info[0]; @@ -45,7 +45,7 @@ export default function uploadExtesions(extensions: string[], production?: boole // Upload extension upload(`vscode-extensions/${production ? 'release' : 'beta'}/${extensionFile}`, extensionFilePath); fs.copySync(extensionFilePath, path.join(EXTENSIONS_DIR, extensionFile)); - }) + }); // Upload extensions zip zip.addLocalFolder(EXTENSIONS_DIR); diff --git a/scripts/watch.ts b/scripts/watch.ts index d485e3599..d65d1c92a 100644 --- a/scripts/watch.ts +++ b/scripts/watch.ts @@ -1,8 +1,8 @@ /* eslint @typescript-eslint/explicit-function-return-type:0 */ -import * as glob from 'glob' -import * as path from 'path' -import * as fs from 'fs-extra' -import { run } from './fn/shell' +import * as glob from 'glob'; +import * as path from 'path'; +import * as fs from 'fs-extra'; +import { run } from './fn/shell'; // eslint-disable-next-line @typescript-eslint/no-var-requires const nsfw = require('nsfw'); @@ -20,7 +20,11 @@ async function watchFiles(cwd, ext) { const watcher = await nsfw(cwd, (e) => { e.forEach((e) => { - if (e.action === nsfw.actions.CREATED || e.action === nsfw.actions.MODIFIED || e.action === nsfw.actions.RENAMED) { + if ( + e.action === nsfw.actions.CREATED || + e.action === nsfw.actions.MODIFIED || + e.action === nsfw.actions.RENAMED + ) { const filePath = e.newFile ? path.join(e.directory, e.newFile!) : path.join(e.directory, e.file!); if (fileSet.has(filePath)) { console.log('non-ts change detected:', filePath); @@ -37,7 +41,6 @@ watchFiles(path.join(__dirname, '../packages'), '*/src/**/!(*.ts|*.tsx)').catch( process.exit(128); }); - // 在这之上的代码都是为了解决 tsc 不支持 copy 非 .ts/.tsx 文件的问题 async function tscWatcher() { await run('npx tsc --build ./tsconfig.json -w'); @@ -45,7 +48,6 @@ async function tscWatcher() { tscWatcher(); - async function copyOneFile(file, cwd) { const from = path.join(cwd, file); const to = path.join(cwd, file.replace(/src\//, '/lib/')); diff --git a/tsconfig.extension.json b/tsconfig.extension.json index d4826e5fc..587fcaa70 100644 --- a/tsconfig.extension.json +++ b/tsconfig.extension.json @@ -2,10 +2,8 @@ "compilerOptions": { "module": "commonjs", "target": "es2019", - "lib": [ - "ES2019" - ], + "lib": ["ES2019"], "sourceMap": true, "strict": true /* enable all strict type-checking options */ } -} \ No newline at end of file +} diff --git a/tsconfig.json b/tsconfig.json index 01254da5a..beae4ed8b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,19 +1,19 @@ { "files": [], "references": [ - {"path": "packages/constant"}, - {"path": "packages/i18n"}, - {"path": "packages/ice-npm-utils"}, - {"path": "packages/config"}, - {"path": "packages/vscode-webview"}, - {"path": "packages/generate-project"}, - {"path": "packages/material-utils"}, - {"path": "packages/transform-ts-to-js"}, - {"path": "packages/common-service"}, - {"path": "packages/project-service"}, - {"path": "packages/material-service"}, - {"path": "packages/block-service"}, - {"path": "packages/component-service"}, - {"path": "packages/page-service"}, + { "path": "packages/constant" }, + { "path": "packages/i18n" }, + { "path": "packages/ice-npm-utils" }, + { "path": "packages/config" }, + { "path": "packages/vscode-webview" }, + { "path": "packages/generate-project" }, + { "path": "packages/material-utils" }, + { "path": "packages/transform-ts-to-js" }, + { "path": "packages/common-service" }, + { "path": "packages/project-service" }, + { "path": "packages/material-service" }, + { "path": "packages/block-service" }, + { "path": "packages/component-service" }, + { "path": "packages/page-service" } ] } diff --git a/tsconfig.settings.json b/tsconfig.settings.json index a43df34d3..a0ee06024 100644 --- a/tsconfig.settings.json +++ b/tsconfig.settings.json @@ -7,4 +7,4 @@ "skipLibCheck": true, "forceConsistentCasingInFileNames": true } -} \ No newline at end of file +} diff --git a/tsconfig.webview.json b/tsconfig.webview.json index 1c31a6a17..e6bf81faa 100644 --- a/tsconfig.webview.json +++ b/tsconfig.webview.json @@ -7,10 +7,7 @@ "jsx": "react", "moduleResolution": "node", "allowSyntheticDefaultImports": true, - "lib": [ - "es6", - "dom" - ], + "lib": ["es6", "dom"], "sourceMap": true, "allowJs": true, "forceConsistentCasingInFileNames": true, @@ -23,4 +20,4 @@ "noUnusedLocals": true, "skipLibCheck": true } -} \ No newline at end of file +}