Skip to content

Commit 13d608d

Browse files
committed
refactor: extract algorithms pkg
Signed-off-by: Andres Correa Casablanca <castarco@coderspirit.xyz>
1 parent 298e78f commit 13d608d

17 files changed

+356
-35
lines changed

.github/workflows/tests-react-svg.yml renamed to .github/workflows/tests.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,17 @@ jobs:
4343
if: ${{ matrix.os == 'ubuntu-22.04' }}
4444
run: pnpm --filter types run lint
4545

46+
# @beautiful-tree/algorithms
47+
- name: (Algorithms) Install dependencies
48+
run: pnpm --filter algorithms install
49+
- name: (Algorithms) Build Library
50+
run: pnpm --filter algorithms run build
51+
- name: (Algorithms) Run Linters
52+
if: ${{ matrix.os == 'ubuntu-22.04' }}
53+
run: pnpm --filter algorithms run lint
54+
- name: (Algorithms) Run Tests
55+
run: pnpm --filter algorithms run test:coverage
56+
4657
# @beautiful-tree/react
4758
- name: (React SVG) Install dependencies
4859
run: pnpm --filter react install
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
'use strict';
2+
3+
module.exports = {
4+
root: true,
5+
env: {
6+
es2020: true,
7+
},
8+
parser: '@typescript-eslint/parser',
9+
parserOptions: {
10+
ecmaVersion: 2020,
11+
sourceType: 'module',
12+
tsConfigRootDir: __dirname,
13+
project: ['./tsconfig.json'],
14+
},
15+
extends: [
16+
'@coderspirit',
17+
],
18+
ignorePatterns: [
19+
'.eslintrc.cjs',
20+
'dist/**/*',
21+
'node_modules/**/*',
22+
]
23+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import config from '@coderspirit/eslint-config/prettier'
2+
3+
export default config
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
{
2+
"name": "@beautiful-tree/algorithms",
3+
"version": "0.2.0",
4+
"private": false,
5+
"author": "Andres Correa Casablanca <castarco@coderspirit.xyz>",
6+
"license": "MIT",
7+
"main": "./dist/main.big.cjs",
8+
"module": "./dist/main.big.mjs",
9+
"types": "./dist/main.d.cts",
10+
"exports": {
11+
".": {
12+
"import": {
13+
"types": "./dist/main.d.mts",
14+
"default": "./dist/main.big.mjs"
15+
},
16+
"require": {
17+
"types": "./dist/main.d.cts",
18+
"default": "./dist/main.big.cjs"
19+
},
20+
"browser": "./dist/main.big.iife.js",
21+
"default": "./dist/main.big.umd.js"
22+
},
23+
"./min": {
24+
"import": {
25+
"types": "./dist/main.d.mts",
26+
"default": "./dist/main.min.mjs"
27+
},
28+
"require": {
29+
"types": "./dist/main.d.cts",
30+
"default": "./dist/main.min.cjs"
31+
},
32+
"browser": "./dist/main.min.iife.js",
33+
"default": "./dist/main.min.umd.js"
34+
}
35+
},
36+
"files": [
37+
"dist"
38+
],
39+
"scripts": {
40+
"build": "rm -rf dist && rollup --config rollup.config.prod.mjs",
41+
"build-storybook": "storybook build",
42+
"lint": "tsc && eslint . --ext ts,mts,tsx --report-unused-disable-directives --max-warnings 0 && publint",
43+
"lint:eslint": "eslint . --ext ts,mts,tsx --report-unused-disable-directives --max-warnings 0",
44+
"lint:publint": "publint",
45+
"lint:tsc": "tsc",
46+
"test": "vitest run",
47+
"test:coverage": "vitest run --coverage",
48+
"test:watch": "vitest",
49+
"prepublishOnly": "pnpm run build"
50+
},
51+
"devDependencies": {
52+
"@arethetypeswrong/cli": "^0.10.2",
53+
"@beautiful-tree/types": "workspace:0.2.0",
54+
"@coderspirit/eslint-config": "^1.2.1",
55+
"@rollup/plugin-terser": "^0.4.3",
56+
"@rollup/plugin-typescript": "^11.1.3",
57+
"@types/node": "^20.6.1",
58+
"@typescript-eslint/parser": "^6.7.0",
59+
"@vitest/coverage-v8": "^0.34.4",
60+
"eslint": "^8.49.0",
61+
"prettier": "^3.0.3",
62+
"publint": "^0.2.2",
63+
"rollup": "^3.29.1",
64+
"rollup-plugin-dts": "^5.3.1",
65+
"tslib": "^2.6.2",
66+
"typescript": "^5.2.2",
67+
"vitest": "^0.34.4"
68+
}
69+
}
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
import { defineConfig } from 'rollup'
2+
import dts from 'rollup-plugin-dts'
3+
import pluginTs from '@rollup/plugin-typescript'
4+
import terser from '@rollup/plugin-terser'
5+
6+
const name = 'BeautifulTreeAlgos'
7+
const input = 'src/main.ts'
8+
9+
export default defineConfig([
10+
{
11+
input,
12+
output: [
13+
{
14+
file: 'dist/main.big.cjs',
15+
format: 'cjs',
16+
sourcemap: true,
17+
},
18+
{
19+
file: 'dist/main.big.mjs',
20+
format: 'es',
21+
sourcemap: true,
22+
},
23+
{
24+
name,
25+
file: 'dist/main.big.iife.js',
26+
format: 'iife',
27+
sourcemap: true,
28+
},
29+
{
30+
name,
31+
file: 'dist/main.big.umd.js',
32+
format: 'umd',
33+
sourcemap: true,
34+
},
35+
],
36+
plugins: [pluginTs()],
37+
},
38+
{
39+
input,
40+
output: [
41+
{
42+
file: 'dist/main.min.cjs',
43+
format: 'cjs',
44+
sourcemap: true,
45+
},
46+
{
47+
file: 'dist/main.min.mjs',
48+
format: 'es',
49+
sourcemap: true,
50+
},
51+
{
52+
name,
53+
file: 'dist/main.min.iife.js',
54+
format: 'iife',
55+
sourcemap: true,
56+
},
57+
{
58+
name,
59+
file: 'dist/main.min.umd.js',
60+
format: 'umd',
61+
sourcemap: true,
62+
},
63+
],
64+
plugins: [pluginTs(), terser()],
65+
},
66+
{
67+
input,
68+
output: [
69+
{ format: 'cjs', file: 'dist/main.d.cts' },
70+
{ format: 'es', file: 'dist/main.d.mts' },
71+
],
72+
plugins: [dts({ respectExternal: true })],
73+
},
74+
])
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export type { WrappedTreeWithLayout } from './layouts'
2+
export { computeNaiveLayout, computeSmartLayout } from './layouts'
3+
export { edgesIterator, postOrderIterator } from './traversal'

0 commit comments

Comments
 (0)