xansql 1.1.0 → 1.1.1
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/core/Xansql.cjs +4 -3
- package/core/Xansql.cjs.map +1 -1
- package/core/Xansql.js +4 -3
- package/core/Xansql.js.map +1 -1
- package/core/classes/XansqlConfig.cjs +1 -1
- package/core/classes/XansqlConfig.cjs.map +1 -1
- package/core/classes/XansqlConfig.js +1 -1
- package/core/classes/XansqlConfig.js.map +1 -1
- package/model/types.d.ts +4 -0
- package/package.json +1 -1
- package/xt/fields/Enum.cjs +1 -1
- package/xt/fields/Enum.cjs.map +1 -1
- package/xt/fields/Enum.d.ts +1 -1
- package/xt/fields/Enum.js +1 -1
- package/xt/fields/Enum.js.map +1 -1
package/core/Xansql.cjs
CHANGED
|
@@ -29,19 +29,20 @@ class Xansql {
|
|
|
29
29
|
}
|
|
30
30
|
async execute(sql) {
|
|
31
31
|
const query = sql.trim().replace(/\s+/g, ' ');
|
|
32
|
-
|
|
32
|
+
const isDebug = this.config.debug && !sql.includes(this.Migration.model.table);
|
|
33
|
+
if (isDebug) {
|
|
33
34
|
console.log(`[DB] Executing → ${query}`);
|
|
34
35
|
}
|
|
35
36
|
try {
|
|
36
37
|
const result = await this.dialect.execute(query, this);
|
|
37
|
-
if (
|
|
38
|
+
if (isDebug) {
|
|
38
39
|
console.log(`[DB] Executed ✓`);
|
|
39
40
|
console.dir(result, { depth: null });
|
|
40
41
|
}
|
|
41
42
|
return result;
|
|
42
43
|
}
|
|
43
44
|
catch (error) {
|
|
44
|
-
if (
|
|
45
|
+
if (isDebug) {
|
|
45
46
|
console.error(`[DB] Execution failed ✗`);
|
|
46
47
|
console.error(query);
|
|
47
48
|
}
|
package/core/Xansql.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Xansql.cjs","sources":["../../src/core/Xansql.ts"],"sourcesContent":["import Model from \"../model\";\nimport { ExecuterResult, XansqlConfigType, XansqlConfigTypeRequired, XansqlFileMeta, XansqlFileUploadArgs } from \"./types\";\nimport XansqlTransaction from \"./classes/XansqlTransaction\";\nimport XansqlConfig from \"./classes/XansqlConfig\";\nimport XansqlError from \"./XansqlError\";\nimport { ModelClass } from \"../model/types\";\nimport { chunkFile, getFileId, totalChunks } from \"../utils/file\";\nimport Migration from \"./Migration\";\nimport fileScaner from \"../utils/fileScaner\";\n\n\nclass Xansql {\n private XansqlConfig: XansqlConfig;\n readonly config: XansqlConfigTypeRequired;\n readonly XansqlTransaction: XansqlTransaction;\n readonly models = new Map<ModelClass<any>, Model>()\n readonly Migration: Migration\n\n constructor(config: XansqlConfigType) {\n this.XansqlConfig = new XansqlConfig(this, config);\n this.config = this.XansqlConfig.parse()\n this.XansqlTransaction = new XansqlTransaction(this);\n this.Migration = new Migration(this)\n }\n\n get dialect() {\n return this.config.dialect;\n }\n\n model<M extends Model<any>>(model: ModelClass<M>, hooks?: any) {\n if (this.models.has(model)) {\n return this.models.get(model) as Model<ReturnType<M['schema']>>\n }\n const _model = new model(this)\n this.models.set(model, _model)\n return _model as Model<ReturnType<M['schema']>>\n }\n\n async execute(sql: string): Promise<ExecuterResult> {\n const query = sql.trim().replace(/\\s+/g, ' ');\n\n
|
|
1
|
+
{"version":3,"file":"Xansql.cjs","sources":["../../src/core/Xansql.ts"],"sourcesContent":["import Model from \"../model\";\nimport { ExecuterResult, XansqlConfigType, XansqlConfigTypeRequired, XansqlFileMeta, XansqlFileUploadArgs } from \"./types\";\nimport XansqlTransaction from \"./classes/XansqlTransaction\";\nimport XansqlConfig from \"./classes/XansqlConfig\";\nimport XansqlError from \"./XansqlError\";\nimport { ModelClass } from \"../model/types\";\nimport { chunkFile, getFileId, totalChunks } from \"../utils/file\";\nimport Migration from \"./Migration\";\nimport fileScaner from \"../utils/fileScaner\";\n\n\nclass Xansql {\n private XansqlConfig: XansqlConfig;\n readonly config: XansqlConfigTypeRequired;\n readonly XansqlTransaction: XansqlTransaction;\n readonly models = new Map<ModelClass<any>, Model>()\n readonly Migration: Migration\n\n constructor(config: XansqlConfigType) {\n this.XansqlConfig = new XansqlConfig(this, config);\n this.config = this.XansqlConfig.parse()\n this.XansqlTransaction = new XansqlTransaction(this);\n this.Migration = new Migration(this)\n }\n\n get dialect() {\n return this.config.dialect;\n }\n\n model<M extends Model<any>>(model: ModelClass<M>, hooks?: any) {\n if (this.models.has(model)) {\n return this.models.get(model) as Model<ReturnType<M['schema']>>\n }\n const _model = new model(this)\n this.models.set(model, _model)\n return _model as Model<ReturnType<M['schema']>>\n }\n\n async execute(sql: string): Promise<ExecuterResult> {\n const query = sql.trim().replace(/\\s+/g, ' ');\n\n const isDebug = this.config.debug && !sql.includes(this.Migration.model.table)\n\n if (isDebug) {\n console.log(`[DB] Executing → ${query}`);\n }\n\n try {\n const result = await this.dialect.execute(query, this) as ExecuterResult;\n\n if (isDebug) {\n console.log(`[DB] Executed ✓`);\n console.dir(result, { depth: null });\n }\n\n return result;\n } catch (error) {\n if (isDebug) {\n console.error(`[DB] Execution failed ✗`);\n console.error(query);\n }\n\n throw error; // never swallow DB errors\n }\n }\n\n async uploadFile(file: XansqlFileUploadArgs) {\n const fileConfig = this.config.file\n if (!fileConfig?.upload) {\n throw new XansqlError({\n code: \"NOT_FOUND\",\n message: `File upload is not supported by the current dialect.`\n });\n }\n if (file instanceof File) {\n // make chunk\n const fileId = await getFileId(file);\n\n const maxFileSize = fileConfig?.maxFilesize\n if (maxFileSize && file.size > maxFileSize * 1024) {\n throw new Error(`File size exceeds the limit of ${maxFileSize / 1024} MB`)\n }\n\n const chunkSize = fileConfig?.chunkSize\n\n // send metadata\n const filemeta: XansqlFileMeta = {\n fileId: fileId,\n name: file.name,\n size: file.size,\n type: file.type,\n totalChunks: totalChunks(file, chunkSize),\n chunkIndex: 0,\n isFinish: false\n }\n for await (let { chunk, chunkIndex } of chunkFile(file, chunkSize)) {\n filemeta.chunkIndex = chunkIndex;\n filemeta.isFinish = chunkIndex + 1 === filemeta.totalChunks;\n filemeta.chunkIndex = chunkIndex\n await this.uploadFile({\n chunk,\n meta: filemeta\n })\n }\n return filemeta\n }\n\n if (file.meta.chunkIndex === 0 && !fileScaner(file.chunk).valid) {\n throw new XansqlError({\n code: \"FILE_ERROR\",\n message: `Failed to process file \"${file.meta.name}\".`\n });\n }\n return await this.config.file.upload(file.chunk, file.meta, this);\n }\n\n async deleteFile(fileId: string) {\n if (!this.config.file?.delete) {\n throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `File delete is not supported by the current dialect.`\n });\n }\n return await this.config.file.delete(fileId, this);\n }\n}\n\nclass XansqlClone extends Xansql { }\n\n\nexport default Xansql"],"names":["file","getFileId","totalChunks","__asyncValues","chunkFile"],"mappings":"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"}
|
package/core/Xansql.js
CHANGED
|
@@ -27,19 +27,20 @@ class Xansql {
|
|
|
27
27
|
}
|
|
28
28
|
async execute(sql) {
|
|
29
29
|
const query = sql.trim().replace(/\s+/g, ' ');
|
|
30
|
-
|
|
30
|
+
const isDebug = this.config.debug && !sql.includes(this.Migration.model.table);
|
|
31
|
+
if (isDebug) {
|
|
31
32
|
console.log(`[DB] Executing → ${query}`);
|
|
32
33
|
}
|
|
33
34
|
try {
|
|
34
35
|
const result = await this.dialect.execute(query, this);
|
|
35
|
-
if (
|
|
36
|
+
if (isDebug) {
|
|
36
37
|
console.log(`[DB] Executed ✓`);
|
|
37
38
|
console.dir(result, { depth: null });
|
|
38
39
|
}
|
|
39
40
|
return result;
|
|
40
41
|
}
|
|
41
42
|
catch (error) {
|
|
42
|
-
if (
|
|
43
|
+
if (isDebug) {
|
|
43
44
|
console.error(`[DB] Execution failed ✗`);
|
|
44
45
|
console.error(query);
|
|
45
46
|
}
|
package/core/Xansql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Xansql.js","sources":["../../src/core/Xansql.ts"],"sourcesContent":["import Model from \"../model\";\nimport { ExecuterResult, XansqlConfigType, XansqlConfigTypeRequired, XansqlFileMeta, XansqlFileUploadArgs } from \"./types\";\nimport XansqlTransaction from \"./classes/XansqlTransaction\";\nimport XansqlConfig from \"./classes/XansqlConfig\";\nimport XansqlError from \"./XansqlError\";\nimport { ModelClass } from \"../model/types\";\nimport { chunkFile, getFileId, totalChunks } from \"../utils/file\";\nimport Migration from \"./Migration\";\nimport fileScaner from \"../utils/fileScaner\";\n\n\nclass Xansql {\n private XansqlConfig: XansqlConfig;\n readonly config: XansqlConfigTypeRequired;\n readonly XansqlTransaction: XansqlTransaction;\n readonly models = new Map<ModelClass<any>, Model>()\n readonly Migration: Migration\n\n constructor(config: XansqlConfigType) {\n this.XansqlConfig = new XansqlConfig(this, config);\n this.config = this.XansqlConfig.parse()\n this.XansqlTransaction = new XansqlTransaction(this);\n this.Migration = new Migration(this)\n }\n\n get dialect() {\n return this.config.dialect;\n }\n\n model<M extends Model<any>>(model: ModelClass<M>, hooks?: any) {\n if (this.models.has(model)) {\n return this.models.get(model) as Model<ReturnType<M['schema']>>\n }\n const _model = new model(this)\n this.models.set(model, _model)\n return _model as Model<ReturnType<M['schema']>>\n }\n\n async execute(sql: string): Promise<ExecuterResult> {\n const query = sql.trim().replace(/\\s+/g, ' ');\n\n
|
|
1
|
+
{"version":3,"file":"Xansql.js","sources":["../../src/core/Xansql.ts"],"sourcesContent":["import Model from \"../model\";\nimport { ExecuterResult, XansqlConfigType, XansqlConfigTypeRequired, XansqlFileMeta, XansqlFileUploadArgs } from \"./types\";\nimport XansqlTransaction from \"./classes/XansqlTransaction\";\nimport XansqlConfig from \"./classes/XansqlConfig\";\nimport XansqlError from \"./XansqlError\";\nimport { ModelClass } from \"../model/types\";\nimport { chunkFile, getFileId, totalChunks } from \"../utils/file\";\nimport Migration from \"./Migration\";\nimport fileScaner from \"../utils/fileScaner\";\n\n\nclass Xansql {\n private XansqlConfig: XansqlConfig;\n readonly config: XansqlConfigTypeRequired;\n readonly XansqlTransaction: XansqlTransaction;\n readonly models = new Map<ModelClass<any>, Model>()\n readonly Migration: Migration\n\n constructor(config: XansqlConfigType) {\n this.XansqlConfig = new XansqlConfig(this, config);\n this.config = this.XansqlConfig.parse()\n this.XansqlTransaction = new XansqlTransaction(this);\n this.Migration = new Migration(this)\n }\n\n get dialect() {\n return this.config.dialect;\n }\n\n model<M extends Model<any>>(model: ModelClass<M>, hooks?: any) {\n if (this.models.has(model)) {\n return this.models.get(model) as Model<ReturnType<M['schema']>>\n }\n const _model = new model(this)\n this.models.set(model, _model)\n return _model as Model<ReturnType<M['schema']>>\n }\n\n async execute(sql: string): Promise<ExecuterResult> {\n const query = sql.trim().replace(/\\s+/g, ' ');\n\n const isDebug = this.config.debug && !sql.includes(this.Migration.model.table)\n\n if (isDebug) {\n console.log(`[DB] Executing → ${query}`);\n }\n\n try {\n const result = await this.dialect.execute(query, this) as ExecuterResult;\n\n if (isDebug) {\n console.log(`[DB] Executed ✓`);\n console.dir(result, { depth: null });\n }\n\n return result;\n } catch (error) {\n if (isDebug) {\n console.error(`[DB] Execution failed ✗`);\n console.error(query);\n }\n\n throw error; // never swallow DB errors\n }\n }\n\n async uploadFile(file: XansqlFileUploadArgs) {\n const fileConfig = this.config.file\n if (!fileConfig?.upload) {\n throw new XansqlError({\n code: \"NOT_FOUND\",\n message: `File upload is not supported by the current dialect.`\n });\n }\n if (file instanceof File) {\n // make chunk\n const fileId = await getFileId(file);\n\n const maxFileSize = fileConfig?.maxFilesize\n if (maxFileSize && file.size > maxFileSize * 1024) {\n throw new Error(`File size exceeds the limit of ${maxFileSize / 1024} MB`)\n }\n\n const chunkSize = fileConfig?.chunkSize\n\n // send metadata\n const filemeta: XansqlFileMeta = {\n fileId: fileId,\n name: file.name,\n size: file.size,\n type: file.type,\n totalChunks: totalChunks(file, chunkSize),\n chunkIndex: 0,\n isFinish: false\n }\n for await (let { chunk, chunkIndex } of chunkFile(file, chunkSize)) {\n filemeta.chunkIndex = chunkIndex;\n filemeta.isFinish = chunkIndex + 1 === filemeta.totalChunks;\n filemeta.chunkIndex = chunkIndex\n await this.uploadFile({\n chunk,\n meta: filemeta\n })\n }\n return filemeta\n }\n\n if (file.meta.chunkIndex === 0 && !fileScaner(file.chunk).valid) {\n throw new XansqlError({\n code: \"FILE_ERROR\",\n message: `Failed to process file \"${file.meta.name}\".`\n });\n }\n return await this.config.file.upload(file.chunk, file.meta, this);\n }\n\n async deleteFile(fileId: string) {\n if (!this.config.file?.delete) {\n throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `File delete is not supported by the current dialect.`\n });\n }\n return await this.config.file.delete(fileId, this);\n }\n}\n\nclass XansqlClone extends Xansql { }\n\n\nexport default Xansql"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ class XansqlConfig {
|
|
|
12
12
|
code: "INTERNAL_ERROR",
|
|
13
13
|
message: `Dialect configuration is required in Xansql config.`,
|
|
14
14
|
});
|
|
15
|
-
if (!config.dialect.engine
|
|
15
|
+
if (!config.dialect.engine || !config.dialect.execute)
|
|
16
16
|
throw new XansqlError({
|
|
17
17
|
code: "INTERNAL_ERROR",
|
|
18
18
|
message: `Dialect engine and execute function are required in Xansql config.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XansqlConfig.cjs","sources":["../../../src/core/classes/XansqlConfig.ts"],"sourcesContent":["import { XansqlConfigTypeRequired, XansqlConfigType, XansqlDialectEngine } from \"../types\";\nimport Xansql from \"../Xansql\";\nimport XansqlError from \"../XansqlError\";\n\nclass XansqlConfig {\n readonly xansql: Xansql;\n readonly config: XansqlConfigType;\n readonly engins: XansqlDialectEngine[] = ['mysql', 'postgres', 'sqlite'];\n constructor(xansql: Xansql, config: XansqlConfigType) {\n this.xansql = xansql;\n this.config = config;\n\n if (!config.dialect) throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect configuration is required in Xansql config.`,\n })\n if (!config.dialect.engine
|
|
1
|
+
{"version":3,"file":"XansqlConfig.cjs","sources":["../../../src/core/classes/XansqlConfig.ts"],"sourcesContent":["import { XansqlConfigTypeRequired, XansqlConfigType, XansqlDialectEngine } from \"../types\";\nimport Xansql from \"../Xansql\";\nimport XansqlError from \"../XansqlError\";\n\nclass XansqlConfig {\n readonly xansql: Xansql;\n readonly config: XansqlConfigType;\n readonly engins: XansqlDialectEngine[] = ['mysql', 'postgres', 'sqlite'];\n constructor(xansql: Xansql, config: XansqlConfigType) {\n this.xansql = xansql;\n this.config = config;\n\n if (!config.dialect) throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect configuration is required in Xansql config.`,\n })\n if (!config.dialect.engine || !config.dialect.execute) throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect engine and execute function are required in Xansql config.`,\n })\n if (this.engins.indexOf(config.dialect.engine) === -1) throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect engine must be one of ${this.engins.join(', ')}`,\n })\n if (typeof config.dialect.execute !== 'function') throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect execute must be a function.`,\n })\n }\n\n parse() {\n const config = {\n ...this.config,\n }\n\n return config as XansqlConfigTypeRequired\n }\n}\n\nexport default XansqlConfig;"],"names":[],"mappings":";;;;AAIA,MAAM,YAAY,CAAA;IAIf,WAAA,CAAY,MAAc,EAAE,MAAwB,EAAA;QAD3C,IAAA,CAAA,MAAM,GAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;AAErE,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QAEpB,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,WAAW,CAAC;AACxC,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,OAAO,EAAE,CAAA,mDAAA,CAAqD;AAChE,aAAA,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,WAAW,CAAC;AAC1E,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,OAAO,EAAE,CAAA,kEAAA,CAAoE;AAC/E,aAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC;AAC1E,gBAAA,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,CAAA,8BAAA,EAAiC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE;AACpE,aAAA,CAAC;AACF,QAAA,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,UAAU;YAAE,MAAM,IAAI,WAAW,CAAC;AACrE,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,OAAO,EAAE,CAAA,mCAAA,CAAqC;AAChD,aAAA,CAAC;IACL;IAEA,KAAK,GAAA;AACF,QAAA,MAAM,MAAM,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACN,IAAI,CAAC,MAAM,CAChB;AAED,QAAA,OAAO,MAAkC;IAC5C;AACF;;;;"}
|
|
@@ -10,7 +10,7 @@ class XansqlConfig {
|
|
|
10
10
|
code: "INTERNAL_ERROR",
|
|
11
11
|
message: `Dialect configuration is required in Xansql config.`,
|
|
12
12
|
});
|
|
13
|
-
if (!config.dialect.engine
|
|
13
|
+
if (!config.dialect.engine || !config.dialect.execute)
|
|
14
14
|
throw new XansqlError({
|
|
15
15
|
code: "INTERNAL_ERROR",
|
|
16
16
|
message: `Dialect engine and execute function are required in Xansql config.`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XansqlConfig.js","sources":["../../../src/core/classes/XansqlConfig.ts"],"sourcesContent":["import { XansqlConfigTypeRequired, XansqlConfigType, XansqlDialectEngine } from \"../types\";\nimport Xansql from \"../Xansql\";\nimport XansqlError from \"../XansqlError\";\n\nclass XansqlConfig {\n readonly xansql: Xansql;\n readonly config: XansqlConfigType;\n readonly engins: XansqlDialectEngine[] = ['mysql', 'postgres', 'sqlite'];\n constructor(xansql: Xansql, config: XansqlConfigType) {\n this.xansql = xansql;\n this.config = config;\n\n if (!config.dialect) throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect configuration is required in Xansql config.`,\n })\n if (!config.dialect.engine
|
|
1
|
+
{"version":3,"file":"XansqlConfig.js","sources":["../../../src/core/classes/XansqlConfig.ts"],"sourcesContent":["import { XansqlConfigTypeRequired, XansqlConfigType, XansqlDialectEngine } from \"../types\";\nimport Xansql from \"../Xansql\";\nimport XansqlError from \"../XansqlError\";\n\nclass XansqlConfig {\n readonly xansql: Xansql;\n readonly config: XansqlConfigType;\n readonly engins: XansqlDialectEngine[] = ['mysql', 'postgres', 'sqlite'];\n constructor(xansql: Xansql, config: XansqlConfigType) {\n this.xansql = xansql;\n this.config = config;\n\n if (!config.dialect) throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect configuration is required in Xansql config.`,\n })\n if (!config.dialect.engine || !config.dialect.execute) throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect engine and execute function are required in Xansql config.`,\n })\n if (this.engins.indexOf(config.dialect.engine) === -1) throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect engine must be one of ${this.engins.join(', ')}`,\n })\n if (typeof config.dialect.execute !== 'function') throw new XansqlError({\n code: \"INTERNAL_ERROR\",\n message: `Dialect execute must be a function.`,\n })\n }\n\n parse() {\n const config = {\n ...this.config,\n }\n\n return config as XansqlConfigTypeRequired\n }\n}\n\nexport default XansqlConfig;"],"names":[],"mappings":";;AAIA,MAAM,YAAY,CAAA;IAIf,WAAA,CAAY,MAAc,EAAE,MAAwB,EAAA;QAD3C,IAAA,CAAA,MAAM,GAA0B,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC;AAErE,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QAEpB,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,IAAI,WAAW,CAAC;AACxC,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,OAAO,EAAE,CAAA,mDAAA,CAAqD;AAChE,aAAA,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,WAAW,CAAC;AAC1E,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,OAAO,EAAE,CAAA,kEAAA,CAAoE;AAC/E,aAAA,CAAC;AACF,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE;YAAE,MAAM,IAAI,WAAW,CAAC;AAC1E,gBAAA,IAAI,EAAE,gBAAgB;gBACtB,OAAO,EAAE,CAAA,8BAAA,EAAiC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA,CAAE;AACpE,aAAA,CAAC;AACF,QAAA,IAAI,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,KAAK,UAAU;YAAE,MAAM,IAAI,WAAW,CAAC;AACrE,gBAAA,IAAI,EAAE,gBAAgB;AACtB,gBAAA,OAAO,EAAE,CAAA,mCAAA,CAAqC;AAChD,aAAA,CAAC;IACL;IAEA,KAAK,GAAA;AACF,QAAA,MAAM,MAAM,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACN,IAAI,CAAC,MAAM,CAChB;AAED,QAAA,OAAO,MAAkC;IAC5C;AACF;;;;"}
|
package/model/types.d.ts
CHANGED
|
@@ -170,6 +170,8 @@ type CreateDataValue<F extends XqlField> = F extends XqlRelationOne<any> ? (F ex
|
|
|
170
170
|
type CreateDataArgs<S extends SchemaShape> = Normalize<{
|
|
171
171
|
[C in keyof S as S[C] extends XqlIDField ? never : S[C] extends XqlRelationMany<any> ? never : S[C]['meta'] extends {
|
|
172
172
|
nullable: true;
|
|
173
|
+
} ? never : S[C]['meta'] extends {
|
|
174
|
+
default: any;
|
|
173
175
|
} ? never : S[C]['meta'] extends {
|
|
174
176
|
createdAt: true;
|
|
175
177
|
} ? never : S[C]['meta'] extends {
|
|
@@ -178,6 +180,8 @@ type CreateDataArgs<S extends SchemaShape> = Normalize<{
|
|
|
178
180
|
} & {
|
|
179
181
|
[C in keyof S as S[C] extends XqlRelationMany<any> ? C : S[C]['meta'] extends {
|
|
180
182
|
nullable: true;
|
|
183
|
+
} ? C : S[C]['meta'] extends {
|
|
184
|
+
default: any;
|
|
181
185
|
} ? C : never]?: CreateDataValue<S[C]>;
|
|
182
186
|
}>;
|
|
183
187
|
type CreateArgs<S extends SchemaShape> = {
|
package/package.json
CHANGED
package/xt/fields/Enum.cjs
CHANGED
package/xt/fields/Enum.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Enum.cjs","sources":["../../../src/xt/fields/Enum.ts"],"sourcesContent":["import { XVEnum } from \"xanv\"\nimport { XansqlDialectEngine } from \"../../core/types\"\nimport XqlFieldInfo from \"../XqlFieldInfo\"\nimport { escapeSqlValue } from \"../../utils\"\n\nclass XqlEnum<const T extends string | number> extends XVEnum<T> {\n table!: string\n column_name!: string\n engine!: XansqlDialectEngine\n\n readonly value = {\n toSql: (value: unknown) => {\n const _value = super.parse(value) as string\n if (_value === undefined || _value === null) return 'NULL';\n return `'${escapeSqlValue(_value)}'`\n },\n\n fromSql: (value:
|
|
1
|
+
{"version":3,"file":"Enum.cjs","sources":["../../../src/xt/fields/Enum.ts"],"sourcesContent":["import { XVEnum } from \"xanv\"\nimport { XansqlDialectEngine } from \"../../core/types\"\nimport XqlFieldInfo from \"../XqlFieldInfo\"\nimport { escapeSqlValue } from \"../../utils\"\n\nclass XqlEnum<const T extends string | number> extends XVEnum<T> {\n table!: string\n column_name!: string\n engine!: XansqlDialectEngine\n\n readonly value = {\n toSql: (value: unknown) => {\n const _value = super.parse(value) as string\n if (_value === undefined || _value === null) return 'NULL';\n return `'${escapeSqlValue(_value)}'`\n },\n\n fromSql: (value: unknown): ReturnType<typeof this.parse> => {\n if (value === null || value === undefined) return null\n return value as any\n }\n }\n\n get info(): XqlFieldInfo {\n return new XqlFieldInfo(this)\n }\n\n optional(): any {\n throw new Error(\"optional not supported\");\n }\n nullable() {\n super.optional()\n return super.nullable();\n }\n index() {\n return this.set(\"index\", () => { }, true)\n }\n\n unique() {\n return this.set(\"unique\", () => { }, true)\n }\n}\n\nexport default XqlEnum"],"names":["XVEnum","escapeSqlValue"],"mappings":";;;;;;AAKA,MAAM,OAAyC,SAAQA,WAAS,CAAA;AAAhE,IAAA,WAAA,GAAA;;AAKY,QAAA,IAAA,CAAA,KAAK,GAAG;AACd,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAW;AAC3C,gBAAA,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;AAAE,oBAAA,OAAO,MAAM;AAC1D,gBAAA,OAAO,IAAIC,oBAAc,CAAC,MAAM,CAAC,GAAG;YACvC,CAAC;AAED,YAAA,OAAO,EAAE,CAAC,KAAc,KAAmC;AACxD,gBAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAAE,oBAAA,OAAO,IAAI;AACtD,gBAAA,OAAO,KAAY;YACtB;SACF;IAoBJ;AAlBG,IAAA,IAAI,IAAI,GAAA;AACL,QAAA,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC;IAChC;IAEA,QAAQ,GAAA;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;IAC5C;IACA,QAAQ,GAAA;QACL,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;IAC1B;IACA,KAAK,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC;IAC5C;IAEA,MAAM,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC;IAC7C;AACF;;;;"}
|
package/xt/fields/Enum.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ declare class XqlEnum<const T extends string | number> extends XVEnum<T> {
|
|
|
9
9
|
engine: XansqlDialectEngine;
|
|
10
10
|
readonly value: {
|
|
11
11
|
toSql: (value: unknown) => string;
|
|
12
|
-
fromSql: (value:
|
|
12
|
+
fromSql: (value: unknown) => ReturnType<typeof this.parse>;
|
|
13
13
|
};
|
|
14
14
|
get info(): XqlFieldInfo;
|
|
15
15
|
optional(): any;
|
package/xt/fields/Enum.js
CHANGED
package/xt/fields/Enum.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Enum.js","sources":["../../../src/xt/fields/Enum.ts"],"sourcesContent":["import { XVEnum } from \"xanv\"\nimport { XansqlDialectEngine } from \"../../core/types\"\nimport XqlFieldInfo from \"../XqlFieldInfo\"\nimport { escapeSqlValue } from \"../../utils\"\n\nclass XqlEnum<const T extends string | number> extends XVEnum<T> {\n table!: string\n column_name!: string\n engine!: XansqlDialectEngine\n\n readonly value = {\n toSql: (value: unknown) => {\n const _value = super.parse(value) as string\n if (_value === undefined || _value === null) return 'NULL';\n return `'${escapeSqlValue(_value)}'`\n },\n\n fromSql: (value:
|
|
1
|
+
{"version":3,"file":"Enum.js","sources":["../../../src/xt/fields/Enum.ts"],"sourcesContent":["import { XVEnum } from \"xanv\"\nimport { XansqlDialectEngine } from \"../../core/types\"\nimport XqlFieldInfo from \"../XqlFieldInfo\"\nimport { escapeSqlValue } from \"../../utils\"\n\nclass XqlEnum<const T extends string | number> extends XVEnum<T> {\n table!: string\n column_name!: string\n engine!: XansqlDialectEngine\n\n readonly value = {\n toSql: (value: unknown) => {\n const _value = super.parse(value) as string\n if (_value === undefined || _value === null) return 'NULL';\n return `'${escapeSqlValue(_value)}'`\n },\n\n fromSql: (value: unknown): ReturnType<typeof this.parse> => {\n if (value === null || value === undefined) return null\n return value as any\n }\n }\n\n get info(): XqlFieldInfo {\n return new XqlFieldInfo(this)\n }\n\n optional(): any {\n throw new Error(\"optional not supported\");\n }\n nullable() {\n super.optional()\n return super.nullable();\n }\n index() {\n return this.set(\"index\", () => { }, true)\n }\n\n unique() {\n return this.set(\"unique\", () => { }, true)\n }\n}\n\nexport default XqlEnum"],"names":[],"mappings":";;;;AAKA,MAAM,OAAyC,SAAQ,MAAS,CAAA;AAAhE,IAAA,WAAA,GAAA;;AAKY,QAAA,IAAA,CAAA,KAAK,GAAG;AACd,YAAA,KAAK,EAAE,CAAC,KAAc,KAAI;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAW;AAC3C,gBAAA,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI;AAAE,oBAAA,OAAO,MAAM;AAC1D,gBAAA,OAAO,IAAI,cAAc,CAAC,MAAM,CAAC,GAAG;YACvC,CAAC;AAED,YAAA,OAAO,EAAE,CAAC,KAAc,KAAmC;AACxD,gBAAA,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;AAAE,oBAAA,OAAO,IAAI;AACtD,gBAAA,OAAO,KAAY;YACtB;SACF;IAoBJ;AAlBG,IAAA,IAAI,IAAI,GAAA;AACL,QAAA,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC;IAChC;IAEA,QAAQ,GAAA;AACL,QAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;IAC5C;IACA,QAAQ,GAAA;QACL,KAAK,CAAC,QAAQ,EAAE;AAChB,QAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;IAC1B;IACA,KAAK,GAAA;AACF,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC;IAC5C;IAEA,MAAM,GAAA;AACH,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAK,EAAG,CAAC,EAAE,IAAI,CAAC;IAC7C;AACF;;;;"}
|