adorn-api 1.0.8 ā 1.0.9
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/metal/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/metal/index.ts","../../src/metal/symbolMetadata.ts","../../src/metal/readMetalBag.ts","../../src/metal/schemaFromEntity.ts","../../src/metal/registerMetalEntities.ts"],"sourcesContent":["export { ensureSymbolMetadata } from \"./symbolMetadata.js\";\nexport { readMetalDecoratorBagFromConstructor, METAL_METADATA_KEY } from \"./readMetalBag.js\";\nexport { schemaFromEntity } from \"./schemaFromEntity.js\";\nexport { registerMetalEntities } from \"./registerMetalEntities.js\";\n\nexport type { SchemaFromEntityOptions, EntitySchemaMode, JsonSchema } from \"./schemaFromEntity.js\";\n","export function ensureSymbolMetadata(): symbol {\n const s = Symbol as unknown as { metadata?: symbol };\n if (!s.metadata) {\n s.metadata = Symbol(\"Symbol.metadata\");\n }\n return s.metadata;\n}\n","import { ensureSymbolMetadata } from \"./symbolMetadata.js\";\n\nexport const METAL_METADATA_KEY = \"metal-orm:decorators\";\n\nexport type MetalColumnDef = {\n type: string;\n args?: unknown[];\n dialectTypes?: unknown;\n notNull?: boolean;\n primary?: boolean;\n tsType?: unknown;\n unique?: boolean;\n default?: unknown;\n autoIncrement?: boolean;\n generated?: unknown;\n check?: unknown;\n references?: unknown;\n comment?: string;\n};\n\nexport type MetalRelationMetadata = {\n kind: string;\n propertyKey: string;\n target?: (...args: any[]) => any;\n};\n\nexport type MetalDecoratorBag = {\n columns: Array<{ propertyName: string; column: MetalColumnDef }>;\n relations: Array<{ propertyName: string; relation: MetalRelationMetadata }>;\n};\n\nexport function readMetalDecoratorBagFromConstructor(ctor: object): MetalDecoratorBag | undefined {\n const metadataSymbol = ensureSymbolMetadata();\n const metadata = Reflect.get(ctor, metadataSymbol) as Record<PropertyKey, unknown> | undefined;\n return metadata?.[METAL_METADATA_KEY] as MetalDecoratorBag | undefined;\n}\n","import { readMetalDecoratorBagFromConstructor, type MetalColumnDef, type MetalDecoratorBag } from \"./readMetalBag.js\";\n\nexport type JsonSchema = Record<string, any>;\n\nexport type EntitySchemaMode = \"read\" | \"create\" | \"update\";\n\nexport interface SchemaFromEntityOptions {\n name?: string;\n stripEntitySuffix?: boolean;\n mode?: EntitySchemaMode;\n additionalProperties?: boolean;\n includeRelations?: \"none\" | \"inline\";\n}\n\nfunction defaultSchemaName(ctor: Function, strip: boolean) {\n const raw = ctor.name || \"AnonymousEntity\";\n return strip ? raw.replace(/Entity$/i, \"\") || raw : raw;\n}\n\nfunction columnTypeToSchema(col: MetalColumnDef): JsonSchema {\n const t = String(col.type).toLowerCase();\n const s: JsonSchema = {};\n\n if ([\"varchar\", \"text\", \"string\", \"char\", \"citext\"].includes(t)) {\n s.type = \"string\";\n const a0 = Array.isArray(col.args) ? col.args[0] : undefined;\n if (typeof a0 === \"number\" && Number.isFinite(a0) && a0 > 0) s.maxLength = a0;\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"uuid\"].includes(t)) {\n s.type = \"string\";\n s.format = \"uuid\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"timestamp\", \"timestamptz\", \"datetime\"].includes(t)) {\n s.type = \"string\";\n s.format = \"date-time\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n if ([\"date\"].includes(t)) {\n s.type = \"string\";\n s.format = \"date\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"bool\", \"boolean\"].includes(t)) {\n s.type = \"boolean\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"int\", \"int4\", \"integer\", \"smallint\", \"int2\", \"serial\", \"bigserial\"].includes(t)) {\n s.type = \"integer\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"bigint\", \"int8\"].includes(t)) {\n s.type = \"string\";\n s.format = \"int64\";\n s.pattern = \"^-?\\\\d+$\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"float\", \"float4\", \"float8\", \"double\", \"decimal\", \"numeric\", \"real\"].includes(t)) {\n s.type = \"number\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"json\", \"jsonb\"].includes(t)) {\n s.type = [\"object\", \"array\", \"string\", \"number\", \"boolean\", \"null\"];\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n s.type = \"string\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n}\n\nfunction isLiteralDefault(v: unknown) {\n return v === null || [\"string\", \"number\", \"boolean\"].includes(typeof v);\n}\n\nfunction makeNullable(schema: JsonSchema): JsonSchema {\n if (schema.type === \"null\") return schema;\n if (Array.isArray(schema.type)) {\n if (!schema.type.includes(\"null\")) schema.type = [...schema.type, \"null\"];\n return schema;\n }\n if (typeof schema.type === \"string\") {\n schema.type = [schema.type, \"null\"];\n } else {\n schema.type = [\"null\"];\n }\n return schema;\n}\n\nfunction isGenerated(col: MetalColumnDef) {\n return !!col.primary || !!col.autoIncrement || col.generated != null;\n}\n\nfunction shouldIncludeColumn(col: MetalColumnDef, mode: \"read\" | \"create\" | \"update\") {\n if (mode === \"read\") return true;\n if (mode === \"create\") return !isGenerated(col);\n if (mode === \"update\") return true;\n return true;\n}\n\nfunction shouldRequire(col: MetalColumnDef, mode: \"read\" | \"create\" | \"update\") {\n if (mode === \"update\") return false;\n if (!col.notNull) return false;\n if (mode === \"create\" && col.default != null) return false;\n return true;\n}\n\nexport function schemaFromEntity(ctor: Function, opts: SchemaFromEntityOptions = {}): JsonSchema | undefined {\n const bag = readMetalDecoratorBagFromConstructor(ctor);\n if (!bag || !Array.isArray(bag.columns) || bag.columns.length === 0) return undefined;\n\n const mode = opts.mode ?? \"read\";\n const name = opts.name ?? defaultSchemaName(ctor, opts.stripEntitySuffix ?? true);\n\n const schema: JsonSchema = {\n title: name,\n type: \"object\",\n properties: {},\n additionalProperties: opts.additionalProperties ?? true\n };\n\n const required: string[] = [];\n\n for (const entry of bag.columns) {\n const prop = entry.propertyName;\n const col = entry.column;\n\n if (!shouldIncludeColumn(col, mode)) continue;\n\n const propSchema = columnTypeToSchema(col);\n\n if (!col.notNull) makeNullable(propSchema);\n\n if (isLiteralDefault(col.default)) propSchema.default = col.default;\n\n if (mode === \"read\" && col.primary) propSchema.readOnly = true;\n\n (schema.properties as any)[prop] = propSchema;\n\n if (shouldRequire(col, mode)) required.push(prop);\n }\n\n if (required.length) schema.required = required;\n\n if ((opts.includeRelations ?? \"none\") === \"inline\") {\n for (const r of bag.relations ?? []) {\n const rel = r.relation;\n if (typeof rel?.target !== \"function\") continue;\n\n let target: any;\n try {\n target = rel.target();\n } catch {\n continue;\n }\n if (typeof target !== \"function\") continue;\n\n const targetName = defaultSchemaName(target, true);\n (schema.properties as any)[r.propertyName] = { $ref: `#/components/schemas/${targetName}` };\n }\n }\n\n return schema;\n}\n","import { schemaFromEntity, type SchemaFromEntityOptions, type JsonSchema } from \"./schemaFromEntity.js\";\n\nfunction deepMerge(a: any, b: any): any {\n if (Array.isArray(a) || Array.isArray(b)) return b ?? a;\n if (a && typeof a === \"object\" && b && typeof b === \"object\") {\n const out: any = { ...a };\n for (const [k, v] of Object.entries(b)) out[k] = deepMerge(out[k], v);\n return out;\n }\n return b ?? a;\n}\n\nexport interface RegisterMetalEntitiesOptions extends SchemaFromEntityOptions {\n merge?: \"override\" | \"merge\";\n}\n\nexport function registerMetalEntities(\n openapi: any,\n entities: Function[],\n opts: RegisterMetalEntitiesOptions = {}\n) {\n openapi.components ??= {};\n openapi.components.schemas ??= {};\n\n const mergeMode = opts.merge ?? \"merge\";\n\n for (const ctor of entities) {\n const s = schemaFromEntity(ctor, opts);\n if (!s) continue;\n\n const name = s.title || ctor.name;\n const existing = openapi.components.schemas[name];\n\n if (!existing || mergeMode === \"override\") {\n openapi.components.schemas[name] = s;\n } else {\n openapi.components.schemas[name] = deepMerge(existing, s);\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../src/metal/index.ts","../../src/metal/symbolMetadata.ts","../../src/metal/readMetalBag.ts","../../src/metal/schemaFromEntity.ts","../../src/metal/registerMetalEntities.ts"],"sourcesContent":["export { ensureSymbolMetadata } from \"./symbolMetadata.js\";\nexport { readMetalDecoratorBagFromConstructor, METAL_METADATA_KEY } from \"./readMetalBag.js\";\nexport { schemaFromEntity } from \"./schemaFromEntity.js\";\nexport { registerMetalEntities } from \"./registerMetalEntities.js\";\n\nexport type { SchemaFromEntityOptions, EntitySchemaMode, JsonSchema } from \"./schemaFromEntity.js\";\nexport type { SearchWhere, SearchWhereDepth, SearchWhereOptions, SearchWherePath } from \"./searchWhere.js\";\n","export function ensureSymbolMetadata(): symbol {\n const s = Symbol as unknown as { metadata?: symbol };\n if (!s.metadata) {\n s.metadata = Symbol(\"Symbol.metadata\");\n }\n return s.metadata;\n}\n","import { ensureSymbolMetadata } from \"./symbolMetadata.js\";\n\nexport const METAL_METADATA_KEY = \"metal-orm:decorators\";\n\nexport type MetalColumnDef = {\n type: string;\n args?: unknown[];\n dialectTypes?: unknown;\n notNull?: boolean;\n primary?: boolean;\n tsType?: unknown;\n unique?: boolean;\n default?: unknown;\n autoIncrement?: boolean;\n generated?: unknown;\n check?: unknown;\n references?: unknown;\n comment?: string;\n};\n\nexport type MetalRelationMetadata = {\n kind: string;\n propertyKey: string;\n target?: (...args: any[]) => any;\n};\n\nexport type MetalDecoratorBag = {\n columns: Array<{ propertyName: string; column: MetalColumnDef }>;\n relations: Array<{ propertyName: string; relation: MetalRelationMetadata }>;\n};\n\nexport function readMetalDecoratorBagFromConstructor(ctor: object): MetalDecoratorBag | undefined {\n const metadataSymbol = ensureSymbolMetadata();\n const metadata = Reflect.get(ctor, metadataSymbol) as Record<PropertyKey, unknown> | undefined;\n return metadata?.[METAL_METADATA_KEY] as MetalDecoratorBag | undefined;\n}\n","import { readMetalDecoratorBagFromConstructor, type MetalColumnDef, type MetalDecoratorBag } from \"./readMetalBag.js\";\n\nexport type JsonSchema = Record<string, any>;\n\nexport type EntitySchemaMode = \"read\" | \"create\" | \"update\";\n\nexport interface SchemaFromEntityOptions {\n name?: string;\n stripEntitySuffix?: boolean;\n mode?: EntitySchemaMode;\n additionalProperties?: boolean;\n includeRelations?: \"none\" | \"inline\";\n}\n\nfunction defaultSchemaName(ctor: Function, strip: boolean) {\n const raw = ctor.name || \"AnonymousEntity\";\n return strip ? raw.replace(/Entity$/i, \"\") || raw : raw;\n}\n\nfunction columnTypeToSchema(col: MetalColumnDef): JsonSchema {\n const t = String(col.type).toLowerCase();\n const s: JsonSchema = {};\n\n if ([\"varchar\", \"text\", \"string\", \"char\", \"citext\"].includes(t)) {\n s.type = \"string\";\n const a0 = Array.isArray(col.args) ? col.args[0] : undefined;\n if (typeof a0 === \"number\" && Number.isFinite(a0) && a0 > 0) s.maxLength = a0;\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"uuid\"].includes(t)) {\n s.type = \"string\";\n s.format = \"uuid\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"timestamp\", \"timestamptz\", \"datetime\"].includes(t)) {\n s.type = \"string\";\n s.format = \"date-time\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n if ([\"date\"].includes(t)) {\n s.type = \"string\";\n s.format = \"date\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"bool\", \"boolean\"].includes(t)) {\n s.type = \"boolean\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"int\", \"int4\", \"integer\", \"smallint\", \"int2\", \"serial\", \"bigserial\"].includes(t)) {\n s.type = \"integer\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"bigint\", \"int8\"].includes(t)) {\n s.type = \"string\";\n s.format = \"int64\";\n s.pattern = \"^-?\\\\d+$\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"float\", \"float4\", \"float8\", \"double\", \"decimal\", \"numeric\", \"real\"].includes(t)) {\n s.type = \"number\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n if ([\"json\", \"jsonb\"].includes(t)) {\n s.type = [\"object\", \"array\", \"string\", \"number\", \"boolean\", \"null\"];\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n }\n\n s.type = \"string\";\n if (typeof col.comment === \"string\") s.description = col.comment;\n return s;\n}\n\nfunction isLiteralDefault(v: unknown) {\n return v === null || [\"string\", \"number\", \"boolean\"].includes(typeof v);\n}\n\nfunction makeNullable(schema: JsonSchema): JsonSchema {\n if (schema.type === \"null\") return schema;\n if (Array.isArray(schema.type)) {\n if (!schema.type.includes(\"null\")) schema.type = [...schema.type, \"null\"];\n return schema;\n }\n if (typeof schema.type === \"string\") {\n schema.type = [schema.type, \"null\"];\n } else {\n schema.type = [\"null\"];\n }\n return schema;\n}\n\nfunction isGenerated(col: MetalColumnDef) {\n return !!col.primary || !!col.autoIncrement || col.generated != null;\n}\n\nfunction shouldIncludeColumn(col: MetalColumnDef, mode: \"read\" | \"create\" | \"update\") {\n if (mode === \"read\") return true;\n if (mode === \"create\") return !isGenerated(col);\n if (mode === \"update\") return true;\n return true;\n}\n\nfunction shouldRequire(col: MetalColumnDef, mode: \"read\" | \"create\" | \"update\") {\n if (mode === \"update\") return false;\n if (!col.notNull) return false;\n if (mode === \"create\" && col.default != null) return false;\n return true;\n}\n\nexport function schemaFromEntity(ctor: Function, opts: SchemaFromEntityOptions = {}): JsonSchema | undefined {\n const bag = readMetalDecoratorBagFromConstructor(ctor);\n if (!bag || !Array.isArray(bag.columns) || bag.columns.length === 0) return undefined;\n\n const mode = opts.mode ?? \"read\";\n const name = opts.name ?? defaultSchemaName(ctor, opts.stripEntitySuffix ?? true);\n\n const schema: JsonSchema = {\n title: name,\n type: \"object\",\n properties: {},\n additionalProperties: opts.additionalProperties ?? true\n };\n\n const required: string[] = [];\n\n for (const entry of bag.columns) {\n const prop = entry.propertyName;\n const col = entry.column;\n\n if (!shouldIncludeColumn(col, mode)) continue;\n\n const propSchema = columnTypeToSchema(col);\n\n if (!col.notNull) makeNullable(propSchema);\n\n if (isLiteralDefault(col.default)) propSchema.default = col.default;\n\n if (mode === \"read\" && col.primary) propSchema.readOnly = true;\n\n (schema.properties as any)[prop] = propSchema;\n\n if (shouldRequire(col, mode)) required.push(prop);\n }\n\n if (required.length) schema.required = required;\n\n if ((opts.includeRelations ?? \"none\") === \"inline\") {\n for (const r of bag.relations ?? []) {\n const rel = r.relation;\n if (typeof rel?.target !== \"function\") continue;\n\n let target: any;\n try {\n target = rel.target();\n } catch {\n continue;\n }\n if (typeof target !== \"function\") continue;\n\n const targetName = defaultSchemaName(target, true);\n (schema.properties as any)[r.propertyName] = { $ref: `#/components/schemas/${targetName}` };\n }\n }\n\n return schema;\n}\n","import { schemaFromEntity, type SchemaFromEntityOptions, type JsonSchema } from \"./schemaFromEntity.js\";\n\nfunction deepMerge(a: any, b: any): any {\n if (Array.isArray(a) || Array.isArray(b)) return b ?? a;\n if (a && typeof a === \"object\" && b && typeof b === \"object\") {\n const out: any = { ...a };\n for (const [k, v] of Object.entries(b)) out[k] = deepMerge(out[k], v);\n return out;\n }\n return b ?? a;\n}\n\nexport interface RegisterMetalEntitiesOptions extends SchemaFromEntityOptions {\n merge?: \"override\" | \"merge\";\n}\n\nexport function registerMetalEntities(\n openapi: any,\n entities: Function[],\n opts: RegisterMetalEntitiesOptions = {}\n) {\n openapi.components ??= {};\n openapi.components.schemas ??= {};\n\n const mergeMode = opts.merge ?? \"merge\";\n\n for (const ctor of entities) {\n const s = schemaFromEntity(ctor, opts);\n if (!s) continue;\n\n const name = s.title || ctor.name;\n const existing = openapi.components.schemas[name];\n\n if (!existing || mergeMode === \"override\") {\n openapi.components.schemas[name] = s;\n } else {\n openapi.components.schemas[name] = deepMerge(existing, s);\n }\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -32,11 +32,16 @@ type WhereShape<TEntity extends object, Depth extends SearchWhereDepth, IncludeP
|
|
|
32
32
|
export type SearchWherePath<TEntity extends object, Depth extends SearchWhereDepth = 2> = "*" | ScalarKeys<TEntity> | RelationKeys<TEntity> | (Depth extends 0 ? never : {
|
|
33
33
|
[K in RelationKeys<TEntity>]: `${K}.*` | `${K}.${SearchWherePath<RelationTarget<NonNullable<TEntity[K]>>, PrevDepth[Depth]>}`;
|
|
34
34
|
}[RelationKeys<TEntity>]);
|
|
35
|
-
|
|
35
|
+
type BaseSearchWhereOptions = {
|
|
36
36
|
maxDepth?: SearchWhereDepth;
|
|
37
|
-
include?: readonly
|
|
38
|
-
exclude?: readonly
|
|
37
|
+
include?: readonly string[];
|
|
38
|
+
exclude?: readonly string[];
|
|
39
39
|
};
|
|
40
|
-
export type
|
|
40
|
+
export type SearchWhereOptions<TEntity extends object, Depth extends SearchWhereDepth = 5> = {
|
|
41
|
+
maxDepth?: Depth;
|
|
42
|
+
include?: readonly SearchWherePath<TEntity, Depth>[];
|
|
43
|
+
exclude?: readonly SearchWherePath<TEntity, Depth>[];
|
|
44
|
+
};
|
|
45
|
+
export type SearchWhere<TEntity extends object, Opts extends BaseSearchWhereOptions = {}> = Opts extends SearchWhereOptions<TEntity, ResolveDepth<Opts>> ? WhereShape<TEntity, ResolveDepth<Opts>, ResolveInclude<Opts>, ResolveExclude<Opts>> : never;
|
|
41
46
|
export {};
|
|
42
47
|
//# sourceMappingURL=searchWhere.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"searchWhere.d.ts","sourceRoot":"","sources":["../../src/metal/searchWhere.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"searchWhere.d.ts","sourceRoot":"","sources":["../../src/metal/searchWhere.ts"],"names":[],"mappings":"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"}
|
|
@@ -28,8 +28,32 @@ var import_child_process = require("child_process");
|
|
|
28
28
|
var import_path = require("path");
|
|
29
29
|
var import_fs = require("fs");
|
|
30
30
|
var import_node_process = __toESM(require("process"), 1);
|
|
31
|
-
|
|
32
|
-
|
|
31
|
+
function findRepoRoot(startDir) {
|
|
32
|
+
let current = startDir;
|
|
33
|
+
while (true) {
|
|
34
|
+
const examplesDir = (0, import_path.join)(current, "examples");
|
|
35
|
+
const packageJson = (0, import_path.join)(current, "package.json");
|
|
36
|
+
if ((0, import_fs.existsSync)(examplesDir) && (0, import_fs.existsSync)(packageJson)) {
|
|
37
|
+
return current;
|
|
38
|
+
}
|
|
39
|
+
const parent = (0, import_path.dirname)(current);
|
|
40
|
+
if (parent === current) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
current = parent;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function resolveRepoRoot() {
|
|
47
|
+
const candidates = [import_node_process.default.env.INIT_CWD, import_node_process.default.cwd()].filter(
|
|
48
|
+
(dir) => Boolean(dir)
|
|
49
|
+
);
|
|
50
|
+
for (const candidate of candidates) {
|
|
51
|
+
const root = findRepoRoot(candidate);
|
|
52
|
+
if (root) return root;
|
|
53
|
+
}
|
|
54
|
+
return import_node_process.default.cwd();
|
|
55
|
+
}
|
|
56
|
+
var repoRoot = resolveRepoRoot();
|
|
33
57
|
function isWindows() {
|
|
34
58
|
return import_node_process.default.platform === "win32";
|
|
35
59
|
}
|
|
@@ -50,7 +74,7 @@ function spawnCommand(args, cwd) {
|
|
|
50
74
|
});
|
|
51
75
|
}
|
|
52
76
|
function getExamples() {
|
|
53
|
-
const examplesDir = (0, import_path.join)(
|
|
77
|
+
const examplesDir = (0, import_path.join)(repoRoot, "examples");
|
|
54
78
|
if (!(0, import_fs.existsSync)(examplesDir)) return [];
|
|
55
79
|
return (0, import_fs.readdirSync)(examplesDir).filter((name) => {
|
|
56
80
|
const path = (0, import_path.join)(examplesDir, name);
|
|
@@ -91,7 +115,7 @@ async function main() {
|
|
|
91
115
|
import_node_process.default.exit(0);
|
|
92
116
|
}
|
|
93
117
|
const example = args[0] || "basic";
|
|
94
|
-
const examplePath = (0, import_path.join)(
|
|
118
|
+
const examplePath = (0, import_path.join)(repoRoot, "examples", example);
|
|
95
119
|
if (!(0, import_fs.existsSync)(examplePath)) {
|
|
96
120
|
console.error(`
|
|
97
121
|
\u274C Example "${example}" not found.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../scripts/adorn-example.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * Adorn-API Example Runner\n * \n * Usage:\n * npx adorn-example <example-name>\n * npx adorn-example blog-platform\n * npx adorn-example task-manager\n * \n * Or from the adorn-api project root:\n * npm run example <example-name>\n */\n\nimport { execSync, spawn, ChildProcess } from \"child_process\";\nimport { dirname, join } from \"path\";\nimport { existsSync, readdirSync, statSync } from \"fs\";\nimport process from \"node:process\";\n\
|
|
1
|
+
{"version":3,"sources":["../../scripts/adorn-example.ts"],"sourcesContent":["#!/usr/bin/env node\n\n/**\n * Adorn-API Example Runner\n * \n * Usage:\n * npx adorn-example <example-name>\n * npx adorn-example blog-platform\n * npx adorn-example task-manager\n * \n * Or from the adorn-api project root:\n * npm run example <example-name>\n */\n\nimport { execSync, spawn, ChildProcess } from \"child_process\";\nimport { dirname, join } from \"path\";\nimport { existsSync, readdirSync, statSync } from \"fs\";\nimport process from \"node:process\";\n\nfunction findRepoRoot(startDir: string): string | null {\n let current = startDir;\n while (true) {\n const examplesDir = join(current, \"examples\");\n const packageJson = join(current, \"package.json\");\n if (existsSync(examplesDir) && existsSync(packageJson)) {\n return current;\n }\n const parent = dirname(current);\n if (parent === current) {\n return null;\n }\n current = parent;\n }\n}\n\nfunction resolveRepoRoot(): string {\n const candidates = [process.env.INIT_CWD, process.cwd()].filter(\n (dir): dir is string => Boolean(dir),\n );\n\n for (const candidate of candidates) {\n const root = findRepoRoot(candidate);\n if (root) return root;\n }\n\n return process.cwd();\n}\n\nconst repoRoot = resolveRepoRoot();\n\nfunction isWindows(): boolean {\n return process.platform === \"win32\";\n}\n\nfunction runCommand(command: string, cwd: string): void {\n const shell = isWindows() ? \"cmd.exe\" : \"/bin/bash\";\n execSync(command, { cwd, stdio: \"inherit\", shell });\n}\n\nfunction spawnCommand(args: string[], cwd: string): Promise<ChildProcess> {\n return new Promise((resolve, reject) => {\n const cmd = isWindows() ? \"npm.cmd\" : \"npm\";\n const child = spawn(cmd, args, {\n cwd,\n stdio: \"inherit\",\n shell: isWindows(),\n });\n\n child.on(\"error\", reject);\n resolve(child);\n });\n}\n\nfunction getExamples(): string[] {\n const examplesDir = join(repoRoot, \"examples\");\n if (!existsSync(examplesDir)) return [];\n return readdirSync(examplesDir).filter(name => {\n const path = join(examplesDir, name);\n return statSync(path).isDirectory();\n });\n}\n\nfunction printHelp(): void {\n console.log(`\nUsage: npx adorn-example <example-name>\n\nRun an adorn-api example with automatic dependency installation.\n\nExamples:\n npx adorn-example blog-platform\n npx adorn-example task-manager\n npx adorn-example basic\n\nAvailable examples:\n${getExamples().map(e => ` - ${e}`).join(\"\\n\")}\n\nOptions:\n -h, --help Show this help message\n -l, --list List all available examples\n\nFrom the adorn-api project root, you can also use:\n npm run example <example-name>\n`);\n}\n\nasync function main(): Promise<void> {\n const args = process.argv.slice(2);\n \n if (args.includes(\"-h\") || args.includes(\"--help\")) {\n printHelp();\n process.exit(0);\n }\n\n if (args.includes(\"-l\") || args.includes(\"--list\")) {\n console.log(\"Available examples:\");\n getExamples().forEach(ex => console.log(` - ${ex}`));\n process.exit(0);\n }\n\n const example = args[0] || \"basic\";\n const examplePath = join(repoRoot, \"examples\", example);\n\n if (!existsSync(examplePath)) {\n console.error(`\\nā Example \"${example}\" not found.\\n`);\n console.log(\"Available examples:\");\n getExamples().forEach(ex => console.log(` - ${ex}`));\n process.exit(1);\n }\n\n console.log(`\\nš Running \"${example}\" example...\\n`);\n\n let child: ChildProcess | null = null;\n\n try {\n const nodeModulesPath = join(examplePath, \"node_modules\");\n const nodeModulesExists = existsSync(nodeModulesPath);\n\n if (!nodeModulesExists) {\n console.log(\"š¦ Installing dependencies...\");\n runCommand(\"npm install\", examplePath);\n }\n\n console.log(\"š¦ Building artifacts...\");\n runCommand(\"npm run build\", examplePath);\n\n console.log(\"š Starting server...\\n\");\n console.log(\"Press Ctrl+C to stop\\n\");\n\n child = await spawnCommand([\"run\", \"dev\"], examplePath);\n\n process.on(\"SIGINT\", () => {\n if (child) child.kill(\"SIGINT\");\n });\n\n process.on(\"SIGTERM\", () => {\n if (child) child.kill(\"SIGTERM\");\n });\n\n await new Promise<void>((resolve, reject) => {\n if (!child) {\n reject(new Error(\"Child process not started\"));\n return;\n }\n child.on(\"exit\", (code) => {\n if (code === 0 || code === null) {\n resolve();\n } else {\n reject(new Error(`Process exited with code ${code}`));\n }\n });\n child.on(\"error\", reject);\n });\n } catch (err: any) {\n if (err.code !== \"SIGINT\" && err.code !== \"SIGTERM\") {\n console.error(`\\nā Error: ${err.message}`);\n process.exit(1);\n }\n }\n}\n\nmain();\n"],"mappings":"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","names":["process"]}
|