build: use tsconfig bundler (#3581)

This commit is contained in:
Alex Yang
2023-08-04 17:00:36 -07:00
committed by GitHub
parent bbf5f0efe0
commit 97de0ef5b4
21 changed files with 116 additions and 221 deletions
+7 -8
View File
@@ -1,5 +1,7 @@
import type { PrimitiveAtom } from 'jotai';
import { atom } from 'jotai';
import { atomFamily, atomWithStorage } from 'jotai/utils';
import type { AtomFamily } from 'jotai/vanilla/utils/atomFamily';
import type { CreateWorkspaceMode } from '../components/affine/create-workspace-modal';
import type { SettingProps } from '../components/affine/setting-modal';
@@ -59,19 +61,16 @@ const defaultPageSetting = {
mode: 'page',
} satisfies PageLocalSetting;
export const pageSettingFamily = atomFamily((pageId: string) =>
export const pageSettingFamily: AtomFamily<
string,
PrimitiveAtom<PageLocalSetting>
> = atomFamily((pageId: string) =>
atom(
get =>
get(pageSettingsBaseAtom)[pageId] ?? {
...defaultPageSetting,
},
(
get,
set,
patch:
| Partial<PageLocalSetting>
| ((prevSetting: PageLocalSetting | undefined) => void)
) => {
(get, set, patch) => {
set(recentPageSettingsBaseAtom, ids => {
// pick 3 recent page ids
return [...new Set([pageId, ...ids]).values()].slice(0, 3);
+2 -16
View File
@@ -1,23 +1,9 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"target": "ESNext",
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "ESNext",
"resolveJsonModule": true,
"isolatedModules": true,
"moduleResolution": "bundler",
"jsx": "preserve",
"jsxImportSource": "@emotion/react",
"incremental": true,
"experimentalDecorators": true,
"outDir": "lib",
"typeRoots": ["../../node_modules", "../../node_modules/@types"],
"types": ["webpack-env", "ses"]
"types": ["webpack-env", "ses", "affine__env"]
},
"include": ["src/**/*.ts", "src/**/*.tsx"],
"exclude": ["node_modules"],
+1 -1
View File
@@ -21,7 +21,7 @@
"react": "18.3.0-canary-1fdacbefd-20230630",
"react-dom": "18.3.0-canary-1fdacbefd-20230630",
"react-server-dom-webpack": "18.3.0-canary-1fdacbefd-20230630",
"waku": "0.12.1"
"waku": "0.14.0"
},
"devDependencies": {
"@types/react": "^18.2.17",
@@ -4,7 +4,7 @@ export default defineRouter(
async id => {
switch (id) {
case 'index': {
const { default: AppCreator } = await import('./src/app.js');
const { default: AppCreator } = await import('./app.js');
return AppCreator(id);
}
default:
@@ -29,7 +29,7 @@
<div class="spinner"></div>
</div>
<!--/placeholder1-->
<script src="./src/index.tsx" defer type="module"></script>
<script src="./index.tsx" defer type="module"></script>
<!--placeholder2-->
<!--/placeholder2-->
</body>
Binary file not shown.
+2 -1
View File
@@ -10,7 +10,8 @@
"skipLibCheck": true,
"noUncheckedIndexedAccess": true,
"exactOptionalPropertyTypes": true,
"jsx": "react-jsx"
"jsx": "react-jsx",
"jsxImportSource": "react"
},
"include": ["src", "entries.ts"],
"references": [
-3
View File
@@ -29,7 +29,6 @@ test.skip('move workspace db file', async ({ page, appInfo, workspace }) => {
// move db file to tmp folder
await page.evaluate(tmpPath => {
// @ts-expect-error
window.apis?.dialog.setFakeDialogResult({
filePath: tmpPath,
});
@@ -72,7 +71,6 @@ test('export then add', async ({ page, appInfo, workspace }) => {
// export db file to tmp folder
await page.evaluate(tmpPath => {
// @ts-expect-error
window.apis?.dialog.setFakeDialogResult({
filePath: tmpPath,
});
@@ -92,7 +90,6 @@ test('export then add', async ({ page, appInfo, workspace }) => {
await page.getByTestId('add-or-new-workspace').click();
await page.evaluate(tmpPath => {
// @ts-expect-error
window.apis?.dialog.setFakeDialogResult({
filePath: tmpPath,
});
+1
View File
@@ -9,6 +9,7 @@
"apps/*",
"plugins/*",
"packages/*",
"packages/@types/*",
"tests/fixtures",
"tests/kit",
"tests/affine-legacy/*",
+54
View File
@@ -0,0 +1,54 @@
import type { Environment, Platform, RuntimeConfig } from '@affine/env/global';
import type {
DBHandlerManager,
DebugHandlerManager,
DialogHandlerManager,
ExportHandlerManager,
UIHandlerManager,
UnwrapManagerHandlerToClientSide,
UpdaterHandlerManager,
WorkspaceHandlerManager,
} from '@toeverything/infra';
declare global {
interface Window {
appInfo: {
electron: boolean;
};
apis: {
db: UnwrapManagerHandlerToClientSide<DBHandlerManager>;
debug: UnwrapManagerHandlerToClientSide<DebugHandlerManager>;
dialog: UnwrapManagerHandlerToClientSide<DialogHandlerManager>;
export: UnwrapManagerHandlerToClientSide<ExportHandlerManager>;
ui: UnwrapManagerHandlerToClientSide<UIHandlerManager>;
updater: UnwrapManagerHandlerToClientSide<UpdaterHandlerManager>;
workspace: UnwrapManagerHandlerToClientSide<WorkspaceHandlerManager>;
};
events: any;
}
interface WindowEventMap {
'migration-done': CustomEvent;
}
// eslint-disable-next-line no-var
var process: {
env: Record<string, string>;
};
// eslint-disable-next-line no-var
var $migrationDone: boolean;
// eslint-disable-next-line no-var
var platform: Platform | undefined;
// eslint-disable-next-line no-var
var environment: Environment;
// eslint-disable-next-line no-var
var runtimeConfig: RuntimeConfig;
// eslint-disable-next-line no-var
var $AFFINE_SETUP: boolean | undefined;
// eslint-disable-next-line no-var
var editorVersion: string | undefined;
// eslint-disable-next-line no-var
var prefixUrl: string;
// eslint-disable-next-line no-var
var websocketPrefixUrl: string;
}
+10
View File
@@ -0,0 +1,10 @@
{
"name": "@types/affine__env",
"private": true,
"types": "./__all.d.ts",
"type": "module",
"dependencies": {
"@affine/env": "workspace:*",
"@toeverything/infra": "workspace:*"
}
}
@@ -1,7 +1,7 @@
import type { Collection, Filter, VariableMap } from '@affine/env/filter';
import type { DBSchema } from 'idb';
import type { IDBPDatabase } from 'idb';
import { openDB } from 'idb';
import type { IDBPDatabase } from 'idb/build/entry';
import { useAtom } from 'jotai';
import { atomWithReset, RESET } from 'jotai/utils';
import { useCallback } from 'react';
+1 -2
View File
@@ -5,8 +5,7 @@
"compilerOptions": {
"composite": true,
"noEmit": false,
"outDir": "lib",
"types": ["@affine/env"]
"outDir": "lib"
},
"references": [
{
-1
View File
@@ -4,7 +4,6 @@
"type": "module",
"main": "./src/index.ts",
"module": "./src/index.ts",
"types": "./src/global.ts",
"devDependencies": {
"@blocksuite/global": "0.0.0-20230804190636-37f66904-nightly",
"react": "18.2.0",
-50
View File
@@ -1,60 +1,10 @@
/// <reference types="@blocksuite/global" />
import { assertEquals } from '@blocksuite/global/utils';
import type {
DBHandlerManager,
DebugHandlerManager,
DialogHandlerManager,
ExportHandlerManager,
UIHandlerManager,
UnwrapManagerHandlerToClientSide,
UpdaterHandlerManager,
WorkspaceHandlerManager,
} from '@toeverything/infra';
import { z } from 'zod';
import { isBrowser, isDesktop, isServer } from './constant.js';
import { isValidIPAddress } from './is-valid-ip-address.js';
import { UaHelper } from './ua-helper.js';
declare global {
interface Window {
appInfo: {
electron: boolean;
};
apis: {
db: UnwrapManagerHandlerToClientSide<DBHandlerManager>;
debug: UnwrapManagerHandlerToClientSide<DebugHandlerManager>;
dialog: UnwrapManagerHandlerToClientSide<DialogHandlerManager>;
export: UnwrapManagerHandlerToClientSide<ExportHandlerManager>;
ui: UnwrapManagerHandlerToClientSide<UIHandlerManager>;
updater: UnwrapManagerHandlerToClientSide<UpdaterHandlerManager>;
workspace: UnwrapManagerHandlerToClientSide<WorkspaceHandlerManager>;
};
events: any;
}
interface WindowEventMap {
'migration-done': CustomEvent;
}
// eslint-disable-next-line no-var
var $migrationDone: boolean;
// eslint-disable-next-line no-var
var platform: Platform | undefined;
// eslint-disable-next-line no-var
var environment: Environment;
// eslint-disable-next-line no-var
var runtimeConfig: RuntimeConfig;
// eslint-disable-next-line no-var
var $AFFINE_SETUP: boolean | undefined;
// eslint-disable-next-line no-var
var editorVersion: string | undefined;
// eslint-disable-next-line no-var
var prefixUrl: string;
// eslint-disable-next-line no-var
var websocketPrefixUrl: string;
}
export const blockSuiteFeatureFlags = z.object({
enable_database: z.boolean(),
enable_drag_handle: z.boolean(),
+1 -1
View File
@@ -1,4 +1,4 @@
import type { DBSchema, IDBPDatabase } from 'idb/build/entry';
import type { DBSchema, IDBPDatabase } from 'idb';
export const dbVersion = 1;
export const DEFAULT_DB_NAME = 'affine-local';
+1 -1
View File
@@ -1,5 +1,5 @@
import type { IDBPDatabase } from 'idb';
import { openDB } from 'idb';
import type { IDBPDatabase } from 'idb/build/entry';
import { mergeUpdates } from 'yjs';
import type { BlockSuiteBinaryDB, OldYjsDB, UpdateMessage } from './shared';
+1 -1
View File
@@ -13,7 +13,7 @@ import { IndexedDBChatMessageHistory } from './langchain/message-history';
import { chatPrompt, followupQuestionPrompt } from './prompts';
import { followupQuestionParser } from './prompts/output-parser';
type ChatAI = {
export type ChatAI = {
// Core chat AI
conversationChain: ConversationChain;
// Followup AI, used to generate followup questions
+2 -2
View File
@@ -9,7 +9,7 @@ import type { BaseMessage } from 'langchain/schema';
import { AIMessage } from 'langchain/schema';
import { HumanMessage } from 'langchain/schema';
import type { ChatAIConfig } from '../chat';
import type { ChatAI, ChatAIConfig } from '../chat';
import { createChatAI } from '../chat';
import type { IndexedDBChatMessageHistory } from '../langchain/message-history';
import { followupQuestionParser } from '../prompts/output-parser';
@@ -28,7 +28,7 @@ const conversationWeakMap = new WeakMap<
WritableAtom<BaseMessage[], [string], Promise<void>>
>();
export const chatAtom = atom(async get => {
export const chatAtom = atom<Promise<ChatAI>>(async get => {
const openAIApiKey = get(openAIApiKeyAtom);
if (!openAIApiKey) {
throw new Error('OpenAI API key not set, chat will not work');
+8 -4
View File
@@ -18,9 +18,11 @@
"useUnknownInCatchVariables": true,
// Modules
"module": "ES2022",
"moduleResolution": "Node",
"module": "ESNext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"types": ["affine__env"],
"typeRoots": ["./node_modules/@types"],
// Emit
"declaration": true,
@@ -36,10 +38,12 @@
// Interop Constraints
"forceConsistentCasingInFileNames": true,
"allowSyntheticDefaultImports": true,
"isolatedModules": true,
// Language and Environment
"jsx": "react-jsx",
"lib": ["ES2023", "DOM", "DOM.Iterable"],
"jsx": "preserve",
"jsxImportSource": "@emotion/react",
"lib": ["ESNext", "DOM"],
"target": "ES2022",
"useDefineForClassFields": false,
"experimentalDecorators": true,
+22 -127
View File
@@ -310,7 +310,7 @@ __metadata:
react-server-dom-webpack: 18.3.0-canary-1fdacbefd-20230630
tailwindcss: ^3.3.3
typescript: ^5.1.6
waku: 0.12.1
waku: 0.14.0
languageName: unknown
linkType: soft
@@ -10895,13 +10895,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-darwin-arm64@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-darwin-arm64@npm:1.3.64"
conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard
"@swc/core-darwin-arm64@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-darwin-arm64@npm:1.3.71"
@@ -10916,13 +10909,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-darwin-x64@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-darwin-x64@npm:1.3.64"
conditions: os=darwin & cpu=x64
languageName: node
linkType: hard
"@swc/core-darwin-x64@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-darwin-x64@npm:1.3.71"
@@ -10937,13 +10923,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-linux-arm-gnueabihf@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.64"
conditions: os=linux & cpu=arm
languageName: node
linkType: hard
"@swc/core-linux-arm-gnueabihf@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.71"
@@ -10958,13 +10937,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-linux-arm64-gnu@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.64"
conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard
"@swc/core-linux-arm64-gnu@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-linux-arm64-gnu@npm:1.3.71"
@@ -10979,13 +10951,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-linux-arm64-musl@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-linux-arm64-musl@npm:1.3.64"
conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard
"@swc/core-linux-arm64-musl@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-linux-arm64-musl@npm:1.3.71"
@@ -11000,13 +10965,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-linux-x64-gnu@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-linux-x64-gnu@npm:1.3.64"
conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard
"@swc/core-linux-x64-gnu@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-linux-x64-gnu@npm:1.3.71"
@@ -11021,13 +10979,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-linux-x64-musl@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-linux-x64-musl@npm:1.3.64"
conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard
"@swc/core-linux-x64-musl@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-linux-x64-musl@npm:1.3.71"
@@ -11042,13 +10993,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-win32-arm64-msvc@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.64"
conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard
"@swc/core-win32-arm64-msvc@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-win32-arm64-msvc@npm:1.3.71"
@@ -11063,13 +11007,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-win32-ia32-msvc@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.64"
conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard
"@swc/core-win32-ia32-msvc@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-win32-ia32-msvc@npm:1.3.71"
@@ -11084,13 +11021,6 @@ __metadata:
languageName: node
linkType: hard
"@swc/core-win32-x64-msvc@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core-win32-x64-msvc@npm:1.3.64"
conditions: os=win32 & cpu=x64
languageName: node
linkType: hard
"@swc/core-win32-x64-msvc@npm:1.3.71":
version: 1.3.71
resolution: "@swc/core-win32-x64-msvc@npm:1.3.71"
@@ -11105,51 +11035,7 @@ __metadata:
languageName: node
linkType: hard
"@swc/core@npm:1.3.64":
version: 1.3.64
resolution: "@swc/core@npm:1.3.64"
dependencies:
"@swc/core-darwin-arm64": 1.3.64
"@swc/core-darwin-x64": 1.3.64
"@swc/core-linux-arm-gnueabihf": 1.3.64
"@swc/core-linux-arm64-gnu": 1.3.64
"@swc/core-linux-arm64-musl": 1.3.64
"@swc/core-linux-x64-gnu": 1.3.64
"@swc/core-linux-x64-musl": 1.3.64
"@swc/core-win32-arm64-msvc": 1.3.64
"@swc/core-win32-ia32-msvc": 1.3.64
"@swc/core-win32-x64-msvc": 1.3.64
peerDependencies:
"@swc/helpers": ^0.5.0
dependenciesMeta:
"@swc/core-darwin-arm64":
optional: true
"@swc/core-darwin-x64":
optional: true
"@swc/core-linux-arm-gnueabihf":
optional: true
"@swc/core-linux-arm64-gnu":
optional: true
"@swc/core-linux-arm64-musl":
optional: true
"@swc/core-linux-x64-gnu":
optional: true
"@swc/core-linux-x64-musl":
optional: true
"@swc/core-win32-arm64-msvc":
optional: true
"@swc/core-win32-ia32-msvc":
optional: true
"@swc/core-win32-x64-msvc":
optional: true
peerDependenciesMeta:
"@swc/helpers":
optional: true
checksum: ea77168089a34dcec088ab81aef99301eba003b5ed3dca4039803050ba9344e754687f7d4fb4b3e40d22509658bdbdbac2f94f99c6f94051970566c857774371
languageName: node
linkType: hard
"@swc/core@npm:^1.3.18, @swc/core@npm:^1.3.61, @swc/core@npm:^1.3.71":
"@swc/core@npm:1.3.71, @swc/core@npm:^1.3.18, @swc/core@npm:^1.3.61, @swc/core@npm:^1.3.71":
version: 1.3.71
resolution: "@swc/core@npm:1.3.71"
dependencies:
@@ -11494,6 +11380,15 @@ __metadata:
languageName: node
linkType: hard
"@types/affine__env@workspace:packages/@types/env":
version: 0.0.0-use.local
resolution: "@types/affine__env@workspace:packages/@types/env"
dependencies:
"@affine/env": "workspace:*"
"@toeverything/infra": "workspace:*"
languageName: unknown
linkType: soft
"@types/argparse@npm:1.0.38":
version: 1.0.38
resolution: "@types/argparse@npm:1.0.38"
@@ -12708,7 +12603,7 @@ __metadata:
languageName: node
linkType: hard
"@vitejs/plugin-react@npm:^4.0.0, @vitejs/plugin-react@npm:^4.0.3":
"@vitejs/plugin-react@npm:^4.0.3":
version: 4.0.3
resolution: "@vitejs/plugin-react@npm:4.0.3"
dependencies:
@@ -31658,7 +31553,7 @@ __metadata:
languageName: node
linkType: hard
"vite@npm:^3.0.0 || ^4.0.0, vite@npm:^4.1.4, vite@npm:^4.3.9, vite@npm:^4.4.7":
"vite@npm:^3.0.0 || ^4.0.0, vite@npm:^4.1.4, vite@npm:^4.4.7":
version: 4.4.7
resolution: "vite@npm:4.4.7"
dependencies:
@@ -31884,24 +31779,24 @@ __metadata:
languageName: node
linkType: hard
"waku@npm:0.12.1":
version: 0.12.1
resolution: "waku@npm:0.12.1"
"waku@npm:0.14.0":
version: 0.14.0
resolution: "waku@npm:0.14.0"
dependencies:
"@swc/core": 1.3.64
"@vitejs/plugin-react": ^4.0.0
"@swc/core": 1.3.71
"@vitejs/plugin-react": ^4.0.3
busboy: ^1.6.0
vite: ^4.3.9
vite: ^4.4.7
peerDependencies:
express: ^4.18.2
react: 18.3.0-canary-613e6f5fc-20230616
react-server-dom-webpack: 18.3.0-canary-613e6f5fc-20230616
react: 18.3.0-canary-7118f5dd7-20230705
react-server-dom-webpack: 18.3.0-canary-7118f5dd7-20230705
peerDependenciesMeta:
express:
optional: true
bin:
waku: dist/cli.js
checksum: c0df6ac35e79eb3216be287db3d5a4507982a50334d7a474cabd70171754adba742f60fef8ae32f512cc82cd207b591158079d798d208db407308c6cd835d77d
checksum: 6637272a74a4ca179c1a5d24083cf8fbb47f711314bbadf62776e773869d3f1af67e55f838e71b774e3db71fc648ed3d2916aff15ddce5cf813dc22b94919288
languageName: node
linkType: hard