Initial commit

This commit is contained in:
Pablo Baleztena 2024-09-04 19:12:43 -03:00
commit 37df98d09c
24 changed files with 4491 additions and 0 deletions

4
.gitattributes vendored Normal file
View File

@ -0,0 +1,4 @@
/.yarn/** linguist-vendored
/.yarn/releases/* binary
/.yarn/plugins/**/* binary
* text=auto eol=lf

13
.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/sdks
!.yarn/versions
node_modules
.env
dist
coverage
.DS_Store

2
.husky/pre-commit Normal file
View File

@ -0,0 +1,2 @@
# .husky/pre-commit
yarn lint-staged

4
.lintstagedrc.json Normal file
View File

@ -0,0 +1,4 @@
{
"*": ["yarn prettier -u --write"],
"*.ts": ["yarn eslint --fix"]
}

4
.prettierignore Normal file
View File

@ -0,0 +1,4 @@
dist
coverage
.yarn/**/*
yarn.lock

3
.prettierrc Normal file
View File

@ -0,0 +1,3 @@
{
"tabWidth": 2
}

14
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,14 @@
{
"recommendations": [
"bierner.github-markdown-preview",
"bradlc.vscode-tailwindcss",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"streetsidesoftware.code-spell-checker",
"streetsidesoftware.code-spell-checker-spanish",
"usernamehw.errorlens",
"bourhaouta.tailwindshades",
"austenc.tailwind-docs",
"vitest.explorer"
]
}

21
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,21 @@
{
"cSpell.enabled": true,
"cSpell.language": "en,es",
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"files.autoSave": "off",
"files.eol": "\n",
"javascript.preferences.importModuleSpecifierEnding": "js",
"editor.codeActionsOnSave": {
"source.fixAll": "always",
"source.organizeImports": "always"
},
"search.exclude": {
"**/.yarn": true,
"**/node_modules": true,
"packages/frontend/{android,ios}": true
},
"typescript.preferences.importModuleSpecifierEnding": "js",
"cSpell.words": ["autodocs", "Syntropy"],
"typescript.preferences.autoImportFileExcludePatterns": ["**/chai/**"]
}

925
.yarn/releases/yarn-4.4.1.cjs vendored Normal file

File diff suppressed because one or more lines are too long

2
.yarnrc.yml Normal file
View File

@ -0,0 +1,2 @@
yarnPath: .yarn/releases/yarn-4.4.1.cjs
nodeLinker: node-modules

1
README.md Normal file
View File

@ -0,0 +1 @@
# ulthar-framework

0
apps/.gitkeep Normal file
View File

10
eslint.config.js Normal file
View File

@ -0,0 +1,10 @@
// @ts-check
import eslint from "@eslint/js";
import tseslint from "typescript-eslint";
export default tseslint.config(
eslint.configs.recommended,
...tseslint.configs.strict,
...tseslint.configs.stylistic,
);

33
package.json Normal file
View File

@ -0,0 +1,33 @@
{
"name": "ulthar-framework",
"packageManager": "yarn@4.4.1",
"version": "1.0.0",
"private": true,
"type": "module",
"workspaces": [
"packages/**/*",
"apps/**/*"
],
"devDependencies": {
"@eslint/js": "^9.9.1",
"@types/eslint": "^9.6.1",
"@types/eslint__js": "^8.42.3",
"cross-env": "^7.0.3",
"eslint": "^9.9.1",
"husky": "^9.1.5",
"lint-staged": "^15.2.10",
"prettier": "^3.3.3",
"tsx": "^4.19.0",
"typescript": "^5.5.4",
"typescript-eslint": "^8.4.0",
"zx": "^8.1.5"
},
"scripts": {
"lint": "eslint . --fix --report-unused-disable-directives",
"format": "prettier --write .",
"test": "yarn workspaces foreach -vvpA run test --run --clearScreen false",
"build": "yarn workspaces foreach -vvpA --topological-dev run build",
"add-package": "tsx ./scripts/add-package.ts",
"postinstall": "husky"
}
}

View File

@ -0,0 +1 @@
# lib-template

View File

@ -0,0 +1,19 @@
{
"name": "@ulthar/lib-template",
"type": "module",
"module": "dist/index.js",
"main": "dist/index.js",
"files": [
"dist"
],
"private": true,
"packageManager": "yarn@4.1.1",
"devDependencies": {
"typescript": "^5.5.4",
"vitest": "^2.0.5"
},
"scripts": {
"test": "vitest",
"build": "tsc -p tsconfig.build.json"
}
}

View File

View File

@ -0,0 +1,15 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"noEmit": false,
"allowImportingTsExtensions": false,
"outDir": "dist"
},
"exclude": [
"src/**/*.spec.ts",
"dist",
"node_modules",
"coverage",
"vitest.config.ts"
]
}

View File

@ -0,0 +1,4 @@
{
"extends": "../../../tsconfig.json",
"exclude": ["dist", "node_modules"]
}

View File

@ -0,0 +1,10 @@
import { defineConfig } from "vitest/config";
export default defineConfig({
test: {
coverage: {
exclude: ["**/index.ts"],
},
passWithNoTests: true,
},
});

24
scripts/add-package.ts Normal file
View File

@ -0,0 +1,24 @@
import "zx/globals";
if (process.argv.length < 3) {
console.log("Usage: add-package.ts <package-name>");
process.exit(1);
}
const packagePath = process.argv[2];
const packageName = path.basename(packagePath);
await $`yarn packages/${packagePath} init`;
await $`cp -r packages/templates/lib/* packages/${packagePath}`;
await Promise.all(
fs.readdirSync(`packages/${packagePath}`).map(async (file) => {
if (fs.statSync(`packages/${packagePath}/${file}`).isFile()) {
await $`sed -i 's/lib-template/${packageName}/g' packages/${packagePath}/${file}`;
}
}),
);
await $`yarn install`;

35
tsconfig.json Normal file
View File

@ -0,0 +1,35 @@
{
"compilerOptions": {
/* Visit https://aka.ms/tsconfig to read more about this file */
/* Projects */
/* Language and Environment */
"target": "ESNext",
/* Modules */
"module": "NodeNext",
"moduleResolution": "NodeNext",
/* JavaScript Support */
"allowJs": true,
/* Emit */
"declaration": true,
"declarationMap": true,
"noEmit": true,
/* Interop Constraints */
"isolatedModules": true,
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
/* Type Checking */
"strict": true,
/* Completeness */
"skipDefaultLibCheck": true,
"skipLibCheck": true
}
}

1
vitest.workspace.js Normal file
View File

@ -0,0 +1 @@
export default ["apps/**/vitest.config.ts", "packages/**/vitest.config.ts"];

3346
yarn.lock Normal file

File diff suppressed because it is too large Load Diff