@loykin/datasourcekit 0.0.2 → 0.0.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/README.md +16 -3
- package/dist/{chunk-Z2DGIUJ2.js → chunk-NSZRSVET.js} +32 -3
- package/dist/chunk-NSZRSVET.js.map +1 -0
- package/dist/index.cjs +52 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +23 -8
- package/dist/index.js.map +1 -1
- package/dist/{manager-C5PgvWNH.d.cts → manager-DOC7PPiJ.d.cts} +58 -5
- package/dist/{manager-C5PgvWNH.d.ts → manager-DOC7PPiJ.d.ts} +58 -5
- package/dist/testing.cjs +25 -6
- package/dist/testing.cjs.map +1 -1
- package/dist/testing.d.cts +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.js +11 -7
- package/dist/testing.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-Z2DGIUJ2.js.map +0 -1
package/dist/testing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/testing.ts"],"names":[],"mappings":"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","file":"testing.js","sourcesContent":["import { DatasourceConflictError, DatasourceNotFoundError } from './errors'\nimport type { DatasourceManagerBackend } from './manager'\nimport type {\n DataQuery,\n DatasourceCreateInput,\n DatasourceInstance,\n DatasourceListOptions,\n DatasourceListResult,\n DatasourceTypeInfo,\n DatasourceUpdateInput,\n QueryResult,\n} from './types'\n\nfunction nextVersion(current?: string): string {\n return String(Number(current ?? '0') + 1)\n}\n\nfunction defaultTypes(seed: DatasourceInstance[]): DatasourceTypeInfo[] {\n const seen = new Set<string>()\n const types: DatasourceTypeInfo[] = []\n for (const instance of seed) {\n if (seen.has(instance.type)) continue\n seen.add(instance.type)\n types.push({\n type: instance.type,\n name: instance.type,\n enabled: true,\n installed: true,\n })\n }\n return types\n}\n\nexport interface CreateMemoryDatasourceBackendOptions {\n instances?: DatasourceInstance[]\n types?: DatasourceTypeInfo[]\n}\n\nexport function createMemoryDatasourceBackend(\n options: CreateMemoryDatasourceBackendOptions = {},\n): DatasourceManagerBackend {\n let store: DatasourceInstance[] = (options.instances ?? []).map((d) => ({ ...d }))\n let types: DatasourceTypeInfo[] = (options.types ?? defaultTypes(store)).map((t) => ({ ...t }))\n\n function findType(type: string): DatasourceTypeInfo {\n const info = types.find((t) => t.type === type)\n if (!info) throw new DatasourceNotFoundError(type)\n return info\n }\n\n function findInstance(uid: string): DatasourceInstance {\n const ds = store.find((d) => d.uid === uid)\n if (!ds) throw new DatasourceNotFoundError(uid)\n return ds\n }\n\n return {\n types: {\n async list() {\n return types.map((t) => ({ ...t }))\n },\n\n async get(type) {\n return { ...findType(type) }\n },\n\n async install(type) {\n if (!types.some((t) => t.type === type)) {\n types = [...types, { type, name: type, installed: true, enabled: false }]\n }\n },\n\n async uninstall(type) {\n findType(type)\n types = types.filter((t) => t.type !== type)\n },\n\n async enable(type) {\n const current = findType(type)\n types = types.map((t) => t.type === type ? { ...current, enabled: true } : t)\n },\n\n async disable(type) {\n const current = findType(type)\n types = types.map((t) => t.type === type ? { ...current, enabled: false } : t)\n },\n },\n\n instances: {\n async list(listOptions?: DatasourceListOptions): Promise<DatasourceListResult> {\n let items = [...store]\n const filter = listOptions?.filter\n if (filter?.type !== undefined) {\n const filterTypes = Array.isArray(filter.type) ? filter.type : [filter.type]\n items = items.filter((d) => filterTypes.includes(d.type))\n }\n if (filter?.enabled !== undefined) {\n items = items.filter((d) => (d.enabled ?? true) === filter.enabled)\n }\n if (filter?.search !== undefined) {\n const query = filter.search.toLowerCase()\n items = items.filter(\n (d) => d.name.toLowerCase().includes(query) || d.uid.toLowerCase().includes(query),\n )\n }\n const total = items.length\n if (listOptions?.page !== undefined && listOptions?.pageSize !== undefined) {\n const start = listOptions.page * listOptions.pageSize\n items = items.slice(start, start + listOptions.pageSize)\n } else if (listOptions?.pageSize !== undefined) {\n items = items.slice(0, listOptions.pageSize)\n }\n return { items: items.map((d) => ({ ...d })), total }\n },\n\n async get(uid) {\n return { ...findInstance(uid) }\n },\n\n async create(input: DatasourceCreateInput) {\n const now = new Date().toISOString()\n const uid = input.uid ?? `ds-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`\n const ds: DatasourceInstance = {\n uid,\n type: input.type,\n name: input.name,\n ...(input.options !== undefined ? { options: input.options } : {}),\n enabled: input.enabled ?? true,\n ...(input.meta !== undefined ? { meta: input.meta } : {}),\n version: '1',\n createdAt: now,\n updatedAt: now,\n }\n store = [...store, ds]\n if (!types.some((t) => t.type === input.type)) {\n types = [...types, { type: input.type, name: input.type, installed: true, enabled: true }]\n }\n return { ...ds }\n },\n\n async update(uid, patch: DatasourceUpdateInput) {\n const idx = store.findIndex((d) => d.uid === uid)\n if (idx === -1) throw new DatasourceNotFoundError(uid)\n const ds = store[idx]\n if (patch.version !== undefined && ds.version !== patch.version) {\n throw new DatasourceConflictError(\n `\"${uid}\" version conflict: expected ${patch.version}, got ${ds.version}`,\n )\n }\n const updated: DatasourceInstance = {\n ...ds,\n ...(patch.name !== undefined ? { name: patch.name } : {}),\n ...(patch.options !== undefined ? { options: patch.options } : {}),\n ...(patch.enabled !== undefined ? { enabled: patch.enabled } : {}),\n ...(patch.meta !== undefined ? { meta: patch.meta } : {}),\n version: nextVersion(ds.version),\n updatedAt: new Date().toISOString(),\n }\n store = [...store.slice(0, idx), updated, ...store.slice(idx + 1)]\n return { ...updated }\n },\n\n async delete(uid) {\n findInstance(uid)\n store = store.filter((d) => d.uid !== uid)\n },\n },\n\n async query(request: DataQuery): Promise<QueryResult> {\n const ds = findInstance(request.datasourceUid)\n return {\n columns: [\n { name: 'name', type: 'string' },\n { name: 'type', type: 'string' },\n { name: 'version', type: 'string' },\n ],\n rows: [[ds.name, ds.type, ds.version ?? '']],\n requestId: request.id,\n meta: { datasourceUid: ds.uid },\n }\n },\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/testing.ts"],"names":[],"mappings":"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","file":"testing.js","sourcesContent":["import { DatasourceConflictError, DatasourceNotFoundError } from './errors'\nimport type { DatasourceManagerBackend } from './manager'\nimport { tableRowsToFrame } from './types'\nimport type {\n DataQuery,\n DatasourceContext,\n DatasourceCreateInput,\n DatasourceInstance,\n DatasourceListOptions,\n DatasourceListResult,\n DatasourceTypeInfo,\n DatasourceUpdateInput,\n QueryResult,\n} from './types'\n\nfunction nextVersion(current?: string): string {\n return String(Number(current ?? '0') + 1)\n}\n\nfunction defaultTypes(seed: DatasourceInstance[]): DatasourceTypeInfo[] {\n const seen = new Set<string>()\n const types: DatasourceTypeInfo[] = []\n for (const instance of seed) {\n if (seen.has(instance.type)) continue\n seen.add(instance.type)\n types.push({\n type: instance.type,\n name: instance.type,\n enabled: true,\n installed: true,\n })\n }\n return types\n}\n\nexport interface CreateMemoryDatasourceBackendOptions {\n instances?: DatasourceInstance[]\n types?: DatasourceTypeInfo[]\n}\n\nexport function createMemoryDatasourceBackend(\n options: CreateMemoryDatasourceBackendOptions = {},\n): DatasourceManagerBackend {\n let store: DatasourceInstance[] = (options.instances ?? []).map((d) => ({ ...d }))\n let types: DatasourceTypeInfo[] = (options.types ?? defaultTypes(store)).map((t) => ({ ...t }))\n\n function findType(type: string): DatasourceTypeInfo {\n const info = types.find((t) => t.type === type)\n if (!info) throw new DatasourceNotFoundError(type)\n return info\n }\n\n function findInstance(uid: string): DatasourceInstance {\n const ds = store.find((d) => d.uid === uid)\n if (!ds) throw new DatasourceNotFoundError(uid)\n return ds\n }\n\n return {\n types: {\n async list() {\n return types.map((t) => ({ ...t }))\n },\n\n async get(type) {\n return { ...findType(type) }\n },\n\n async install(type) {\n if (!types.some((t) => t.type === type)) {\n types = [...types, { type, name: type, installed: true, enabled: false }]\n }\n },\n\n async uninstall(type) {\n findType(type)\n types = types.filter((t) => t.type !== type)\n },\n\n async enable(type) {\n const current = findType(type)\n types = types.map((t) => t.type === type ? { ...current, enabled: true } : t)\n },\n\n async disable(type) {\n const current = findType(type)\n types = types.map((t) => t.type === type ? { ...current, enabled: false } : t)\n },\n },\n\n instances: {\n async list(listOptions?: DatasourceListOptions): Promise<DatasourceListResult> {\n let items = [...store]\n const filter = listOptions?.filter\n if (filter?.type !== undefined) {\n const filterTypes = Array.isArray(filter.type) ? filter.type : [filter.type]\n items = items.filter((d) => filterTypes.includes(d.type))\n }\n if (filter?.enabled !== undefined) {\n items = items.filter((d) => (d.enabled ?? true) === filter.enabled)\n }\n if (filter?.search !== undefined) {\n const query = filter.search.toLowerCase()\n items = items.filter(\n (d) => d.name.toLowerCase().includes(query) || d.uid.toLowerCase().includes(query),\n )\n }\n const total = items.length\n if (listOptions?.page !== undefined && listOptions?.pageSize !== undefined) {\n const start = listOptions.page * listOptions.pageSize\n items = items.slice(start, start + listOptions.pageSize)\n } else if (listOptions?.pageSize !== undefined) {\n items = items.slice(0, listOptions.pageSize)\n }\n return { items: items.map((d) => ({ ...d })), total }\n },\n\n async get(uid) {\n return { ...findInstance(uid) }\n },\n\n async create(input: DatasourceCreateInput) {\n const now = new Date().toISOString()\n const uid = input.uid ?? `ds-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`\n const ds: DatasourceInstance = {\n uid,\n type: input.type,\n name: input.name,\n ...(input.options !== undefined ? { options: input.options } : {}),\n enabled: input.enabled ?? true,\n ...(input.meta !== undefined ? { meta: input.meta } : {}),\n version: '1',\n createdAt: now,\n updatedAt: now,\n }\n store = [...store, ds]\n if (!types.some((t) => t.type === input.type)) {\n types = [...types, { type: input.type, name: input.type, installed: true, enabled: true }]\n }\n return { ...ds }\n },\n\n async update(uid, patch: DatasourceUpdateInput) {\n const idx = store.findIndex((d) => d.uid === uid)\n if (idx === -1) throw new DatasourceNotFoundError(uid)\n const ds = store[idx]\n if (patch.version !== undefined && ds.version !== patch.version) {\n throw new DatasourceConflictError(\n `\"${uid}\" version conflict: expected ${patch.version}, got ${ds.version}`,\n )\n }\n const updated: DatasourceInstance = {\n ...ds,\n ...(patch.name !== undefined ? { name: patch.name } : {}),\n ...(patch.options !== undefined ? { options: patch.options } : {}),\n ...(patch.enabled !== undefined ? { enabled: patch.enabled } : {}),\n ...(patch.meta !== undefined ? { meta: patch.meta } : {}),\n version: nextVersion(ds.version),\n updatedAt: new Date().toISOString(),\n }\n store = [...store.slice(0, idx), updated, ...store.slice(idx + 1)]\n return { ...updated }\n },\n\n async delete(uid) {\n findInstance(uid)\n store = store.filter((d) => d.uid !== uid)\n },\n },\n\n async query(request: DataQuery, _context?: DatasourceContext): Promise<QueryResult> {\n const ds = findInstance(request.datasourceUid)\n return {\n frames: [\n tableRowsToFrame({\n columns: [\n { name: 'name', type: 'string' },\n { name: 'type', type: 'string' },\n { name: 'version', type: 'string' },\n ],\n rows: [[ds.name, ds.type, ds.version ?? '']],\n }),\n ],\n requestId: request.id,\n meta: { datasourceUid: ds.uid },\n }\n },\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts"],"names":[],"mappings":";AAAO,IAAM,uBAAA,GAAN,cAAsC,KAAA,CAAM;AAAA,EACjD,YAAY,GAAA,EAAa;AACvB,IAAA,KAAA,CAAM,CAAA,YAAA,EAAe,GAAG,CAAA,WAAA,CAAa,CAAA;AACrC,IAAA,IAAA,CAAK,IAAA,GAAO,yBAAA;AAAA,EACd;AACF;AAEO,IAAM,yBAAA,GAAN,cAAwC,KAAA,CAAM;AAAA,EACnD,WAAA,CAAY,KAAa,UAAA,EAAoB;AAC3C,IAAA,KAAA,CAAM,CAAA,YAAA,EAAe,GAAG,CAAA,mBAAA,EAAsB,UAAU,CAAA,CAAE,CAAA;AAC1D,IAAA,IAAA,CAAK,IAAA,GAAO,2BAAA;AAAA,EACd;AACF;AAEO,IAAM,gCAAA,GAAN,cAA+C,KAAA,CAAM;AAAA,EAC1D,YAAY,IAAA,EAAc;AACxB,IAAA,KAAA,CAAM,CAAA,iBAAA,EAAoB,IAAI,CAAA,mBAAA,CAAqB,CAAA;AACnD,IAAA,IAAA,CAAK,IAAA,GAAO,kCAAA;AAAA,EACd;AACF;AAEO,IAAM,2BAAA,GAAN,cAA0C,KAAA,CAAM;AAAA,EACrD,WAAA,CAAY,UAAU,yCAAA,EAA2C;AAC/D,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,6BAAA;AAAA,EACd;AACF;AAEO,IAAM,wBAAA,GAAN,cAAuC,KAAA,CAAM;AAAA,EAClD,WAAA,CAAY,UAAU,mCAAA,EAAqC;AACzD,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,0BAAA;AAAA,EACd;AACF;AAEO,IAAM,uBAAA,GAAN,cAAsC,KAAA,CAAM;AAAA,EACjD,WAAA,CAAY,UAAU,0CAAA,EAA4C;AAChE,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,yBAAA;AAAA,EACd;AACF;AAEO,IAAM,yBAAA,GAAN,cAAwC,KAAA,CAAM;AAAA,EACnD,WAAA,CACE,OAAA,GAAU,8BAAA,EACD,MAAA,EACT;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAFJ,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAGT,IAAA,IAAA,CAAK,IAAA,GAAO,2BAAA;AAAA,EACd;AACF;AAEO,IAAM,wBAAA,GAAN,cAAuC,KAAA,CAAM;AAAA,EAClD,WAAA,CACE,OAAA,GAAU,mCAAA,EACD,MAAA,EACT;AACA,IAAA,KAAA,CAAM,OAAO,CAAA;AAFJ,IAAA,IAAA,CAAA,MAAA,GAAA,MAAA;AAGT,IAAA,IAAA,CAAK,IAAA,GAAO,0BAAA;AAAA,EACd;AACF","file":"chunk-Z2DGIUJ2.js","sourcesContent":["export class DatasourceNotFoundError extends Error {\n constructor(uid: string) {\n super(`datasource \"${uid}\" not found`)\n this.name = 'DatasourceNotFoundError'\n }\n}\n\nexport class DatasourceCapabilityError extends Error {\n constructor(uid: string, capability: string) {\n super(`datasource \"${uid}\" does not support ${capability}`)\n this.name = 'DatasourceCapabilityError'\n }\n}\n\nexport class DatasourceTypeNotRegisteredError extends Error {\n constructor(type: string) {\n super(`datasource type \"${type}\" is not registered`)\n this.name = 'DatasourceTypeNotRegisteredError'\n }\n}\n\nexport class DatasourceUnauthorizedError extends Error {\n constructor(message = 'datasource request is not authenticated') {\n super(message)\n this.name = 'DatasourceUnauthorizedError'\n }\n}\n\nexport class DatasourceForbiddenError extends Error {\n constructor(message = 'datasource request is not allowed') {\n super(message)\n this.name = 'DatasourceForbiddenError'\n }\n}\n\nexport class DatasourceConflictError extends Error {\n constructor(message = 'datasource was modified by another actor') {\n super(message)\n this.name = 'DatasourceConflictError'\n }\n}\n\nexport class DatasourceValidationError extends Error {\n constructor(\n message = 'datasource validation failed',\n readonly errors?: string[],\n ) {\n super(message)\n this.name = 'DatasourceValidationError'\n }\n}\n\nexport class DatasourceTransportError extends Error {\n constructor(\n message = 'datasource backend request failed',\n readonly status?: number,\n ) {\n super(message)\n this.name = 'DatasourceTransportError'\n }\n}\n"]}
|