From f6f79e7c1cc8cffd94342c726f4144276dae72c9 Mon Sep 17 00:00:00 2001 From: XLor Date: Sat, 25 Nov 2023 04:17:06 +0800 Subject: [PATCH] chore: init builder and loader --- packages/builder/README.md | 7 ++ packages/builder/build.config.ts | 14 +++ packages/builder/package.json | 55 +++++++++++ packages/builder/src/index.ts | 1 + packages/builder/test/index.test.ts | 7 ++ packages/builder/tsconfig.json | 4 + packages/core/README.md | 2 +- packages/epubook/package.json | 2 + packages/loader/README.md | 7 ++ packages/loader/build.config.ts | 14 +++ packages/loader/package.json | 55 +++++++++++ packages/loader/src/index.ts | 1 + packages/loader/test/index.test.ts | 7 ++ packages/loader/tsconfig.json | 4 + packages/theme-default/package.json | 5 +- pnpm-lock.yaml | 141 ++++++++++++---------------- 16 files changed, 240 insertions(+), 86 deletions(-) create mode 100644 packages/builder/README.md create mode 100644 packages/builder/build.config.ts create mode 100644 packages/builder/package.json create mode 100644 packages/builder/src/index.ts create mode 100644 packages/builder/test/index.test.ts create mode 100644 packages/builder/tsconfig.json create mode 100644 packages/loader/README.md create mode 100644 packages/loader/build.config.ts create mode 100644 packages/loader/package.json create mode 100644 packages/loader/src/index.ts create mode 100644 packages/loader/test/index.test.ts create mode 100644 packages/loader/tsconfig.json diff --git a/packages/builder/README.md b/packages/builder/README.md new file mode 100644 index 0000000..d3cbe6a --- /dev/null +++ b/packages/builder/README.md @@ -0,0 +1,7 @@ +# @epubook/builder + +[![version](https://img.shields.io/npm/v/@epubook/builder?color=rgb%2850%2C203%2C86%29&label=@epubook/builder)](https://www.npmjs.com/package/@epubook/builder) [![CI](https://github.com/yjl9903/epubook/actions/workflows/ci.yml/badge.svg)](https://github.com/yjl9903/epubook/actions/workflows/ci.yml) + +## License + +MIT License © 2023 [XLor](https://github.com/yjl9903) diff --git a/packages/builder/build.config.ts b/packages/builder/build.config.ts new file mode 100644 index 0000000..94ed55b --- /dev/null +++ b/packages/builder/build.config.ts @@ -0,0 +1,14 @@ +import { defineBuildConfig } from 'unbuild'; + +import { UnbuildPreset } from './src/unbuild'; + +export default defineBuildConfig({ + entries: ['src/index'], + declaration: true, + clean: true, + externals: ['unbuild', 'rollup'], + rollup: { + emitCJS: true + }, + preset: UnbuildPreset({ inject: false }) +}); diff --git a/packages/builder/package.json b/packages/builder/package.json new file mode 100644 index 0000000..687d432 --- /dev/null +++ b/packages/builder/package.json @@ -0,0 +1,55 @@ +{ + "name": "@epubook/builder", + "version": "0.0.11", + "description": "", + "keywords": [ + "ebook", + "epub", + "epub-generator", + "epubook" + ], + "homepage": "https://github.com/yjl9903/epubook#readme", + "bugs": { + "url": "https://github.com/yjl9903/epubook/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/yjl9903/epubook.git" + }, + "license": "MIT", + "author": "XLor", + "sideEffects": false, + "exports": { + ".": { + "require": "./dist/index.cjs", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "unbuild", + "format": "prettier --write src/**/*.{ts,tsx} test/**/*.{ts,tsx}", + "test": "vitest", + "test:ci": "vitest --run", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "defu": "^6.1.3", + "fast-xml-parser": "^4.3.2", + "fflate": "^0.8.1", + "pathe": "^1.1.1" + }, + "devDependencies": { + "rollup": "^4.5.2", + "vitest": "^0.34.6" + }, + "engines": { + "node": ">=v18.16.0" + } +} \ No newline at end of file diff --git a/packages/builder/src/index.ts b/packages/builder/src/index.ts new file mode 100644 index 0000000..d815786 --- /dev/null +++ b/packages/builder/src/index.ts @@ -0,0 +1 @@ +export const one = 1; diff --git a/packages/builder/test/index.test.ts b/packages/builder/test/index.test.ts new file mode 100644 index 0000000..553ca77 --- /dev/null +++ b/packages/builder/test/index.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from 'vitest'; + +describe('hello', () => { + it('should work', () => { + expect('Hello').toEqual('Hello'); + }); +}); diff --git a/packages/builder/tsconfig.json b/packages/builder/tsconfig.json new file mode 100644 index 0000000..53bb6e8 --- /dev/null +++ b/packages/builder/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["./src/**/*"] +} \ No newline at end of file diff --git a/packages/core/README.md b/packages/core/README.md index 50383ea..bd796a0 100644 --- a/packages/core/README.md +++ b/packages/core/README.md @@ -1,6 +1,6 @@ # @epubook/core -[![version](https://img.shields.io/npm/v/@epubook/core?color=rgb%2850%2C203%2C86%29&label=@epubook/core)](https://www.npmjs.com/package/@epubook/theme-core) [![CI](https://github.com/yjl9903/epubook/actions/workflows/ci.yml/badge.svg)](https://github.com/yjl9903/epubook/actions/workflows/ci.yml) +[![version](https://img.shields.io/npm/v/@epubook/core?color=rgb%2850%2C203%2C86%29&label=@epubook/core)](https://www.npmjs.com/package/@epubook/core) [![CI](https://github.com/yjl9903/epubook/actions/workflows/ci.yml/badge.svg)](https://github.com/yjl9903/epubook/actions/workflows/ci.yml) The fundamental module of [epubook](https://github.com/yjl9903/epubook). It provides low-level API for generating EPUB books. diff --git a/packages/epubook/package.json b/packages/epubook/package.json index 9c25ec8..c2a2b5f 100644 --- a/packages/epubook/package.json +++ b/packages/epubook/package.json @@ -41,7 +41,9 @@ "typecheck": "tsc --noEmit" }, "dependencies": { + "@epubook/builder": "workspace:*", "@epubook/core": "workspace:*", + "@epubook/loader": "workspace:*", "@epubook/theme-default": "workspace:*" }, "devDependencies": { diff --git a/packages/loader/README.md b/packages/loader/README.md new file mode 100644 index 0000000..8f41a1e --- /dev/null +++ b/packages/loader/README.md @@ -0,0 +1,7 @@ +# @epubook/loader + +[![version](https://img.shields.io/npm/v/@epubook/loader?color=rgb%2850%2C203%2C86%29&label=@epubook/loader)](https://www.npmjs.com/package/@epubook/loader) [![CI](https://github.com/yjl9903/epubook/actions/workflows/ci.yml/badge.svg)](https://github.com/yjl9903/epubook/actions/workflows/ci.yml) + +## License + +MIT License © 2023 [XLor](https://github.com/yjl9903) diff --git a/packages/loader/build.config.ts b/packages/loader/build.config.ts new file mode 100644 index 0000000..94ed55b --- /dev/null +++ b/packages/loader/build.config.ts @@ -0,0 +1,14 @@ +import { defineBuildConfig } from 'unbuild'; + +import { UnbuildPreset } from './src/unbuild'; + +export default defineBuildConfig({ + entries: ['src/index'], + declaration: true, + clean: true, + externals: ['unbuild', 'rollup'], + rollup: { + emitCJS: true + }, + preset: UnbuildPreset({ inject: false }) +}); diff --git a/packages/loader/package.json b/packages/loader/package.json new file mode 100644 index 0000000..21dccfa --- /dev/null +++ b/packages/loader/package.json @@ -0,0 +1,55 @@ +{ + "name": "@epubook/loader", + "version": "0.0.11", + "description": "", + "keywords": [ + "ebook", + "epub", + "epub-generator", + "epubook" + ], + "homepage": "https://github.com/yjl9903/epubook#readme", + "bugs": { + "url": "https://github.com/yjl9903/epubook/issues" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/yjl9903/epubook.git" + }, + "license": "MIT", + "author": "XLor", + "sideEffects": false, + "exports": { + ".": { + "require": "./dist/index.cjs", + "import": "./dist/index.mjs", + "types": "./dist/index.d.ts" + } + }, + "main": "./dist/index.cjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "build": "unbuild", + "format": "prettier --write src/**/*.{ts,tsx} test/**/*.{ts,tsx}", + "test": "vitest", + "test:ci": "vitest --run", + "typecheck": "tsc --noEmit" + }, + "dependencies": { + "defu": "^6.1.3", + "fast-xml-parser": "^4.3.2", + "fflate": "^0.8.1", + "pathe": "^1.1.1" + }, + "devDependencies": { + "rollup": "^4.5.2", + "vitest": "^0.34.6" + }, + "engines": { + "node": ">=v18.16.0" + } +} \ No newline at end of file diff --git a/packages/loader/src/index.ts b/packages/loader/src/index.ts new file mode 100644 index 0000000..d815786 --- /dev/null +++ b/packages/loader/src/index.ts @@ -0,0 +1 @@ +export const one = 1; diff --git a/packages/loader/test/index.test.ts b/packages/loader/test/index.test.ts new file mode 100644 index 0000000..553ca77 --- /dev/null +++ b/packages/loader/test/index.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from 'vitest'; + +describe('hello', () => { + it('should work', () => { + expect('Hello').toEqual('Hello'); + }); +}); diff --git a/packages/loader/tsconfig.json b/packages/loader/tsconfig.json new file mode 100644 index 0000000..53bb6e8 --- /dev/null +++ b/packages/loader/tsconfig.json @@ -0,0 +1,4 @@ +{ + "extends": "../../tsconfig.json", + "include": ["./src/**/*"] +} \ No newline at end of file diff --git a/packages/theme-default/package.json b/packages/theme-default/package.json index 123bd7e..05d7342 100644 --- a/packages/theme-default/package.json +++ b/packages/theme-default/package.json @@ -41,7 +41,8 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "@epubook/core": "workspace:*" + "@epubook/core": "workspace:*", + "@epubook/builder": "workspace:*" }, "devDependencies": { "@types/node": "^20.10.0" @@ -56,4 +57,4 @@ ], "images": [] } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 008824d..e86b9dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,6 +30,28 @@ importers: specifier: ^0.34.6 version: 0.34.6 + packages/builder: + dependencies: + defu: + specifier: ^6.1.3 + version: 6.1.3 + fast-xml-parser: + specifier: ^4.3.2 + version: 4.3.2 + fflate: + specifier: ^0.8.1 + version: 0.8.1 + pathe: + specifier: ^1.1.1 + version: 1.1.1 + devDependencies: + rollup: + specifier: ^4.5.2 + version: 4.5.2 + vitest: + specifier: ^0.34.6 + version: 0.34.6 + packages/cli: dependencies: '@epubook/core': @@ -67,9 +89,15 @@ importers: packages/epubook: dependencies: + '@epubook/builder': + specifier: workspace:* + version: link:../builder '@epubook/core': specifier: workspace:* version: link:../core + '@epubook/loader': + specifier: workspace:* + version: link:../loader '@epubook/theme-default': specifier: workspace:* version: link:../theme-default @@ -78,8 +106,33 @@ importers: specifier: ^0.34.6 version: 0.34.6 + packages/loader: + dependencies: + defu: + specifier: ^6.1.3 + version: 6.1.3 + fast-xml-parser: + specifier: ^4.3.2 + version: 4.3.2 + fflate: + specifier: ^0.8.1 + version: 0.8.1 + pathe: + specifier: ^1.1.1 + version: 1.1.1 + devDependencies: + rollup: + specifier: ^4.5.2 + version: 4.5.2 + vitest: + specifier: ^0.34.6 + version: 0.34.6 + packages/theme-default: dependencies: + '@epubook/builder': + specifier: workspace:* + version: link:../builder '@epubook/core': specifier: workspace:* version: link:../core @@ -776,12 +829,6 @@ packages: undici-types: 5.26.5 dev: true - /@types/node@20.9.2: - resolution: {integrity: sha512-WHZXKFCEyIUJzAwh3NyyTHYSR35SevJ6mZ1nWwJafKtiQbqRTIKSRcw3Ma3acqgsent3RRDqeVwpHntMk+9irg==} - dependencies: - undici-types: 5.26.5 - dev: true - /@types/resolve@1.20.2: resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} dev: true @@ -2004,7 +2051,7 @@ packages: picocolors: 1.0.0 dev: true - /vite-node@0.34.6(@types/node@20.9.2): + /vite-node@0.34.6(@types/node@20.10.0): resolution: {integrity: sha512-nlBMJ9x6n7/Amaz6F3zJ97EBwR2FkzhBRxF5e+jE6LA3yi6Wtc2lyTij1OnDMIr34v5g/tVQtsVAzhT0jc5ygA==} engines: {node: '>=v14.18.0'} hasBin: true @@ -2014,7 +2061,7 @@ packages: mlly: 1.4.2 pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.0.2(@types/node@20.9.2) + vite: 5.0.2(@types/node@20.10.0) transitivePeerDependencies: - '@types/node' - less @@ -2026,42 +2073,6 @@ packages: - terser dev: true - /vite@5.0.0(@types/node@20.9.2): - resolution: {integrity: sha512-ESJVM59mdyGpsiNAeHQOR/0fqNoOyWPYesFto8FFZugfmhdHx8Fzd8sF3Q/xkVhZsyOxHfdM7ieiVAorI9RjFw==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.9.2 - esbuild: 0.19.6 - postcss: 8.4.31 - rollup: 4.5.2 - optionalDependencies: - fsevents: 2.3.3 - dev: true - /vite@5.0.2(@types/node@20.10.0): resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==} engines: {node: ^18.0.0 || >=20.0.0} @@ -2098,42 +2109,6 @@ packages: fsevents: 2.3.3 dev: true - /vite@5.0.2(@types/node@20.9.2): - resolution: {integrity: sha512-6CCq1CAJCNM1ya2ZZA7+jS2KgnhbzvxakmlIjN24cF/PXhRMzpM/z8QgsVJA/Dm5fWUWnVEsmtBoMhmerPxT0g==} - engines: {node: ^18.0.0 || >=20.0.0} - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.9.2 - esbuild: 0.19.6 - postcss: 8.4.31 - rollup: 4.5.2 - optionalDependencies: - fsevents: 2.3.3 - dev: true - /vitest@0.34.6: resolution: {integrity: sha512-+5CALsOvbNKnS+ZHMXtuUC7nL8/7F1F2DnHGjSsszX8zCjWSSviphCb/NuS9Nzf4Q03KyyDRBAXhF/8lffME4Q==} engines: {node: '>=v14.18.0'} @@ -2167,7 +2142,7 @@ packages: dependencies: '@types/chai': 4.3.10 '@types/chai-subset': 1.3.5 - '@types/node': 20.9.2 + '@types/node': 20.10.0 '@vitest/expect': 0.34.6 '@vitest/runner': 0.34.6 '@vitest/snapshot': 0.34.6 @@ -2186,8 +2161,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.7.0 - vite: 5.0.0(@types/node@20.9.2) - vite-node: 0.34.6(@types/node@20.9.2) + vite: 5.0.2(@types/node@20.10.0) + vite-node: 0.34.6(@types/node@20.10.0) why-is-node-running: 2.2.2 transitivePeerDependencies: - less