{"id":40585,"library":"arkormx","title":"Arkormˣ","description":"Arkormˣ (v2.4.2) is a modern TypeScript-first ORM for Node.js with an adapter-based architecture. It provides a familiar model layer, fluent query builder, and transaction support, framework-agnostic and runtime-agnostic. Key differentiators: optional Prisma 2.x compatibility path (allows using existing Prisma schema and client), Kysely adapter for raw SQL, and an intuitive Eloquent-like API. Stable release cadence (minor updates every few weeks). Requires Node >=20.0.0 and relies on 'kysely' and 'pg' for database connectivity.","status":"active","version":"2.4.2","language":"javascript","source_language":"en","source_url":"https://github.com/arkstack-tmp/arkormx","tags":["javascript","orm","database","typescript","nodejs","sql","query builder","migration","seeding"],"install":[{"cmd":"npm install arkormx","lang":"bash","label":"npm"},{"cmd":"yarn add arkormx","lang":"bash","label":"yarn"},{"cmd":"pnpm add arkormx","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Runtime adapter for query building and execution","package":"kysely","optional":false},{"reason":"PostgreSQL client for database connection","package":"pg","optional":true}],"imports":[{"note":"ESM-only; no CommonJS support.","wrong":"const { Model } = require('arkormx')","symbol":"Model","correct":"import { Model } from 'arkormx'"},{"note":"Direct export, not a subpath.","wrong":"import { createKyselyAdapter } from 'arkormx/adapter'","symbol":"createKyselyAdapter","correct":"import { createKyselyAdapter } from 'arkormx'"},{"note":"Part of main module since v2.","wrong":"import { defineConfig } from 'arkormx/config'","symbol":"defineConfig","correct":"import { defineConfig } from 'arkormx'"},{"note":"Type-only import; avoid runtime import.","wrong":"import { UserAttributes } from 'arkormx'","symbol":"type UserAttributes","correct":"import type { UserAttributes } from 'arkormx'"}],"quickstart":{"code":"import { Model, createKyselyAdapter, defineConfig } from 'arkormx';\nimport { Kysely, PostgresDialect } from 'kysely';\nimport { Pool } from 'pg';\n\nconst pool = new Pool({ connectionString: process.env.DATABASE_URL ?? '' });\nconst db = new Kysely<any>({ dialect: new PostgresDialect({ pool }) });\nexport default defineConfig({ adapter: createKyselyAdapter(db) });\n\ntype UserAttrs = { id: number; name: string; email: string; isActive: boolean };\nexport class User extends Model<UserAttrs> {}\n\nasync function main() {\n  const activeUsers = await User.query()\n    .whereKey('isActive', true)\n    .latest()\n    .limit(10)\n    .get();\n  console.log(activeUsers);\n}\nmain();","lang":"typescript","description":"Shows basic setup with Kysely adapter, model definition, and a query filtering by active users."},"warnings":[{"fix":"Upgrade Node.js to v20+.","message":"Minimum Node.js version is 20.0.0. Older versions are not supported.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Migrate to native Kysely adapter for all queries.","message":"Prisma compatibility path (using `prisma: () => prisma` in config) is optional and may be removed in future major versions.","severity":"deprecated","affected_versions":">=2.0.0 <3.0.0"},{"fix":"Use `.create()` for single record insertion.","message":"The `User.query().create()` method expects attributes as object; using `insert()` from Kysely directly is not supported.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Use `import` syntax in your project, or set `\"type\": \"module\"` in package.json.","message":"Arkormˣ is ESM-only; CommonJS require() will fail unless using dynamic import.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Use `export default defineConfig({...})`.","message":"The `defineConfig` function must be exported as default from `arkormx.config.js` for CLI to work.","severity":"gotcha","affected_versions":">=2.0.0"}],"env_vars":null,"search_vec":"'2':42 '20.0.0':75 'adapt':16,54 'adapter-bas':15 'agnost':33,37 'allow':46 'api':64 'architectur':18 'arkormˣ':1,2 'base':17 'builder':27,92 'cadenc':67 'client':52 'compat':44 'connect':84 'databas':83,87 'differenti':39 'eloqu':62 'eloquent-lik':61 'everi':70 'exist':48 'familiar':22 'first':9 'fluent':25 'framework':32 'framework-agnost':31 'intuit':60 'javascript':85 'key':38 'kyse':53,79 'layer':24 'like':63 'migrat':93 'minor':68 'model':23 'modern':6 'node':74 'node.js':12 'nodej':89 'option':40 'orm':10,86 'path':45 'pg':81 'prisma':41,49 'provid':20 'queri':26,91 'raw':56 'releas':66 'reli':77 'requir':73 'runtim':36 'runtime-agnost':35 'schema':50 'seed':94 'sql':57,90 'stabl':65 'support':30 'transact':29 'typescript':8,88 'typescript-first':7 'updat':69 'use':47 'v2.4.2':3 'week':72 'x':43","created_at":"2026-06-04T18:48:16.488094+00:00","updated_at":"2026-06-04T18:48:16.488094+00:00","problems":[{"fix":"Run `pnpm add arkormx kysely pg`.","cause":"Package not installed or missing dependencies (kysely, pg).","error":"Error: Cannot find module 'arkormx'"},{"fix":"Ensure you use `import { Model } from 'arkormx'` and not a relative path.","cause":"Model import resolved to undefined (e.g., due to circular dependency or wrong import path).","error":"TypeError: Class extends value undefined is not a constructor or null"},{"fix":"Change to `import` syntax or use dynamic `import('arkormx')`.","cause":"Using CommonJS require() to import arkormx.","error":"Error [ERR_REQUIRE_ESM]: require() of ES Module"},{"fix":"Install kysely with `pnpm add -D @types/kysely` (or ensure tsconfig includes node_modules types).","cause":"Missing TypeScript declaration files for kysely.","error":"error TS2307: Cannot find module 'kysely' or its corresponding type declarations."}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://arkormx.toneflix.net","github":"https://github.com/arkstack-tmp/arkormx","docs":null,"changelog":null,"pypi":null,"npm":"arkormx","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}