create-orchid-orm 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin.js CHANGED
@@ -1,5 +1,4 @@
1
1
  #!/usr/bin/env node
2
- #!/usr/bin/env node
3
2
  'use strict';
4
3
 
5
4
  var prompts = require('prompts');
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sources":["../src/lib/utils.ts","../src/lib/getConfig.ts","../src/lib/init/setupPackageJSON.ts","../src/lib/init/setupTSConfig.ts","../src/lib/init/setupEnv.ts","../src/lib/init/setupGitIgnore.ts","../src/lib/init/setupBaseTable.ts","../src/lib/init/setupDemoTables.ts","../src/lib/init/setupConfig.ts","../src/lib/init/setupMainDb.ts","../src/lib/init/setupMigrationScript.ts","../src/lib/init/createDemoMigrations.ts","../src/lib/init/createDemoSeed.ts","../src/lib/init/setupRunner.ts","../src/lib/init.ts","../src/lib/greetAfterInstall.ts","../src/bin.ts"],"sourcesContent":["import fs from 'fs/promises';\nimport { basename } from 'path';\nimport https from 'https';\n\nexport async function readFileSafe(path: string) {\n try {\n return await fs.readFile(path, 'utf-8');\n } catch (err) {\n if ((err as unknown as { code: string }).code === 'ENOENT') {\n return undefined;\n }\n throw err;\n }\n}\n\nexport type DependencyKind = 'dependencies' | 'devDependencies';\nexport function getLatestPackageVersion(\n name: string,\n kind: DependencyKind,\n): Promise<[string, { version: string; kind: DependencyKind }]> {\n return new Promise((resolve, reject) => {\n https\n .get(`https://registry.npmjs.org/${name}/latest`, (res) => {\n let data = '';\n res.on('data', (chunk) => (data += chunk));\n res.on('end', () =>\n resolve([name, { version: `^${JSON.parse(data).version}`, kind }]),\n );\n })\n .on('error', reject);\n });\n}\n\nexport function getPackageManagerName(): 'npm' | 'yarn' | 'pnpm' | 'bun' {\n const { npm_execpath } = process.env;\n if (npm_execpath) {\n const name = basename(npm_execpath);\n if (/npm/.test(name)) {\n return 'npm';\n }\n if (/yarn/.test(name)) {\n return 'yarn';\n }\n if (/bun/.test(name)) {\n return 'bun';\n }\n }\n\n return 'pnpm';\n}\n","import prompts from 'prompts';\nimport { join, resolve, basename } from 'path';\nimport { InitConfig, UserProvidedConfig } from '../lib';\nimport { getPackageManagerName, readFileSafe } from './utils';\n\nexport async function getConfig(\n logger: { log(message: string): void } = console,\n): Promise<InitConfig | undefined> {\n let cancelled = false;\n\n logger.log('Welcome to Orchid ORM installer!');\n\n const isBun = getPackageManagerName() === 'bun';\n\n const response = await prompts<keyof UserProvidedConfig>(\n [\n {\n type: 'text',\n name: 'path',\n message: 'Where to install Orchid ORM?',\n initial: process.cwd(),\n },\n ...(isBun\n ? []\n : [\n {\n type: 'select' as const,\n name: 'runner' as const,\n message: 'Choose a tool for executing TS files',\n choices: [\n {\n title: 'tsx',\n value: 'tsx',\n },\n {\n title: 'vite-node',\n value: 'vite-node',\n },\n {\n title: 'ts-node',\n value: 'ts-node',\n },\n ],\n },\n ]),\n {\n type: 'select',\n name: 'timestamp',\n message: 'Return timestamps as:',\n choices: [\n {\n title: 'string (as returned from db)',\n value: 'string',\n },\n {\n title: 'number (epoch)',\n value: 'number',\n },\n {\n title: 'Date object',\n value: 'date',\n },\n ],\n },\n {\n type: 'confirm',\n name: 'testDatabase',\n message: 'Add a separate database for tests?',\n },\n {\n type: 'select',\n name: 'validation',\n message: 'Integrate with a validation library?',\n choices: [\n {\n title: 'no',\n value: 'no',\n },\n {\n title: 'zod',\n value: 'zod',\n },\n {\n title: 'valibot',\n value: 'valibot',\n },\n ],\n },\n {\n type: 'confirm',\n name: 'addTestFactory',\n message: 'Add record factories for writing tests?',\n },\n {\n type: 'confirm',\n name: 'demoTables',\n message: 'Add demo tables?',\n },\n ],\n {\n onCancel() {\n cancelled = true;\n },\n },\n );\n\n if (isBun) response.runner = 'bun';\n\n if (cancelled) return;\n\n const path = resolve(response.path);\n const tsConfigPath = join(path, 'tsconfig.json');\n const hasTsConfig = await readFileSafe(tsConfigPath);\n const dbDirPath = join(path, 'src', 'db');\n\n return {\n ...response,\n hasTsConfig: !!hasTsConfig,\n path: resolve(response.path),\n dbDirPath,\n projectName: basename(path),\n esm: response.runner !== 'ts-node',\n };\n}\n","import { InitConfig } from '../../lib';\nimport {\n DependencyKind,\n getLatestPackageVersion,\n readFileSafe,\n} from '../utils';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupPackageJSON(config: InitConfig): Promise<void> {\n const pairs = await Promise.all([\n getLatestPackageVersion('dotenv', 'dependencies'),\n getLatestPackageVersion('orchid-orm', 'dependencies'),\n config.validation === 'zod'\n ? getLatestPackageVersion('orchid-orm-schema-to-zod', 'dependencies')\n : config.validation === 'valibot'\n ? getLatestPackageVersion('orchid-orm-valibot', 'dependencies')\n : undefined,\n config.validation === 'valibot' &&\n getLatestPackageVersion('valibot', 'dependencies'),\n config.addTestFactory &&\n getLatestPackageVersion('orchid-orm-test-factory', 'devDependencies'),\n getLatestPackageVersion('@types/node', 'devDependencies'),\n getLatestPackageVersion('typescript', 'devDependencies'),\n config.runner === 'vite-node' &&\n getLatestPackageVersion('vite', 'devDependencies'),\n config.runner !== 'bun' &&\n (config.runner === 'tsx'\n ? ([\n 'tsx',\n {\n // 4.9.1 is broken in tsx: https://github.com/privatenumber/tsx/issues/543\n version: '4.9.0',\n kind: 'devDependencies',\n },\n ] as [string, { version: string; kind: DependencyKind }])\n : getLatestPackageVersion(config.runner, 'devDependencies')),\n config.runner === 'vite-node' &&\n getLatestPackageVersion(\n 'rollup-plugin-node-externals',\n 'devDependencies',\n ),\n config.runner === 'tsx' &&\n getLatestPackageVersion('esbuild', 'devDependencies'),\n config.runner === 'tsx' &&\n getLatestPackageVersion('rimraf', 'devDependencies'),\n ]);\n\n const deps: Record<string, string> = {};\n const devDeps: Record<string, string> = {};\n for (const item of pairs) {\n if (!item) continue;\n const [key, { version, kind }] = item;\n (kind === 'dependencies' ? deps : devDeps)[key] = version;\n }\n\n const packageJsonPath = join(config.path, 'package.json');\n const content = await readFileSafe(packageJsonPath);\n let json = content\n ? JSON.parse(content)\n : {\n name: config.projectName,\n };\n\n if (config.esm) json = { name: json.name, type: 'module', ...json };\n\n const scripts = (json.scripts ??= {});\n\n if (config.runner === 'vite-node') {\n scripts.db = 'vite-node src/db/dbScript.ts --';\n scripts['build:migrations'] = 'vite build --config vite.migrations.mts';\n scripts['db:compiled'] = 'node dist/db/dbScript.mjs';\n } else if (config.runner === 'tsx') {\n scripts.db = 'NODE_ENV=development tsx src/db/dbScript.ts';\n scripts['build:migrations'] =\n 'rimraf dist/db && node esbuild.migrations.mjs';\n scripts['db:compiled'] = 'NODE_ENV=production node dist/db/dbScript.mjs';\n } else {\n scripts.db = `${config.runner} src/db/dbScript.ts`;\n\n if (config.runner === 'ts-node') {\n scripts.build = 'tsc';\n scripts['db:compiled'] = 'node dist/dbScript.js';\n }\n }\n\n if (!json.dependencies) json.dependencies = {};\n\n for (const key in deps) {\n json.dependencies[key] = deps[key];\n }\n\n if (!json.devDependencies) json.devDependencies = {};\n for (const key in devDeps) {\n json.devDependencies[key] = devDeps[key];\n }\n\n await fs.writeFile(packageJsonPath, JSON.stringify(json, null, ' ') + '\\n');\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupTSConfig(config: InitConfig): Promise<void> {\n if (config.hasTsConfig) return;\n\n const module = config.runner === 'ts-node' ? 'commonjs' : 'esnext';\n const moduleResolution =\n config.runner === 'ts-node'\n ? ''\n : `\n \"moduleResolution\": \"bundler\",`;\n\n const types = config.runner === 'vite-node' ? `[\"vite/client\"]` : undefined;\n\n const tsConfigPath = join(config.path, 'tsconfig.json');\n await fs.writeFile(\n tsConfigPath,\n `{\n \"compilerOptions\": {${\n config.runner === 'ts-node'\n ? `\n \"outDir\": \"dist\",`\n : ''\n }\n \"target\": \"es2020\",\n \"module\": \"${module}\",${moduleResolution}\n \"esModuleInterop\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true${\n types\n ? `,\n \"types\": ${types}`\n : ''\n }\n }\n}\n`,\n );\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport { readFileSafe } from '../utils';\nimport fs from 'fs/promises';\n\nexport async function setupEnv(config: InitConfig): Promise<void> {\n const envPath = join(config.path, '.env');\n let content = ((await readFileSafe(envPath)) || '').trim();\n let changed = false;\n\n // by default, on Mac it is a username, on Linux it's postgres, on Windows it's postgres as well\n const user = process.platform === 'darwin' ? process.env.USER : 'postgres';\n\n // TODO: guess user and pw\n if (!content.match(/^DATABASE_URL=/m)) {\n content += `\\nDATABASE_URL=postgres://${user}:@localhost:5432/dbname?ssl=false`;\n changed = true;\n }\n\n if (config.testDatabase && !content.match(/^DATABASE_TEST_URL=/m)) {\n content += `\\nDATABASE_TEST_URL=postgres://${user}:@localhost:5432/dbname-test?ssl=false`;\n changed = true;\n }\n\n if (changed) {\n await fs.writeFile(envPath, `${content.trim()}\\n`);\n }\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport { readFileSafe } from '../utils';\nimport fs from 'fs/promises';\n\nexport async function setupGitIgnore(config: InitConfig): Promise<void> {\n const gitignorePath = join(config.path, '.gitignore');\n let content = ((await readFileSafe(gitignorePath)) || '').trim();\n let changed = false;\n\n if (!content.match(/^node_modules\\b/m)) {\n content += `\\nnode_modules`;\n changed = true;\n }\n\n if (!content.match(/^.env\\b/m)) {\n content += `\\n.env.?*\\n!.env.example`;\n changed = true;\n }\n\n if (changed) {\n await fs.writeFile(gitignorePath, `${content.trim()}\\n`);\n }\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupBaseTable(config: InitConfig): Promise<void> {\n const filePath = join(config.dbDirPath, 'baseTable.ts');\n\n const { timestamp } = config;\n const customTimestamp = timestamp && timestamp !== 'string';\n const columnTypesComment = customTimestamp ? '' : '// ';\n\n let content = `import { createBaseTable } from 'orchid-orm';${\n config.validation === 'zod'\n ? `\\nimport { zodSchemaConfig } from 'orchid-orm-schema-to-zod';`\n : config.validation === 'valibot'\n ? `\\nimport { valibotSchemaConfig } from 'orchid-orm-valibot';`\n : ''\n }\n\nexport const BaseTable = createBaseTable({\n // Set \\`snakeCase\\` to \\`true\\` if columns in your database are in snake_case.\n // snakeCase: true,${\n config.validation !== 'no'\n ? `\n\n schemaConfig: ${\n config.validation === 'zod' ? 'zodSchemaConfig' : 'valibotSchemaConfig'\n },`\n : ''\n }\n\n // Customize column types for all tables.\n ${columnTypesComment}columnTypes: (t) => ({\n ${columnTypesComment} ...t,`;\n\n if (customTimestamp) {\n content += `\n // Parse timestamps to ${timestamp === 'number' ? 'number' : 'Date object'}.\n timestamp: (precision?: number) => t.timestamp(precision).${\n timestamp === 'date' ? 'asDate' : 'asNumber'\n }(),`;\n }\n\n content += `\n ${columnTypesComment}}),\n});\n\nexport const { sql } = BaseTable;\n`;\n\n await fs.writeFile(filePath, content);\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupDemoTables(config: InitConfig): Promise<void> {\n if (!config.demoTables) return;\n\n const tablesDir = join(config.dbDirPath, 'tables');\n await fs.mkdir(tablesDir, { recursive: true });\n\n const hasValidation = config.validation !== 'no';\n\n await fs.writeFile(\n join(tablesDir, 'post.table.ts'),\n `import { Selectable, Updatable, Insertable, Queryable } from 'orchid-orm';\nimport { BaseTable } from '../baseTable';\nimport { CommentTable } from './comment.table';\n\n// Post type returned from database.\nexport type Post = Selectable<PostTable>;\n// Post type for insertion.\nexport type PostNew = Insertable<PostTable>;\n// Post type for updates.\nexport type PostUpdate = Updatable<PostTable>;\n// Post type used by query methods such as \\`where\\`.\nexport type PostForQuery = Queryable<PostTable>;\n\nexport class PostTable extends BaseTable {\n readonly table = 'post';\n columns = this.setColumns((t) => ({\n id: t.identity().primaryKey(),\n title: t.text()${hasValidation ? '.min(3).max(100)' : ''}.unique(),\n text: t.text()${hasValidation ? '.min(20).max(10000)' : ''},\n ...t.timestamps(),\n }));\n\n relations = {\n comments: this.hasMany(() => CommentTable, {\n columns: ['id'],\n references: ['postId'],\n }),\n };\n}\n`,\n );\n\n await fs.writeFile(\n join(tablesDir, 'comment.table.ts'),\n `import { Selectable, Updatable, Insertable, Queryable } from 'orchid-orm';\nimport { BaseTable } from '../baseTable';\nimport { PostTable } from './post.table';\n\n// Comment type returned from database.\nexport type Comment = Selectable<CommentTable>;\n// Comment type for insertion.\nexport type CommentNew = Insertable<CommentTable>;\n// Comment type for updates.\nexport type CommentUpdate = Updatable<CommentTable>;\n// Comment type used by query methods such as \\`where\\`.\nexport type CommentForQuery = Queryable<CommentTable>;\n\nexport class CommentTable extends BaseTable {\n readonly table = 'comment';\n columns = this.setColumns((t) => ({\n id: t.identity().primaryKey(),\n postId: t\n .integer()\n .foreignKey(() => PostTable, 'id')\n .index(),\n text: t.text()${hasValidation ? '.min(5).max(1000)' : ''},\n ...t.timestamps(),\n }));\n\n relations = {\n post: this.belongsTo(() => PostTable, {\n columns: ['postId'],\n references: ['id'],\n }),\n };\n}\n`,\n );\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupConfig(config: InitConfig): Promise<void> {\n const configPath = join(config.dbDirPath, 'config.ts');\n\n let content = `import 'dotenv/config';\n\nconst database = {\n databaseURL: process.env.DATABASE_URL,\n};\nif (!database.databaseURL) throw new Error('DATABASE_URL is missing in .env');`;\n\n if (config.testDatabase) {\n content += `\n\nconst testDatabase = {\n databaseURL: process.env.DATABASE_TEST_URL,\n};\n\nconst allDatabases = [database];\n\nif (testDatabase.databaseURL) {\n allDatabases.push(testDatabase);\n}`;\n }\n\n content += `\n\nexport const config = {`;\n\n if (config.testDatabase) {\n content += `\n allDatabases,`;\n }\n\n if (config.testDatabase) {\n content += `\n database: process.env.NODE_ENV === 'test' ? testDatabase : database,`;\n } else {\n content += `\n database,`;\n }\n content += `\n};\n`;\n\n await fs.writeFile(configPath, content);\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupMainDb(config: InitConfig): Promise<void> {\n let imports = '';\n let tables = '';\n if (config.demoTables) {\n imports += `\nimport { PostTable } from './tables/post.table';\nimport { CommentTable } from './tables/comment.table';`;\n tables += `\n post: PostTable,\n comment: CommentTable,`;\n }\n\n const dbPath = join(config.dbDirPath, 'db.ts');\n await fs.writeFile(\n dbPath,\n `import { orchidORM } from 'orchid-orm';\nimport { config } from './config';${imports}\n\nexport const db = orchidORM(config.database, {${tables}\n});\n`,\n );\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupMigrationScript(config: InitConfig): Promise<void> {\n const filePath = join(config.dbDirPath, 'dbScript.ts');\n\n const migrations =\n config.runner === 'vite-node'\n ? \"migrations: import.meta.glob('./migrations/*.ts')\"\n : \"migrationsPath: './migrations'\";\n\n await fs.writeFile(\n filePath,\n `import { rakeDb } from 'orchid-orm/migrations';\nimport { config } from './config';\nimport { BaseTable } from './baseTable';\n\nexport const change = rakeDb(${\n config.testDatabase ? 'config.allDatabases' : 'config.database'\n }, {\n baseTable: BaseTable,\n dbPath: './db',\n ${migrations},\n commands: {\n async seed() {\n const { seed } = await import('./seed');\n await seed();\n },\n },\n import: (path) => import(path),\n});\n`,\n );\n}\n","import { join } from 'path';\nimport fs from 'fs/promises';\nimport { InitConfig } from '../../lib';\n\nexport async function createDemoMigrations(config: InitConfig): Promise<void> {\n const migrationsPath = join(config.dbDirPath, 'migrations');\n await fs.mkdir(migrationsPath, { recursive: true });\n\n if (!config.demoTables) return;\n\n const now = new Date();\n\n const postPath = join(migrationsPath, `0001_createPost.ts`);\n await fs.writeFile(\n postPath,\n `import { change } from '../dbScript';\n\nchange(async (db) => {\n await db.createTable('post', (t) => ({\n id: t.identity().primaryKey(),\n title: t.text().unique(),\n text: t.text(),\n ...t.timestamps(),\n }));\n});\n`,\n );\n\n now.setTime(now.getTime() + 1000);\n\n const commentPath = join(migrationsPath, `0002_createComment.ts`);\n await fs.writeFile(\n commentPath,\n `import { change } from '../dbScript';\n\nchange(async (db) => {\n await db.createTable('comment', (t) => ({\n id: t.identity().primaryKey(),\n postId: t.integer().foreignKey('post', 'id').index(),\n text: t.text(),\n ...t.timestamps(),\n }));\n});\n`,\n );\n}\n","import { join } from 'path';\nimport fs from 'fs/promises';\nimport { InitConfig } from '../../lib';\n\nexport async function createDemoSeed(config: InitConfig): Promise<void> {\n const filePath = join(config.dbDirPath, 'seed.ts');\n\n let content;\n if (config.demoTables) {\n content = `await db.post.findBy({ title: 'Sample post' }).orCreate({\n title: 'Post',\n text: 'This is a text for a sample post. It contains words, spaces, and punctuation.',\n comments: {\n create: [\n {\n text: 'Nice post!',\n },\n {\n text: \\`Too long, didn't read\\`,\n },\n ],\n },\n });`;\n } else {\n content = `// create records here`;\n }\n\n await fs.writeFile(\n filePath,\n `import { db } from './db';\n\nexport const seed = async () => {\n ${content}\n\n await db.$close();\n};\n`,\n );\n}\n","import { InitConfig } from '../../lib';\nimport fs from 'fs/promises';\nimport { join } from 'path';\n\nexport async function setupRunner(config: InitConfig): Promise<void> {\n if (config.runner === 'vite-node') {\n await fs.writeFile(\n join(config.path, 'vite.migrations.mts'),\n `import { resolve } from \"path\";\nimport { defineConfig, PluginOption } from \"vite\";\nimport { nodeExternals } from \"rollup-plugin-node-externals\";\n\nexport default defineConfig({\n plugins: [\n {\n ...nodeExternals(),\n name: \"node-externals\",\n enforce: \"pre\",\n apply: \"build\",\n } as PluginOption\n ],\n build: {\n outDir: resolve(__dirname, \"dist\", \"db\"),\n lib: {\n entry: resolve(__dirname, \"src/db/dbScript.ts\"),\n formats: [\"es\"],\n fileName: \"dbScript\",\n },\n rollupOptions: {\n external: [\"orchid-orm\"],\n output: {\n entryFileNames: \"[name].mjs\",\n chunkFileNames: \"[name].[hash].mjs\",\n },\n },\n },\n})\n`,\n );\n } else if (config.runner === 'tsx') {\n await fs.writeFile(\n join(config.path, 'esbuild.migrations.mjs'),\n `import { build } from \"esbuild\";\n\nawait Promise.all([\n build({\n entryPoints: [\"src/db/dbScript.ts\"],\n bundle: true,\n platform: \"node\",\n format: \"esm\",\n outdir: \"dist/db\",\n outExtension: { '.js': '.mjs' },\n banner: {\n js: \\`\n import __path from 'node:path';\n import { fileURLToPath as __fileURLToPath } from 'node:url';\n import { createRequire as __createRequire } from 'module';\n const require = __createRequire(import.meta.url);\n const __filename = __fileURLToPath(import.meta.url);\n const __dirname = __path.dirname(__filename);\n \\`,\n },\n }),\n build({\n entryPoints: [\"src/db/migrations/*.ts\"],\n bundle: true,\n platform: \"node\",\n format: \"esm\",\n outdir: \"dist/db/migrations\",\n outExtension: { '.js': '.mjs' },\n external: ['../dbScript'],\n plugins: [{\n name: 'add-js-suffix',\n setup(build) {\n build.onResolve({ filter: /.*/ }, (args) => {\n if (args.importer) {\n return { path: args.path + '.mjs', external: true }\n }\n })\n },\n }],\n }),\n]);\n`,\n );\n }\n}\n","import { InitConfig } from '../lib';\nimport fs from 'fs/promises';\nimport { setupPackageJSON } from './init/setupPackageJSON';\nimport { setupTSConfig } from './init/setupTSConfig';\nimport { setupEnv } from './init/setupEnv';\nimport { setupGitIgnore } from './init/setupGitIgnore';\nimport { setupBaseTable } from './init/setupBaseTable';\nimport { setupDemoTables } from './init/setupDemoTables';\nimport { setupConfig } from './init/setupConfig';\nimport { setupMainDb } from './init/setupMainDb';\nimport { setupMigrationScript } from './init/setupMigrationScript';\nimport { createDemoMigrations } from './init/createDemoMigrations';\nimport { createDemoSeed } from './init/createDemoSeed';\nimport { setupRunner } from './init/setupRunner';\n\nexport async function init(config: InitConfig): Promise<void> {\n await fs.mkdir(config.dbDirPath, { recursive: true });\n\n for (const key in initSteps) {\n await initSteps[key as keyof typeof initSteps](config);\n }\n}\n\nexport const initSteps = {\n setupPackageJSON,\n setupTSConfig,\n setupEnv,\n setupGitIgnore,\n setupBaseTable,\n setupDemoTables,\n setupConfig,\n setupMainDb,\n setupMigrationScript,\n createDemoMigrations,\n createDemoSeed,\n setupRunner,\n};\n","import { relative } from 'path';\nimport { InitConfig } from '../lib';\nimport { getPackageManagerName } from './utils';\n\nexport function greetAfterInstall(\n config: InitConfig,\n logger: { log(message: string): void } = console,\n) {\n const relativePath = relative(process.cwd(), config.path);\n const manager = getPackageManagerName();\n const run = manager === 'npm' ? `npm run` : manager;\n\n logger.log(`\nThank you for trying Orchid ORM!\n \nTo finish setup,${\n relativePath ? ` cd to the project and` : ''\n } install dependencies:\n${\n relativePath\n ? `\n> cd ${relativePath}`\n : ''\n}\n> ${manager} i\n\nEnter the correct database credentials to the .env file,\nthen create the database:\n\n> ${run} db create\n\nAnd run the migrations:\n\n> ${run} db migrate\n`);\n}\n","#!/usr/bin/env node\n\nimport { getConfig, init, greetAfterInstall } from './lib';\n\ngetConfig().then(\n (config) => config && init(config).then(() => greetAfterInstall(config)),\n);\n"],"names":["basename","path","resolve","join","relative"],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sources":["../src/lib/utils.ts","../src/lib/getConfig.ts","../src/lib/init/setupPackageJSON.ts","../src/lib/init/setupTSConfig.ts","../src/lib/init/setupEnv.ts","../src/lib/init/setupGitIgnore.ts","../src/lib/init/setupBaseTable.ts","../src/lib/init/setupDemoTables.ts","../src/lib/init/setupConfig.ts","../src/lib/init/setupMainDb.ts","../src/lib/init/setupMigrationScript.ts","../src/lib/init/createDemoMigrations.ts","../src/lib/init/createDemoSeed.ts","../src/lib/init/setupRunner.ts","../src/lib/init.ts","../src/lib/greetAfterInstall.ts","../src/bin.ts"],"sourcesContent":["import fs from 'fs/promises';\nimport { basename } from 'path';\nimport https from 'https';\n\nexport async function readFileSafe(path: string) {\n try {\n return await fs.readFile(path, 'utf-8');\n } catch (err) {\n if ((err as unknown as { code: string }).code === 'ENOENT') {\n return undefined;\n }\n throw err;\n }\n}\n\nexport type DependencyKind = 'dependencies' | 'devDependencies';\nexport function getLatestPackageVersion(\n name: string,\n kind: DependencyKind,\n): Promise<[string, { version: string; kind: DependencyKind }]> {\n return new Promise((resolve, reject) => {\n https\n .get(`https://registry.npmjs.org/${name}/latest`, (res) => {\n let data = '';\n res.on('data', (chunk) => (data += chunk));\n res.on('end', () =>\n resolve([name, { version: `^${JSON.parse(data).version}`, kind }]),\n );\n })\n .on('error', reject);\n });\n}\n\nexport function getPackageManagerName(): 'npm' | 'yarn' | 'pnpm' | 'bun' {\n const { npm_execpath } = process.env;\n if (npm_execpath) {\n const name = basename(npm_execpath);\n if (/npm/.test(name)) {\n return 'npm';\n }\n if (/yarn/.test(name)) {\n return 'yarn';\n }\n if (/bun/.test(name)) {\n return 'bun';\n }\n }\n\n return 'pnpm';\n}\n","import prompts from 'prompts';\nimport { join, resolve, basename } from 'path';\nimport { InitConfig, UserProvidedConfig } from '../lib';\nimport { getPackageManagerName, readFileSafe } from './utils';\n\nexport async function getConfig(\n logger: { log(message: string): void } = console,\n): Promise<InitConfig | undefined> {\n let cancelled = false;\n\n logger.log('Welcome to Orchid ORM installer!');\n\n const isBun = getPackageManagerName() === 'bun';\n\n const response = await prompts<keyof UserProvidedConfig>(\n [\n {\n type: 'text',\n name: 'path',\n message: 'Where to install Orchid ORM?',\n initial: process.cwd(),\n },\n ...(isBun\n ? []\n : [\n {\n type: 'select' as const,\n name: 'runner' as const,\n message: 'Choose a tool for executing TS files',\n choices: [\n {\n title: 'tsx',\n value: 'tsx',\n },\n {\n title: 'vite-node',\n value: 'vite-node',\n },\n {\n title: 'ts-node',\n value: 'ts-node',\n },\n ],\n },\n ]),\n {\n type: 'select',\n name: 'timestamp',\n message: 'Return timestamps as:',\n choices: [\n {\n title: 'string (as returned from db)',\n value: 'string',\n },\n {\n title: 'number (epoch)',\n value: 'number',\n },\n {\n title: 'Date object',\n value: 'date',\n },\n ],\n },\n {\n type: 'confirm',\n name: 'testDatabase',\n message: 'Add a separate database for tests?',\n },\n {\n type: 'select',\n name: 'validation',\n message: 'Integrate with a validation library?',\n choices: [\n {\n title: 'no',\n value: 'no',\n },\n {\n title: 'zod',\n value: 'zod',\n },\n {\n title: 'valibot',\n value: 'valibot',\n },\n ],\n },\n {\n type: 'confirm',\n name: 'addTestFactory',\n message: 'Add record factories for writing tests?',\n },\n {\n type: 'confirm',\n name: 'demoTables',\n message: 'Add demo tables?',\n },\n ],\n {\n onCancel() {\n cancelled = true;\n },\n },\n );\n\n if (isBun) response.runner = 'bun';\n\n if (cancelled) return;\n\n const path = resolve(response.path);\n const tsConfigPath = join(path, 'tsconfig.json');\n const hasTsConfig = await readFileSafe(tsConfigPath);\n const dbDirPath = join(path, 'src', 'db');\n\n return {\n ...response,\n hasTsConfig: !!hasTsConfig,\n path: resolve(response.path),\n dbDirPath,\n projectName: basename(path),\n esm: response.runner !== 'ts-node',\n };\n}\n","import { InitConfig } from '../../lib';\nimport {\n DependencyKind,\n getLatestPackageVersion,\n readFileSafe,\n} from '../utils';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupPackageJSON(config: InitConfig): Promise<void> {\n const pairs = await Promise.all([\n getLatestPackageVersion('dotenv', 'dependencies'),\n getLatestPackageVersion('orchid-orm', 'dependencies'),\n config.validation === 'zod'\n ? getLatestPackageVersion('orchid-orm-schema-to-zod', 'dependencies')\n : config.validation === 'valibot'\n ? getLatestPackageVersion('orchid-orm-valibot', 'dependencies')\n : undefined,\n config.validation === 'valibot' &&\n getLatestPackageVersion('valibot', 'dependencies'),\n config.addTestFactory &&\n getLatestPackageVersion('orchid-orm-test-factory', 'devDependencies'),\n getLatestPackageVersion('@types/node', 'devDependencies'),\n getLatestPackageVersion('typescript', 'devDependencies'),\n config.runner === 'vite-node' &&\n getLatestPackageVersion('vite', 'devDependencies'),\n config.runner !== 'bun' &&\n (config.runner === 'tsx'\n ? ([\n 'tsx',\n {\n // 4.9.1 is broken in tsx: https://github.com/privatenumber/tsx/issues/543\n version: '4.9.0',\n kind: 'devDependencies',\n },\n ] as [string, { version: string; kind: DependencyKind }])\n : getLatestPackageVersion(config.runner, 'devDependencies')),\n config.runner === 'vite-node' &&\n getLatestPackageVersion(\n 'rollup-plugin-node-externals',\n 'devDependencies',\n ),\n config.runner === 'tsx' &&\n getLatestPackageVersion('esbuild', 'devDependencies'),\n config.runner === 'tsx' &&\n getLatestPackageVersion('rimraf', 'devDependencies'),\n ]);\n\n const deps: Record<string, string> = {};\n const devDeps: Record<string, string> = {};\n for (const item of pairs) {\n if (!item) continue;\n const [key, { version, kind }] = item;\n (kind === 'dependencies' ? deps : devDeps)[key] = version;\n }\n\n const packageJsonPath = join(config.path, 'package.json');\n const content = await readFileSafe(packageJsonPath);\n let json = content\n ? JSON.parse(content)\n : {\n name: config.projectName,\n };\n\n if (config.esm) json = { name: json.name, type: 'module', ...json };\n\n const scripts = (json.scripts ??= {});\n\n if (config.runner === 'vite-node') {\n scripts.db = 'vite-node src/db/dbScript.ts --';\n scripts['build:migrations'] = 'vite build --config vite.migrations.mts';\n scripts['db:compiled'] = 'node dist/db/dbScript.mjs';\n } else if (config.runner === 'tsx') {\n scripts.db = 'NODE_ENV=development tsx src/db/dbScript.ts';\n scripts['build:migrations'] =\n 'rimraf dist/db && node esbuild.migrations.mjs';\n scripts['db:compiled'] = 'NODE_ENV=production node dist/db/dbScript.mjs';\n } else {\n scripts.db = `${config.runner} src/db/dbScript.ts`;\n\n if (config.runner === 'ts-node') {\n scripts.build = 'tsc';\n scripts['db:compiled'] = 'node dist/dbScript.js';\n }\n }\n\n if (!json.dependencies) json.dependencies = {};\n\n for (const key in deps) {\n json.dependencies[key] = deps[key];\n }\n\n if (!json.devDependencies) json.devDependencies = {};\n for (const key in devDeps) {\n json.devDependencies[key] = devDeps[key];\n }\n\n await fs.writeFile(packageJsonPath, JSON.stringify(json, null, ' ') + '\\n');\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupTSConfig(config: InitConfig): Promise<void> {\n if (config.hasTsConfig) return;\n\n const module = config.runner === 'ts-node' ? 'commonjs' : 'esnext';\n const moduleResolution =\n config.runner === 'ts-node'\n ? ''\n : `\n \"moduleResolution\": \"bundler\",`;\n\n const types = config.runner === 'vite-node' ? `[\"vite/client\"]` : undefined;\n\n const tsConfigPath = join(config.path, 'tsconfig.json');\n await fs.writeFile(\n tsConfigPath,\n `{\n \"compilerOptions\": {${\n config.runner === 'ts-node'\n ? `\n \"outDir\": \"dist\",`\n : ''\n }\n \"target\": \"es2020\",\n \"module\": \"${module}\",${moduleResolution}\n \"esModuleInterop\": true,\n \"forceConsistentCasingInFileNames\": true,\n \"strict\": true,\n \"skipLibCheck\": true${\n types\n ? `,\n \"types\": ${types}`\n : ''\n }\n }\n}\n`,\n );\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport { readFileSafe } from '../utils';\nimport fs from 'fs/promises';\n\nexport async function setupEnv(config: InitConfig): Promise<void> {\n const envPath = join(config.path, '.env');\n let content = ((await readFileSafe(envPath)) || '').trim();\n let changed = false;\n\n // by default, on Mac it is a username, on Linux it's postgres, on Windows it's postgres as well\n const user = process.platform === 'darwin' ? process.env.USER : 'postgres';\n\n // TODO: guess user and pw\n if (!content.match(/^DATABASE_URL=/m)) {\n content += `\\nDATABASE_URL=postgres://${user}:@localhost:5432/dbname?ssl=false`;\n changed = true;\n }\n\n if (config.testDatabase && !content.match(/^DATABASE_TEST_URL=/m)) {\n content += `\\nDATABASE_TEST_URL=postgres://${user}:@localhost:5432/dbname-test?ssl=false`;\n changed = true;\n }\n\n if (changed) {\n await fs.writeFile(envPath, `${content.trim()}\\n`);\n }\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport { readFileSafe } from '../utils';\nimport fs from 'fs/promises';\n\nexport async function setupGitIgnore(config: InitConfig): Promise<void> {\n const gitignorePath = join(config.path, '.gitignore');\n let content = ((await readFileSafe(gitignorePath)) || '').trim();\n let changed = false;\n\n if (!content.match(/^node_modules\\b/m)) {\n content += `\\nnode_modules`;\n changed = true;\n }\n\n if (!content.match(/^.env\\b/m)) {\n content += `\\n.env.?*\\n!.env.example`;\n changed = true;\n }\n\n if (changed) {\n await fs.writeFile(gitignorePath, `${content.trim()}\\n`);\n }\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupBaseTable(config: InitConfig): Promise<void> {\n const filePath = join(config.dbDirPath, 'baseTable.ts');\n\n const { timestamp } = config;\n const customTimestamp = timestamp && timestamp !== 'string';\n const columnTypesComment = customTimestamp ? '' : '// ';\n\n let content = `import { createBaseTable } from 'orchid-orm';${\n config.validation === 'zod'\n ? `\\nimport { zodSchemaConfig } from 'orchid-orm-schema-to-zod';`\n : config.validation === 'valibot'\n ? `\\nimport { valibotSchemaConfig } from 'orchid-orm-valibot';`\n : ''\n }\n\nexport const BaseTable = createBaseTable({\n // Set \\`snakeCase\\` to \\`true\\` if columns in your database are in snake_case.\n // snakeCase: true,${\n config.validation !== 'no'\n ? `\n\n schemaConfig: ${\n config.validation === 'zod' ? 'zodSchemaConfig' : 'valibotSchemaConfig'\n },`\n : ''\n }\n\n // Customize column types for all tables.\n ${columnTypesComment}columnTypes: (t) => ({\n ${columnTypesComment} ...t,`;\n\n if (customTimestamp) {\n content += `\n // Parse timestamps to ${timestamp === 'number' ? 'number' : 'Date object'}.\n timestamp: (precision?: number) => t.timestamp(precision).${\n timestamp === 'date' ? 'asDate' : 'asNumber'\n }(),`;\n }\n\n content += `\n ${columnTypesComment}}),\n});\n\nexport const { sql } = BaseTable;\n`;\n\n await fs.writeFile(filePath, content);\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupDemoTables(config: InitConfig): Promise<void> {\n if (!config.demoTables) return;\n\n const tablesDir = join(config.dbDirPath, 'tables');\n await fs.mkdir(tablesDir, { recursive: true });\n\n const hasValidation = config.validation !== 'no';\n\n await fs.writeFile(\n join(tablesDir, 'post.table.ts'),\n `import { Selectable, Updatable, Insertable, Queryable } from 'orchid-orm';\nimport { BaseTable } from '../baseTable';\nimport { CommentTable } from './comment.table';\n\n// Post type returned from database.\nexport type Post = Selectable<PostTable>;\n// Post type for insertion.\nexport type PostNew = Insertable<PostTable>;\n// Post type for updates.\nexport type PostUpdate = Updatable<PostTable>;\n// Post type used by query methods such as \\`where\\`.\nexport type PostForQuery = Queryable<PostTable>;\n\nexport class PostTable extends BaseTable {\n readonly table = 'post';\n columns = this.setColumns((t) => ({\n id: t.identity().primaryKey(),\n title: t.text()${hasValidation ? '.min(3).max(100)' : ''}.unique(),\n text: t.text()${hasValidation ? '.min(20).max(10000)' : ''},\n ...t.timestamps(),\n }));\n\n relations = {\n comments: this.hasMany(() => CommentTable, {\n columns: ['id'],\n references: ['postId'],\n }),\n };\n}\n`,\n );\n\n await fs.writeFile(\n join(tablesDir, 'comment.table.ts'),\n `import { Selectable, Updatable, Insertable, Queryable } from 'orchid-orm';\nimport { BaseTable } from '../baseTable';\nimport { PostTable } from './post.table';\n\n// Comment type returned from database.\nexport type Comment = Selectable<CommentTable>;\n// Comment type for insertion.\nexport type CommentNew = Insertable<CommentTable>;\n// Comment type for updates.\nexport type CommentUpdate = Updatable<CommentTable>;\n// Comment type used by query methods such as \\`where\\`.\nexport type CommentForQuery = Queryable<CommentTable>;\n\nexport class CommentTable extends BaseTable {\n readonly table = 'comment';\n columns = this.setColumns((t) => ({\n id: t.identity().primaryKey(),\n postId: t\n .integer()\n .foreignKey(() => PostTable, 'id')\n .index(),\n text: t.text()${hasValidation ? '.min(5).max(1000)' : ''},\n ...t.timestamps(),\n }));\n\n relations = {\n post: this.belongsTo(() => PostTable, {\n columns: ['postId'],\n references: ['id'],\n }),\n };\n}\n`,\n );\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupConfig(config: InitConfig): Promise<void> {\n const configPath = join(config.dbDirPath, 'config.ts');\n\n let content = `import 'dotenv/config';\n\nconst database = {\n databaseURL: process.env.DATABASE_URL,\n};\nif (!database.databaseURL) throw new Error('DATABASE_URL is missing in .env');`;\n\n if (config.testDatabase) {\n content += `\n\nconst testDatabase = {\n databaseURL: process.env.DATABASE_TEST_URL,\n};\n\nconst allDatabases = [database];\n\nif (testDatabase.databaseURL) {\n allDatabases.push(testDatabase);\n}`;\n }\n\n content += `\n\nexport const config = {`;\n\n if (config.testDatabase) {\n content += `\n allDatabases,`;\n }\n\n if (config.testDatabase) {\n content += `\n database: process.env.NODE_ENV === 'test' ? testDatabase : database,`;\n } else {\n content += `\n database,`;\n }\n content += `\n};\n`;\n\n await fs.writeFile(configPath, content);\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupMainDb(config: InitConfig): Promise<void> {\n let imports = '';\n let tables = '';\n if (config.demoTables) {\n imports += `\nimport { PostTable } from './tables/post.table';\nimport { CommentTable } from './tables/comment.table';`;\n tables += `\n post: PostTable,\n comment: CommentTable,`;\n }\n\n const dbPath = join(config.dbDirPath, 'db.ts');\n await fs.writeFile(\n dbPath,\n `import { orchidORM } from 'orchid-orm';\nimport { config } from './config';${imports}\n\nexport const db = orchidORM(config.database, {${tables}\n});\n`,\n );\n}\n","import { InitConfig } from '../../lib';\nimport { join } from 'path';\nimport fs from 'fs/promises';\n\nexport async function setupMigrationScript(config: InitConfig): Promise<void> {\n const filePath = join(config.dbDirPath, 'dbScript.ts');\n\n const migrations =\n config.runner === 'vite-node'\n ? \"migrations: import.meta.glob('./migrations/*.ts')\"\n : \"migrationsPath: './migrations'\";\n\n await fs.writeFile(\n filePath,\n `import { rakeDb } from 'orchid-orm/migrations';\nimport { config } from './config';\nimport { BaseTable } from './baseTable';\n\nexport const change = rakeDb(${\n config.testDatabase ? 'config.allDatabases' : 'config.database'\n }, {\n baseTable: BaseTable,\n dbPath: './db',\n ${migrations},\n commands: {\n async seed() {\n const { seed } = await import('./seed');\n await seed();\n },\n },\n import: (path) => import(path),\n});\n`,\n );\n}\n","import { join } from 'path';\nimport fs from 'fs/promises';\nimport { InitConfig } from '../../lib';\n\nexport async function createDemoMigrations(config: InitConfig): Promise<void> {\n const migrationsPath = join(config.dbDirPath, 'migrations');\n await fs.mkdir(migrationsPath, { recursive: true });\n\n if (!config.demoTables) return;\n\n const now = new Date();\n\n const postPath = join(migrationsPath, `0001_createPost.ts`);\n await fs.writeFile(\n postPath,\n `import { change } from '../dbScript';\n\nchange(async (db) => {\n await db.createTable('post', (t) => ({\n id: t.identity().primaryKey(),\n title: t.text().unique(),\n text: t.text(),\n ...t.timestamps(),\n }));\n});\n`,\n );\n\n now.setTime(now.getTime() + 1000);\n\n const commentPath = join(migrationsPath, `0002_createComment.ts`);\n await fs.writeFile(\n commentPath,\n `import { change } from '../dbScript';\n\nchange(async (db) => {\n await db.createTable('comment', (t) => ({\n id: t.identity().primaryKey(),\n postId: t.integer().foreignKey('post', 'id').index(),\n text: t.text(),\n ...t.timestamps(),\n }));\n});\n`,\n );\n}\n","import { join } from 'path';\nimport fs from 'fs/promises';\nimport { InitConfig } from '../../lib';\n\nexport async function createDemoSeed(config: InitConfig): Promise<void> {\n const filePath = join(config.dbDirPath, 'seed.ts');\n\n let content;\n if (config.demoTables) {\n content = `await db.post.findBy({ title: 'Sample post' }).orCreate({\n title: 'Post',\n text: 'This is a text for a sample post. It contains words, spaces, and punctuation.',\n comments: {\n create: [\n {\n text: 'Nice post!',\n },\n {\n text: \\`Too long, didn't read\\`,\n },\n ],\n },\n });`;\n } else {\n content = `// create records here`;\n }\n\n await fs.writeFile(\n filePath,\n `import { db } from './db';\n\nexport const seed = async () => {\n ${content}\n\n await db.$close();\n};\n`,\n );\n}\n","import { InitConfig } from '../../lib';\nimport fs from 'fs/promises';\nimport { join } from 'path';\n\nexport async function setupRunner(config: InitConfig): Promise<void> {\n if (config.runner === 'vite-node') {\n await fs.writeFile(\n join(config.path, 'vite.migrations.mts'),\n `import { resolve } from \"path\";\nimport { defineConfig, PluginOption } from \"vite\";\nimport { nodeExternals } from \"rollup-plugin-node-externals\";\n\nexport default defineConfig({\n plugins: [\n {\n ...nodeExternals(),\n name: \"node-externals\",\n enforce: \"pre\",\n apply: \"build\",\n } as PluginOption\n ],\n build: {\n outDir: resolve(__dirname, \"dist\", \"db\"),\n lib: {\n entry: resolve(__dirname, \"src/db/dbScript.ts\"),\n formats: [\"es\"],\n fileName: \"dbScript\",\n },\n rollupOptions: {\n external: [\"orchid-orm\"],\n output: {\n entryFileNames: \"[name].mjs\",\n chunkFileNames: \"[name].[hash].mjs\",\n },\n },\n },\n})\n`,\n );\n } else if (config.runner === 'tsx') {\n await fs.writeFile(\n join(config.path, 'esbuild.migrations.mjs'),\n `import { build } from \"esbuild\";\n\nawait Promise.all([\n build({\n entryPoints: [\"src/db/dbScript.ts\"],\n bundle: true,\n platform: \"node\",\n format: \"esm\",\n outdir: \"dist/db\",\n outExtension: { '.js': '.mjs' },\n banner: {\n js: \\`\n import __path from 'node:path';\n import { fileURLToPath as __fileURLToPath } from 'node:url';\n import { createRequire as __createRequire } from 'module';\n const require = __createRequire(import.meta.url);\n const __filename = __fileURLToPath(import.meta.url);\n const __dirname = __path.dirname(__filename);\n \\`,\n },\n }),\n build({\n entryPoints: [\"src/db/migrations/*.ts\"],\n bundle: true,\n platform: \"node\",\n format: \"esm\",\n outdir: \"dist/db/migrations\",\n outExtension: { '.js': '.mjs' },\n external: ['../dbScript'],\n plugins: [{\n name: 'add-js-suffix',\n setup(build) {\n build.onResolve({ filter: /.*/ }, (args) => {\n if (args.importer) {\n return { path: args.path + '.mjs', external: true }\n }\n })\n },\n }],\n }),\n]);\n`,\n );\n }\n}\n","import { InitConfig } from '../lib';\nimport fs from 'fs/promises';\nimport { setupPackageJSON } from './init/setupPackageJSON';\nimport { setupTSConfig } from './init/setupTSConfig';\nimport { setupEnv } from './init/setupEnv';\nimport { setupGitIgnore } from './init/setupGitIgnore';\nimport { setupBaseTable } from './init/setupBaseTable';\nimport { setupDemoTables } from './init/setupDemoTables';\nimport { setupConfig } from './init/setupConfig';\nimport { setupMainDb } from './init/setupMainDb';\nimport { setupMigrationScript } from './init/setupMigrationScript';\nimport { createDemoMigrations } from './init/createDemoMigrations';\nimport { createDemoSeed } from './init/createDemoSeed';\nimport { setupRunner } from './init/setupRunner';\n\nexport async function init(config: InitConfig): Promise<void> {\n await fs.mkdir(config.dbDirPath, { recursive: true });\n\n for (const key in initSteps) {\n await initSteps[key as keyof typeof initSteps](config);\n }\n}\n\nexport const initSteps = {\n setupPackageJSON,\n setupTSConfig,\n setupEnv,\n setupGitIgnore,\n setupBaseTable,\n setupDemoTables,\n setupConfig,\n setupMainDb,\n setupMigrationScript,\n createDemoMigrations,\n createDemoSeed,\n setupRunner,\n};\n","import { relative } from 'path';\nimport { InitConfig } from '../lib';\nimport { getPackageManagerName } from './utils';\n\nexport function greetAfterInstall(\n config: InitConfig,\n logger: { log(message: string): void } = console,\n) {\n const relativePath = relative(process.cwd(), config.path);\n const manager = getPackageManagerName();\n const run = manager === 'npm' ? `npm run` : manager;\n\n logger.log(`\nThank you for trying Orchid ORM!\n \nTo finish setup,${\n relativePath ? ` cd to the project and` : ''\n } install dependencies:\n${\n relativePath\n ? `\n> cd ${relativePath}`\n : ''\n}\n> ${manager} i\n\nEnter the correct database credentials to the .env file,\nthen create the database:\n\n> ${run} db create\n\nAnd run the migrations:\n\n> ${run} db migrate\n`);\n}\n","import { getConfig, init, greetAfterInstall } from './lib';\n\ngetConfig().then(\n (config) => config && init(config).then(() => greetAfterInstall(config)),\n);\n"],"names":["basename","path","resolve","join","relative"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-orchid-orm",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "Initialize Orchid ORM",
5
5
  "license": "ISC",
6
6
  "author": "Roman Kushyn",