Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
GeekaN2 authored Nov 27, 2024
0 parents commit 7127808
Show file tree
Hide file tree
Showing 25 changed files with 5,024 additions and 0 deletions.
13 changes: 13 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
indent_size = 4
trim_trailing_whitespace = false
70 changes: 70 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: CI

on: push

jobs:
lint-test:
runs-on: ubuntu-20.04
steps:
- name: Checkout repository
uses: actions/checkout@v2

- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version-file: .nvmrc
registry-url: 'https://registry.npmjs.org'
scope: '@codexteam'

- name: Restore Yarn cache
uses: actions/cache@v3
id: yarn-cache
with:
path: .yarn/cache
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Enable Corepack
run: corepack enable

- name: Use specified Yarn version
run: corepack prepare [email protected] --activate

- name: Install dependecies
run: yarn install

- name: Test Eslint
run: yarn lint

- name: Run unit tests
run: yarn test

# - name: Build library
# run: yarn build

# - name: Publish library
# if: ${{ github.ref == 'refs/heads/main' }}
# run: yarn publish --access=public
# env:
# NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

# notify:
# needs: lint-test-build-publish
# if: github.ref == 'refs/heads/main'
# runs-on: ubuntu-20.04
# steps:
# - name: Checkout repository
# uses: actions/checkout@v2

# - name: Get package info
# id: package
# uses: codex-team/action-nodejs-package-info@v1

# - name: Send a message
# uses: codex-team/action-codexbot-notify@v1
# with:
# webhook: ${{ secrets.CODEX_BOT_WEBHOOK }}
# message: '📦 [${{ steps.package.outputs.name }}](${{ steps.package.outputs.npmjs-link }}) ${{ steps.package.outputs.version }} was published'
# parse_mode: 'markdown'
# disable_web_page_preview: true
123 changes: 123 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
# Created by .ignore support plugin (hsz.mobi)
### Node template
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# Snowpack dependency directory (https://snowpack.dev/)
web_modules/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next
out

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Stores VSCode versions used for testing VSCode extensions
.vscode-test

# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# IDE
.idea

build
10 changes: 10 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.idea/
node_modules
tests/
.git
.github
yarn.lock
eslint.config.mjs
vitest.config.ts
vitest.workspace.ts
*.test.ts
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v22.1.0
1 change: 1 addition & 0 deletions .yarnrc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nodeLinker: node-modules
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2021 CodeX

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
38 changes: 38 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# @codexteam/typescript-lib-template
A quick start template for a new TypeScript library

[![NPM version](https://img.shields.io/npm/v/@codexteam/typescript-lib-template?style=flat-square)](https://www.npmjs.com/package/@codexteam/typescript-lib-template)
[![License](https://img.shields.io/npm/l/@codexteam/typescript-lib-template?style=flat-square)](https://www.npmjs.com/package/@codexteam/typescript-lib-template)

## Features

- 💄 Yarn 4
- 🛍️ Yarn Workspaces
- 💎 ESLint 9 with [eslint-config-codex](http://github.com/codex-team/eslint-config/)
- 🥃 Typescript 5
- 🥊 npx only-allow yarn
- 🌶️ Tests with [Vitest](https://vitest.dev)
- 🍀 GitHub Actions for test/lint/build/publish purposes

## How to use
1. Click [here](https://github.com/codex-team/typescript-lib-template/generate) and fill setting for new repository
2. Update root package `package.json`, change main package name
3. Update "core" package `package.json`:
1. Change `name`
2. Adjust `main`, `types`, `exports`
5. Change name of `packages/core` to your main package name
5. Go to `packages/utils` and adjust its name or remove the package if you don't need it
3. Change NPM package scope from [workflow file](./.github/workflows/main.yml) or remove it
4. Fill `NPM_TOKEN` and `CODEX_BOT_WEBHOOK` secrets in your repository or organization settings
5. Start writing your new library!

# About CodeX

<img align="right" width="120" height="120" src="https://codex.so/public/app/img/codex-logo.svg" hspace="50">

CodeX is a team of digital specialists around the world interested in building high-quality open source products on a global market. We are [open](https://codex.so/join) for young people who want to constantly improve their skills and grow professionally with experiments in cutting-edge technologies.

| 🌐 | Join 👋 | Twitter | Instagram |
| -- | -- | -- | -- |
| [codex.so](https://codex.so) | [codex.so/join](https://codex.so/join) |[@codex_team](http://twitter.com/codex_team) | [@codex_team](http://instagram.com/codex_team/) |

37 changes: 37 additions & 0 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
import CodeX from 'eslint-config-codex';
import { plugin as TsPlugin, parser as TsParser } from 'typescript-eslint';
import path from 'path';
import { fileURLToPath } from 'url';
import EslintTestsConfig from './eslint.config.test.mjs';

const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);

export default [
...CodeX,
...EslintTestsConfig,
{
name: 'codex-lib-ts',
ignores: [
// 'eslint.config.mjs',
],
plugins: {
'@typescript-eslint': TsPlugin,
},

/**
* This are the options for typescript files
*/
languageOptions: {
parser: TsParser,
parserOptions: {
project: path.resolve(__dirname, 'tsconfig.json'),
tsconfigRootDir: './',
sourceType: 'module',
},
},

rules: {
},
},
];
11 changes: 11 additions & 0 deletions eslint.config.test.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
export default [
{
name: 'codex-lib-tests',
files: [
'packages/**/*.test.ts',
],
rules: {
'n/no-missing-import': 'off',
},
},
];
32 changes: 32 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"name": "@codexteam/typescript-lib-template",
"version": "2.0.0",
"description": "A quick start template for a new TypeScript library",
"repository": "https://github.com/codex-team/typescript-lib-template.git",
"author": "CodeX <[email protected]>",
"license": "MIT",
"engines": {
"node": ">=22.0.0"
},
"workspaces": [
"packages/*"
],
"scripts": {
"clean": "rimraf -g \"packages/**/dist\" \"packages/**/*.tsbuildinfo\"",
"lint": "yarn workspaces foreach -A run lint",
"lint:fix": "yarn workspaces foreach -A run lint --fix",
"test": "vitest --watch=false",
"coverage": "vitest --watch=false --coverage",
"preinstall": "npx only-allow yarn"
},
"devDependencies": {
"eslint": "^9.14.0",
"eslint-config-codex": "^2.0.3",
"rimraf": "^6.0.1",
"ts-node": "^10.9.2",
"typescript": "^5.6.3",
"typescript-eslint": "^8.13.0",
"vitest": "^2.1.4"
},
"packageManager": "[email protected]"
}
3 changes: 3 additions & 0 deletions packages/core/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# @codexteam/typescript-lib-template Core

This package contains the core of the library
Loading

0 comments on commit 7127808

Please sign in to comment.