npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@serverkit-lib/executable-boilerplate

v0.0.67

Published

Serverkit Compiler Module Package - Executable Boilerplate

Readme

Result-Use-Module

version Node.js build license

소개

이 모듈(executable-boilerplate)은 컴파일 프로젝트에서 유저가 생성한 서버를 만들기 위한 기능들을 제공합니다.


DBM 기능 소개

DBM의 경우 DB를 생성할 dbconfig 데이터와 테이블을 생성할 TableInfo의 정보가 필요합니다.

컴파일을 할 때 DB의 정보는 dbconfig에 맞게 데이터를 받아야 합니다.

DB를 생성할 때 필요한 정보입니다.

const netdata: CNet_DBSet = new CNet_DBSet(IConnectionBase, ClientDbm);
netdata.PrismaSetting();

IConnectionBase는 사용하는 DB에 따라 SQLite와 PostgreSQL로 나뉩니다.

export enum DBProvider {
    SQLite = 0,
    PostgreSQL = 1
}

// 데이터베이스 연결 정보를 나타내는 기본 인터페이스
export interface IConnectionBase {
    provider: DBProvider; // 데이터베이스 제공자 (e.g., 0: SQLite, 1: PostgreSQL)
}

// SQLite 데이터베이스 연결 정보를 나타내는 인터페이스
export interface IConnectionSqlite extends IConnectionBase {
    fileName: string; // SQLite 데이터베이스 파일 이름
}

// PostgreSQL 데이터베이스 연결 정보를 나타내는 인터페이스
export interface IConnectionPostgreSql extends IConnectionBase {
    id: string; // PostgreSQL 사용자 ID
    password: string; // PostgreSQL 비밀번호
    url: string; // PostgreSQL 호스트 URL
    port: number; // PostgreSQL 포트
    database: string; // PostgreSQL 데이터베이스 이름
}

1. 공통 부분 (Asset)

export interface Asset {
    id: string;
    name: string;
    fileFormatVersion: string;
    ideFormatVersion: string;
    description: string;
}

DBM 주요 인터페이스 설명

1. DbmAsset

export interface DbmAsset extends Asset {
    data: ClientDbm;
}

2. ClientDbm

export interface ClientDbm {
    tableName: string; // 테이블의 이름
    fields: SCM.IDBField; // Model을 구성하는 Field의 정보
}

3. IDBField

export interface IDBField {
    name: string; // 컬럼 이름
    type: string; // 자료형
    attribute: IAttribute; // 제약사항
    next?: IDBField[]; // relation의 경우 추가되는 Model
    configs?: IDbConfig; // config 정보
}

4. IAttribute

export interface IAttribute {
    canBeNull: boolean; // null 허용 여부
    isArray: boolean; // List 여부
}

5. IDbConfig

export interface IDbConfig {
    defaultValue?: string; // 기본값
    isUnique?: boolean; // 유니크 체크 여부
}

VQM 기능 소개

executable-boilerplate의 VQM namespace는 .vqm 확장자가 지정한 Visual Query를 생성하고 동적 module을 하기 위한 기능입니다.

let querymanager: CVisualQueryManager = new CVisualQueryManager(IVisualQueryPhaseList[]);

// js 파일 생성
const buildList: Array<IBuildJSData> = querymanager.VQBuildJS();

for (const build of buildList) {
    fs.writeFileSync(path.join(prismapath, `${build.fileName}`), build.buildData);
}

const index_str = querymanager.VQIndexJS();
fs.writeFileSync(path.join(prismapath, "index.js"), index_str);

const global_prisma = querymanager.VQGlobalPrisma();
fs.writeFileSync(path.join(prismapath, "prisma.js"), global_prisma);

CVisualQueryManager는 VQM의 모든 상황을 담당하는 클래스입니다.

CVisualQueryManager의 매개변수로 IVisualQueryPhaseList에 대한 정보가 필요합니다. 자세한 내용은 [컴파일 인터페이스]의 VQM을 참고하세요.

VQM 주요 함수 설명

  1. VQIndexJS()

    • 위에서 생성된 모듈을 정리하여 포함하는 index.js 파일을 생성하는 함수입니다.
  2. VQGlobalPrisma()

    • 모듈에서 사용할 Prisma를 글로벌 변수로 사용하기 위한 파일을 생성하는 함수입니다.

VQM 주요 인터페이스 설명

1. VqmAsset

export interface VqmAsset extends Asset {
    data: VQM.IVisualQueryPhaseList;
}

2. IVisualQueryPhaseList

export interface IVisualQueryPhaseList {
    functionName: string; // 모듈 이름
    parameterRecord: Record<string, string>; // 모듈 파라미터
    returnRecord: Record<string, string>; // 모듈 반환값
    PhaseList: Array<IVisualQueryPhase>; // Phase 리스트
}

3. IVisualQueryPhase

export interface IVisualQueryPhase {
    ModelName: string; // 사용하는 Model 이름
    Action: string; // DB Action 종류
    PhaseName: string; // Phase 이름
    FilterList?: Array<IVisualQueryFilterGroup>; // 조건문
    CreateData?: IVBisualQueryData; // 데이터 생성
    UpdateData?: IVBisualQueryData; // 데이터 업데이트
    UniqueData?: IVisualQueryUniqueData; // 유니크 키로 데이터 찾기
    Select?: Array<string>; // 조회 컬럼
    Include?: Array<string>; // 관계 연결
    Aggregate?: IVisualQueryAggregate; // 집계 함수
    GroupBy?: Array<string>; // 그룹화
    Having?: string; // 조건 연결
}

4. IVisualQueryFilterGroup

export interface IVisualQueryFilterGroup {
    AND?: IVisualQueryFilterCondition[];
    OR?: IVisualQueryFilterCondition[];
    Filter_AND?: number[];
    Filter_OR?: number[];
}

5. IVisualQueryFilterCondition

export interface IVisualQueryFilterCondition {
    columns: string; // 컬럼 이름
    operator: string; // 연산자
    param: string | null; // 매개변수
    types: string; // 데이터 타입
    returnPhase?: string; // 반환 Phase
}

6. IVBisualQueryData

export interface IVBisualQueryData {
    [key: string]: IVisualQueryCreateDynamicData | string;
}

7. IVisualQueryCreateDynamicData

export interface IVisualQueryCreateDynamicData {
    keyName: string; // 변수명
    keyType: string; // 변수 타입
    isNull?: boolean; // null 허용 여부
    data?: IVBisualQueryData | string;
}

8. IVisualQueryUniqueData

export interface IVisualQueryUniqueData {
    uniqueName: string; // 유니크 컬럼
    valueData: string; // 매개변수 값
}

9. IVisualQueryAggregate

export interface IVisualQueryAggregate {
    Sum?: Array<IVisualQueryAggregateDynamicData>;
    Count?: Array<IVisualQueryAggregateDynamicData>;
    Min?: Array<IVisualQueryAggregateDynamicData>;
    Max?: Array<IVisualQueryAggregateDynamicData>;
    Avg?: Array<IVisualQueryAggregateDynamicData>;
}

10. IVisualQueryAggregateDynamicData

export interface IVisualQueryAggregateDynamicData {
    columns: string; // 컬럼 이름
    operator?: string; // 연산자
    param?: string; // 매개변수
}