ts-nameof
di-compiler
ts-nameof | di-compiler | |
---|---|---|
1 | 2 | |
489 | 77 | |
- | - | |
0.0 | 3.9 | |
about 1 year ago | 9 months ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ts-nameof
-
Creating an axios service wrapper (in Vue)
// src/services/lps/SynonymGroupApiService.ts import type { SynonymGroup } from '@/shared/models/entities/Synonym'; import type { Pageable, Sort } from '@/shared/requests/Pageable'; import type { Search } from '@/shared/requests/Search'; import type { Page } from '@/shared/responses/Page'; import { ServiceCacher } from '../ServiceCacher'; import { AbstractLpsApiService } from './LpsApiService'; export interface SynonymGroupFilter extends Search, Pageable, Sort {} class SynonymGroupApiService extends AbstractLpsApiService { public constructor(lpsPortalUrl: string) { super('/synonym-groups', lpsPortalUrl); } public findAllPaged({ search }: SynonymGroupFilter = {}): Promise> { return this.http.get('', { params: { search } }) .then(this.handleResponse.bind(this)) .catch(this.handleError.bind(this)); } public findById(id: number): Promise { return this.http.get(`/${id}`) .then(this.handleResponse.bind(this)) .catch(this.handleError.bind(this)); } public create(content: SynonymGroup): Promise { return this.http.post('', content) .then(this.handleResponse.bind(this)) .catch(this.handleError.bind(this)); } public update(id: number, content: SynonymGroup): Promise { return this.http.put(`/${id}`, content) .then(this.handleResponse.bind(this)) .catch(this.handleError.bind(this)); } public delete(id: number): Promise { return this.http.delete(`/${id}`) .then(this.handleResponse.bind(this)) .catch(this.handleError.bind(this)); } } const serviceCacher: ServiceCacher = new ServiceCacher( nameof(), // https://github.com/dsherret/ts-nameof SynonymGroupApiService ); export function synonymGroupApiService(baseUrl: string): SynonymGroupApiService { return serviceCacher.instance(baseUrl); }
di-compiler
-
Typesafe, (almost) Zero Cost Dependency Injection in TypeScript
DI-compiler
-
Generating Trees Images on Canvas Using L-Systems, TypeScript and OOP
The custom di transformer replaces interfaces with according class instances. In the future, we will explicitly define which class should implement a particular interface.
What are some alternatives?
ttypescript - Over TypeScript tool to use custom transformers in the tsconfig.json
reflect-metadata - Prototype for a Metadata Reflection API for ECMAScript
compiled-css-in-js - A familiar and performant compile time CSS-in-JS library for React. [Moved to: https://github.com/atlassian-labs/compiled]
injection-js - Dependency injection library for JavaScript and TypeScript in 5.1K. It is an extraction of the Angular's ReflectiveInjector which means that it's well designed, feature complete, fast, reliable and well tested.
nornj - More exciting JS/JSX based on Template Engine, support control flow tags, custom directives, two-way binding, filters and custom operators.
di - Dependency injection library for TypeScript projects.
genioc - Bloat-free and magical IoC-container for Typescript based on code-generation
typed-inject - Type safe dependency injection for TypeScript
di - A compile-time powered Dependency-Injection container for Typescript that holds services and can produce instances of them as required.
diod - A very opinionated inversion of control (IoC) container and dependency injector for Typescript, Node.js or browser apps.
typedi - Simple yet powerful dependency injection tool for JavaScript and TypeScript.
tsyringe - Lightweight dependency injection container for JavaScript/TypeScript