@nx-ddd/notion 19.0.0-preview.24 → 19.0.0-preview.25
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.
|
@@ -463,6 +463,9 @@ class NotionRepository extends Repository {
|
|
|
463
463
|
}
|
|
464
464
|
return orders;
|
|
465
465
|
}
|
|
466
|
+
listChanges() {
|
|
467
|
+
throw new Error('NotionRepository.listChanges() is not implemented');
|
|
468
|
+
}
|
|
466
469
|
async get({ id }) {
|
|
467
470
|
const data = await this.client.pages.retrieve({ page_id: id });
|
|
468
471
|
return this.converter.fromNotion(data);
|
|
@@ -479,6 +482,9 @@ class NotionRepository extends Repository {
|
|
|
479
482
|
throw error;
|
|
480
483
|
}
|
|
481
484
|
}
|
|
485
|
+
async createMany(data) {
|
|
486
|
+
throw new Error('NotionRepository.createMany() is not implemented');
|
|
487
|
+
}
|
|
482
488
|
async update(entity) {
|
|
483
489
|
const data = {
|
|
484
490
|
page_id: entity.id,
|
|
@@ -486,9 +492,24 @@ class NotionRepository extends Repository {
|
|
|
486
492
|
};
|
|
487
493
|
await this.client.pages.update(data);
|
|
488
494
|
}
|
|
495
|
+
async save(data) {
|
|
496
|
+
throw new Error('NotionRepository.save() is not implemented');
|
|
497
|
+
}
|
|
498
|
+
async saveMany(entities) {
|
|
499
|
+
throw new Error('NotionRepository.saveMany() is not implemented');
|
|
500
|
+
}
|
|
501
|
+
async updateMany(data) {
|
|
502
|
+
throw new Error('NotionRepository.updateMany() is not implemented');
|
|
503
|
+
}
|
|
489
504
|
async delete({ id }) {
|
|
490
505
|
throw new Error('NotionRepository.delete() is not implemented');
|
|
491
506
|
}
|
|
507
|
+
async deleteMany(params) {
|
|
508
|
+
throw new Error('NotionRepository.deleteMany() is not implemented');
|
|
509
|
+
}
|
|
510
|
+
async deleteAll() {
|
|
511
|
+
throw new Error('NotionRepository.deleteAll() is not implemented');
|
|
512
|
+
}
|
|
492
513
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NotionRepository, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
493
514
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.4", ngImport: i0, type: NotionRepository });
|
|
494
515
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx-ddd-notion.mjs","sources":["../../../../../packages/@nx-ddd/notion/src/lib/utils.ts","../../../../../packages/@nx-ddd/notion/src/lib/decorators/decorators.ts","../../../../../packages/@nx-ddd/notion/src/lib/converter/converter.ts","../../../../../packages/@nx-ddd/notion/src/lib/notion/notion.service.ts","../../../../../packages/@nx-ddd/notion/src/lib/query/query.ts","../../../../../packages/@nx-ddd/notion/src/lib/query-builder/query-builder.ts","../../../../../packages/@nx-ddd/notion/src/lib/repository/repository.ts","../../../../../packages/@nx-ddd/notion/src/lib/nx-ddd-notion.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport { NotionAnnotation } from \"./decorators\";\n\ntype NotionText = {\n type: 'text', \n text: { content: string },\n plain_text: string,\n}\n\ntype NotionArray = {\n type: 'array',\n array: (NotionRichText[] | NotionNumber[]),\n function: 'show_original'\n}\n\nexport type NotionTitle = {type: 'title', title: {text: {content: string}}[]};\nexport type NotionUrl = {id: string, type: 'url', url: string | null};\nexport type NotionRichText = {\n id: string, \n type: 'rich_text', \n rich_text: NotionText[]\n};\nexport type NotionNumber = {id: string, type: 'number', number: number};\nexport type NotionRelation = {id: string, type: 'relation', relation: {id: string}[], has_more: boolean};\nexport type NotionStatus = {id: string, type: 'status', status: {id: string, name: string, color: string}};\nexport type NotionFormula = {\n id: string,\n type: 'formula',\n formula: {\n type: 'string',\n string: string\n } | {\n type: 'number',\n number: number\n } | {\n type: 'date',\n date: {\n start: string,\n end: string,\n time_zone: null,\n }\n }\n};\nexport type NotionRollup = {id: string, type: 'rollup', rollup: NotionArray | NotionNumber};\n\nexport type NotionCreatedTime = {id: string, type: 'created_time', created_time: string};\nexport type NotionLastEditedTime = {id: string, type: 'last_edited_time', last_edited_time: string};\nexport type NotionDate = {id: string, type: 'date', date: any };\nexport type NotionSelect = {id: string, type: 'select', select: {id: string, name: string, color: string}};\n\nexport type NotionPhoneNumber = {id: string, type: 'phone_number', phone_number: string};\nexport type NotionEmail = {id: string, type: 'email', email: string};\nexport type NotionID = {id: string, type: 'unique_id', unique_id: {prefix: string | null, number: number}};\n// export type NotionCheckbox = {id: string, type: 'checkbox', checkbox: boolean};\n// export type NotionCreatedBy = {id: string, type: 'created_by', created_by: {id: string, name: string, avatar_url: string, type: string}};\n// export type NotionFiles = {id: string, type: 'files', files: {name: string, type: string, file_id: string, size: number}[]};\n// export type NotionLastEditedBy = {id: string, type: 'last_edited_by', last_edited_by: {id: string, name: string, avatar_url: string, type: string}};\n// export type NotionMultiSelect = {id: string, type: 'multi_select', multi_select: {id: string, name: string, color: string}[]};\n// export type NotionPeople = {id: string, type: 'people', people: {id: string, name: string, avatar_url: string, type: string}[]};\n\n\nexport type NotionValue = NotionTitle | NotionUrl | NotionRichText | NotionNumber\n | NotionRelation | NotionStatus | NotionFormula | NotionRollup \n | NotionCreatedTime | NotionLastEditedTime | NotionDate | NotionSelect\n | NotionPhoneNumber | NotionEmail | NotionID;\n // | NotionCheckbox;\n\nexport class NotionUtils {\n static toNotionValue(value: any, annotation: NotionAnnotation) {\n switch(annotation.type) {\n case 'title': return this.toNotionTitle(value);\n case 'status': return this.toNotionStatus(value);\n case 'relation':\n if ((annotation.options as any).multi) {\n return this.toRelationMulti(value);\n } else {\n return this.toRelation(value);\n }\n case 'formula': return this.toNotionFormula(value);\n case 'rich_text': return this.toRichText(value);\n case 'rollup': return this.toRollup(value);\n case 'url': return this.toUrl(value);\n case 'date': return this.toDate(value);\n case 'select': return this.toSelect(value);\n case 'number': return this.toNumber(value);\n case 'phone_number': return this.toPhoneNumber(value);\n case 'email': return this.toEmail(value);\n }\n }\n\n static toNotionTitle(value: string) {\n return value ? {type: 'title', title: [{text: {content: value}}]} : undefined;\n }\n\n static toNotionStatus(value: string) {\n return value ? {type: 'status', status: {name: value}} : undefined; \n }\n\n static toRelationMulti(ids: string[]) {\n return Array.isArray(ids) ? {type: 'relation', relation: (ids).map(id => ({id}))} : undefined;\n }\n\n static toRelation(value: string) {\n return value ? this.toRelationMulti([value]) : undefined;\n }\n \n static toRichText(text?: string) {\n return text ? {type: 'rich_text', rich_text: [{text: {content: text}}]} : undefined;\n }\n \n static toNotionFormula(value: string): void {\n return;\n }\n\n static toRollup(value: string): void {\n return;\n }\n\n static toUrl(value: string) {\n return value ? {type: 'url', url: value} : undefined;\n }\n\n static toDate(value: dayjs.Dayjs) {\n // TODO(nontangent): endも考慮する。\n return value ? {type: 'date', date: {start: value.format() }} : undefined;\n }\n\n static toSelect(value: string) {\n return value ? {type: 'select', select: {name: value}} : undefined;\n }\n\n static toPhoneNumber(value: string) {\n return value ? {type: 'phone_number', phone_number: value} : undefined;\n }\n\n static toNumber(value: number) {\n return value ? {type: 'number', number: value} : undefined;\n }\n\n static toEmail(value: string) {\n return value ? {type: 'email', email: value} : undefined;\n }\n\n static fromNotionValue(value: NotionValue, annotation: NotionAnnotation) {\n switch(value.type) {\n case 'title': return this.fromTitle(value);\n case 'formula': return this.fromFormula(value);\n case 'relation':\n if ((annotation.options as any).multi) {\n return this.fromRelationMulti(value);\n } else {\n return this.fromRelation(value);\n }\n case 'rich_text': return this.fromRichText(value);\n case 'status': return this.fromStatus(value);\n case 'url': return this.fromUrl(value);\n case 'rollup':\n if ((annotation.options as any).multi) {\n return this.fromRollupMulti(value);\n } else {\n return this.fromRollup(value);\n }\n case 'created_time': return this.fromCreatedTime(value);\n case 'last_edited_time': return this.fromLastEditedTime(value);\n case 'date': return this.fromDate(value);\n case 'number': return this.fromNumber(value);\n case 'select': return this.fromSelect(value);\n case 'phone_number': return this.fromPhoneNumber(value);\n case 'email': return this.fromEmail(value);\n case 'unique_id': return this.fromUniqueID(value);\n }\n }\n\n static fromTitle(notionTitle: NotionTitle): string {\n return notionTitle?.title?.[0]?.text?.content ?? '';\n }\n\n static fromUrl(notionUrl: NotionUrl): string | null {\n return notionUrl.url;\n }\n\n static fromRichText(notionRichText: NotionRichText): string | null {\n return notionRichText.rich_text.map(({plain_text}) => plain_text).join('') || null;\n }\n\n static fromRelation(notionRelation: NotionRelation): string | null {\n return this.fromRelationMulti(notionRelation)?.[0] ?? null;\n }\n\n static fromRelationMulti(notionRelation: NotionRelation): string[] {\n return notionRelation.relation.map(r => r.id);\n }\n\n static fromStatus(notionStatus: NotionStatus): string | null {\n return notionStatus.status?.name ?? null;\n }\n\n static fromFormula(notionFormula: NotionFormula): string | number | dayjs.Dayjs {\n switch(notionFormula.formula?.type) {\n case 'string': return notionFormula.formula.string;\n case 'number': return notionFormula.formula.number;\n case 'date': return this.fromDate(notionFormula.formula as any);\n }\n }\n\n static fromRollup(notionRollup: NotionRollup): string | number {\n if (notionRollup.rollup.type === 'number') {\n return this.fromNumber(notionRollup.rollup);\n }\n return this.fromRollupMulti(notionRollup)?.[0] ?? null;\n }\n\n static fromRollupMulti(notionRollup: NotionRollup): string[] | number[] {\n if (notionRollup.rollup.type === 'number') {\n return [];\n }\n return (notionRollup.rollup.array ?? []).map(notionValue => {\n if (notionValue.type === 'rich_text') {\n return (notionValue.rich_text ?? []).map(text => text.plain_text).join();\n } else if (notionValue.type === 'number') {\n return notionValue.number ?? null;\n }\n return [];\n });\n }\n\n static fromCreatedTime(notionCreatedTime: NotionCreatedTime): dayjs.Dayjs {\n return dayjs(notionCreatedTime.created_time);\n }\n\n static fromLastEditedTime(notionLastEditedTime: NotionLastEditedTime): dayjs.Dayjs {\n return dayjs(notionLastEditedTime.last_edited_time);\n }\n\n static fromDate(notionDate: NotionDate): dayjs.Dayjs | null {\n return notionDate.date?.start ? dayjs(notionDate.date?.start) : null;\n }\n\n static fromNumber(notionNumber: NotionNumber) {\n return notionNumber.number ?? null;\n }\n\n static fromSelect(notionSelect: NotionSelect) {\n return notionSelect.select?.name ?? null;\n }\n\n static fromPhoneNumber(notionPhoneNumber: NotionPhoneNumber) {\n return notionPhoneNumber.phone_number ?? null;\n }\n\n static fromEmail(notionEmail: NotionEmail) {\n return notionEmail.email ?? null;\n }\n\n static fromUniqueID(value: NotionID) {\n return value.unique_id.number;\n }\n\n}\n","export const NOTION_ANNOTATIONS = 'notion_annotations';\nexport type NotionFieldType = 'title' | 'url' | 'rich_text' \n | 'relation' | 'status' | 'formula' | 'rollup' | 'timestamp'\n | 'number' | 'created_time' | 'last_edited_time' | 'date' | 'select'\n | 'phone_number' | 'email' | 'checkbox' | 'created_by' | 'files'\n | 'last_edited_by' | 'multi_select' | 'people' | 'unique_id';\nexport interface NotionAnnotation<T extends object = undefined> {\n type: NotionFieldType;\n fieldName: string;\n propName: string;\n options?: T;\n}\n\nfunction createDecorator<T extends object = undefined>(type: NotionFieldType, defaultOptions?: T) {\n return (name?: string, options?: Partial<T>) => {\n return (target: any, propName: string) => {\n const fieldName = name || propName;\n const ANNOTATION: NotionAnnotation<T> = {type, fieldName, propName, options: {...defaultOptions, ...options}};\n target.constructor[NOTION_ANNOTATIONS] ??= [];\n target.constructor[NOTION_ANNOTATIONS].push(ANNOTATION);\n };\n };\n}\n\nexport const Title = createDecorator('title');\nexport const Url = createDecorator('url');\nexport const RichText = createDecorator('rich_text');\nexport const Relation = createDecorator<{multi: boolean}>('relation', {multi: false});\nexport const Status = createDecorator('status');\nexport const Formula = createDecorator('formula');\nexport const Rollup = createDecorator<{multi: boolean}>('rollup', {multi: false});\nexport const Timestamp = createDecorator('timestamp');\nexport const Number = createDecorator('number');\nexport const CreatedTime = createDecorator('created_time');\nexport const LastEditedTime = createDecorator('last_edited_time');\nexport const Date = createDecorator('date');\nexport const Select = createDecorator('select');\nexport const PhoneNumber = createDecorator('phone_number');\nexport const Email = createDecorator('email');\nexport const UniqueID = createDecorator('unique_id');\n// Not implemented below props!\n// export const Checkbox = createDecorator('checkbox');\n// export const CreatedBy = createDecorator('created_by');\n// export const Files = createDecorator('files');\n// export const LastEditedBy = createDecorator('last_edited_by');\n// export const MultiSelect = createDecorator('multi_select');\n// export const People = createDecorator('people');\n\nexport const Notion = {\n Title,\n Url,\n RichText,\n Relation,\n Status,\n Formula,\n Rollup,\n Timestamp,\n Number,\n CreatedTime,\n LastEditedTime,\n Date,\n Select,\n PhoneNumber,\n Email,\n UniqueID,\n};\n","import { PageObjectResponse, PartialPageObjectResponse, PartialDatabaseObjectResponse, DatabaseObjectResponse } from \"@notionhq/client/build/src/api-endpoints\";\nimport { NotionUtils } from \"../utils\";\nimport { NotionAnnotation, NOTION_ANNOTATIONS } from \"../decorators\";\nimport { omitBy } from \"lodash-es\";\n\nexport abstract class NotionConverter<E> {\n protected abstract Entity;\n\n fromNotion(page: PageObjectResponse | PartialPageObjectResponse | PartialDatabaseObjectResponse | DatabaseObjectResponse): E {\n const annotations: NotionAnnotation[] = this.Entity[NOTION_ANNOTATIONS] ?? [];\n const obj = annotations.reduce((obj, annotation) => {\n const value = page['properties'][annotation.fieldName] \n ? NotionUtils.fromNotionValue(page['properties'][annotation.fieldName], annotation)\n : undefined;\n return {...obj, [annotation.propName]: value};\n }, {id: page.id});\n return (this.Entity as any).from(obj);\n }\n\n toNotion(entity: Partial<E>): object {\n const annotations: NotionAnnotation[] = this.Entity[NOTION_ANNOTATIONS] ?? [];\n const data = annotations.reduce((obj, annotation) => ({\n ...obj, [annotation.fieldName]: NotionUtils.toNotionValue(entity[annotation.propName], annotation),\n }), {});\n return omitBy(data, (value) => typeof value === 'undefined');\n }\n}\n\nexport function createConverter<E = any>(Entity: any): NotionConverter<E> {\n class Converter extends NotionConverter<E> {\n protected Entity = Entity;\n }\n\n return new Converter();\n}\n","import { inject, InjectionToken } from \"@angular/core\";\nimport type { NotionService } from \"./notion.service.impl\";\n\nexport interface NotionConfig {\n token: string;\n}\n\nexport const NOTION_SERVICE = new InjectionToken<NotionService>('NOTION_SERVICE');\nexport const NOTION_CONFIG = new InjectionToken<NotionConfig>('NOTION_CONFIG');\n\nexport function injectNotion(): NotionService {\n return inject(NOTION_SERVICE, { optional: true }) ?? null;\n}\n","import { NotionAnnotation, NOTION_ANNOTATIONS } from \"../decorators\";\nimport { Entity } from \"@nx-ddd/common/domain\";\n\ntype Evaluation = '==' | '>' | '>=' | '<' | '<=' | '!=' | 'in';\n\nexport class N {\n static RollupPropQuery(property: string, evaluation: Evaluation, value: string | number) {\n return { property, rollup: { every: { rich_text: { equals: value } } } };\n }\n\n static FormulaQuery(property: string, evaluation: Evaluation, value: string | number) {\n return { property, formula: {}};\n }\n\n static LastEditedTime(property: string, evaluation: Evaluation, value: string | number) {\n const query = evaluation === '>' ? 'after' \n : evaluation === '<' ? 'before'\n : evaluation === '==' ? 'equals'\n : evaluation === '<=' ? 'on_or_before'\n : evaluation === '>=' ? 'on_or_after'\n : evaluation === '!=' ? '' : '';\n return { timestamp: 'last_edited_time', last_edited_time: {[query]: value} };\n }\n\n static Timestamp(property: string, evaluation: Evaluation, value: string) {\n const query = evaluation === '>' ? 'after' \n : evaluation === '<' ? 'before'\n : evaluation === '==' ? 'equals'\n : evaluation === '<=' ? 'on_or_before'\n : evaluation === '>=' ? 'on_or_after'\n : evaluation === '!=' ? '' : '';\n return { property, timestamp: {[query]: value} };\n }\n\n static Status(property: string, evaluation: Evaluation, value: string) {\n const query = evaluation === '==' ? 'equals' : '';\n // TODO(nontangent): 'ステータス'を修正\n return { property: 'ステータス', status: {[query]: value} };\n }\n \n static Relation(property: string, evaluation: Evaluation, value: string) {\n const query = evaluation === 'in' ? 'contains': '';\n return { property, relation: {[query]: value} };\n }\n}\n\nexport abstract class NotionBaseQuery {\n type: 'and' | 'or' | 'filter' | 'sort';\n abstract build();\n}\n\nexport class NotionFilter extends NotionBaseQuery {\n readonly type: 'filter' = 'filter';\n\n constructor(\n public propertyType: any,\n public propertyName: string,\n public evaluation: Evaluation,\n public value: string | number,\n ) { super(); }\n\n build() {\n switch(this.propertyName) {\n case 'last_edited_time': return N.LastEditedTime(this.propertyName, this.evaluation, this.value);\n }\n\n switch(this.propertyType) {\n case 'rollup': return N.RollupPropQuery(this.propertyName, this.evaluation, this.value);\n case 'formula': return N.FormulaQuery(this.propertyName, this.evaluation, this.value);\n case 'status': return N.Status(this.propertyName, this.evaluation, this.value as string);\n case 'relation': return N.Relation(this.propertyName, this.evaluation, this.value as string);\n }\n }\n}\n\nexport class NotionSort extends NotionBaseQuery {\n readonly type: 'sort' = 'sort';\n constructor(\n public property: string,\n public direction: 'asc' | 'desc' = 'asc',\n ) { super(); }\n\n build() {\n return {\n property: this.property,\n direction: this.direction === 'asc' ? 'ascending' : 'descending',\n };\n }\n}\n\nexport class NotionAnd extends NotionBaseQuery {\n readonly type: 'and' = 'and';\n arr: NotionFilter[];\n\n constructor(...filters: NotionFilter[]) {\n super();\n this.arr = filters;\n }\n\n build() {\n return {and: this.arr.map(filter => filter.build())};\n }\n}\n\nexport class NotionOr extends NotionBaseQuery {\n readonly type: 'or' = 'or';\n arr: NotionFilter[];\n\n constructor(...filters: NotionFilter[]) {\n super();\n this.arr = filters;\n }\n\n build() {\n return {or: this.arr.map(filter => filter.build())};\n }\n}\n\nexport const Query = <E = any>(Entity: E) => {\n const Filter = (_propName: string, evaluation: Evaluation, value: string | number): NotionFilter => {\n const annotation: NotionAnnotation = Entity[NOTION_ANNOTATIONS].find(({propName}) => propName === _propName);\n\n // if(!annotation) {\n // throw new Error(`NotionFilter: ${Entity} does not have ${_propName}.`);\n // }\n\n return new NotionFilter(annotation?.type, annotation?.fieldName ?? _propName, evaluation, value);\n };\n const OrderBy = (_propName: string, direction: 'asc' | 'desc'): NotionSort => {\n const annotation: NotionAnnotation = Entity[NOTION_ANNOTATIONS].find(({propName}) => propName === _propName);\n return new NotionSort(annotation?.fieldName ?? _propName, direction);\n };\n \n const And = (...args: NotionFilter[]): NotionAnd => new NotionAnd(...args);\n const Or = (...args: NotionFilter[]): NotionOr => new NotionOr(...args);\n\n return {Filter, OrderBy, And, Or};\n}\n","import { NotionBaseQuery } from \"../query\";\n\nexport class NotionQueryBuilder {\n constructor() { }\n\n build(filterQuery?: NotionBaseQuery, sortQuery?: NotionBaseQuery) {\n return {\n ...(filterQuery ? this.buildFilterQuery(filterQuery) : {}),\n ...(sortQuery ? this.buildSortQuery(sortQuery) : {}),\n }\n }\n\n protected buildSortQuery(query: NotionBaseQuery) {\n if (query.type === 'sort') {\n return { sorts: [query.build()]};\n } else {\n return {};\n }\n }\n\n protected buildFilterQuery(query: NotionBaseQuery) {\n if (query.type === 'filter') {\n return { filter: { and: [query.build()] } };\n } else if (['and', 'or'].includes(query.type)) {\n return { filter: query.build() };\n } else {\n return {};\n }\n }\n}\n","import { Client } from '@notionhq/client';\nimport { Entity } from '@nx-ddd/common/domain';\nimport { Repository } from '@nx-ddd/common/domain';\nimport { inject, Inject, Injectable, InjectionToken } from '@angular/core';\nimport { NotionConverter } from '../converter';\nimport { NotionBaseQuery } from '../query';\nimport { NotionQueryBuilder } from '../query-builder';\n\nexport const NOTION_ACCESS_TOKEN = new InjectionToken<string>('[@nx-ddd/notion] Notion Access Token');\nexport const NOTION_DATABASE_ID = new InjectionToken('[@nx-ddd/notion] Notion Database Id');\n\nexport function provideNotionConfig(config: {accessToken: string}) {\n return { provide: NOTION_ACCESS_TOKEN, useValue: config.accessToken };\n}\n\n@Injectable()\nexport abstract class NotionRepository<E extends Entity> extends Repository<E> {\n protected abstract databaseId: string;\n protected abstract converter: NotionConverter<E>;\n\n protected token: string = inject(NOTION_ACCESS_TOKEN);\n protected client = new Client({auth: this.token});\n protected queryBuilder = new NotionQueryBuilder();\n protected get parent(): {type: 'database_id', database_id: string} {\n return { type: 'database_id', database_id: this.databaseId };\n }\n\n async query(\n filterQuery?: NotionBaseQuery, \n sortQuery?: NotionBaseQuery,\n startCursor?: string,\n pageSize?: number,\n ) {\n try {\n const obj = this.queryBuilder.build(filterQuery, sortQuery);\n const res = await this.client.databases.query({\n database_id: this.databaseId,\n ...obj,\n start_cursor: startCursor,\n page_size: pageSize,\n });\n return {\n results: res.results.map(result => this.converter.fromNotion(result)),\n nextCursor: res.next_cursor,\n hasMore: res.has_more,\n }\n } catch (error) {\n throw error;\n }\n }\n\n async queryV2(args?: any) {\n try {\n const res = await this.client.databases.query({\n database_id: this.databaseId,\n ...(args ?? {}),\n });\n return {\n results: res.results.map(result => this.converter.fromNotion(result)),\n nextCursor: res.next_cursor,\n hasMore: res.has_more,\n }\n } catch (error) {\n throw error;\n }\n }\n\n async list({\n batchSize = 100,\n }: {\n batchSize?: number,\n } = {}): Promise<E[]> {\n const orders: E[] = [];\n let nextCursor: string;\n while(true) {\n const res = await this.query(undefined, undefined, nextCursor, batchSize);\n console.debug(res.nextCursor);\n orders.push(...res.results);\n nextCursor = res.nextCursor;\n if (!res.hasMore) break;\n }\n return orders;\n }\n\n async get({id}: {id: string}): Promise<E> {\n const data = await this.client.pages.retrieve({page_id: id});\n return this.converter.fromNotion(data);\n }\n\n async create(entity: Partial<E>) {\n try {\n const res = await this.client.pages.create({\n parent: this.parent,\n properties: {...this.converter.toNotion(entity)},\n }); \n return this.converter.fromNotion(res);\n } catch (error) {\n throw error;\n }\n }\n\n async update(entity: Partial<E>) {\n const data = {\n page_id: (entity as any).id,\n properties: {...this.converter.toNotion(entity)},\n };\n await this.client.pages.update(data);\n }\n\n async delete({id}: {id: string}) {\n throw new Error('NotionRepository.delete() is not implemented');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nx-ddd-notion.mjs","sources":["../../../../../packages/@nx-ddd/notion/src/lib/utils.ts","../../../../../packages/@nx-ddd/notion/src/lib/decorators/decorators.ts","../../../../../packages/@nx-ddd/notion/src/lib/converter/converter.ts","../../../../../packages/@nx-ddd/notion/src/lib/notion/notion.service.ts","../../../../../packages/@nx-ddd/notion/src/lib/query/query.ts","../../../../../packages/@nx-ddd/notion/src/lib/query-builder/query-builder.ts","../../../../../packages/@nx-ddd/notion/src/lib/repository/repository.ts","../../../../../packages/@nx-ddd/notion/src/lib/nx-ddd-notion.ts"],"sourcesContent":["import dayjs from \"dayjs\";\nimport { NotionAnnotation } from \"./decorators\";\n\ntype NotionText = {\n type: 'text', \n text: { content: string },\n plain_text: string,\n}\n\ntype NotionArray = {\n type: 'array',\n array: (NotionRichText[] | NotionNumber[]),\n function: 'show_original'\n}\n\nexport type NotionTitle = {type: 'title', title: {text: {content: string}}[]};\nexport type NotionUrl = {id: string, type: 'url', url: string | null};\nexport type NotionRichText = {\n id: string, \n type: 'rich_text', \n rich_text: NotionText[]\n};\nexport type NotionNumber = {id: string, type: 'number', number: number};\nexport type NotionRelation = {id: string, type: 'relation', relation: {id: string}[], has_more: boolean};\nexport type NotionStatus = {id: string, type: 'status', status: {id: string, name: string, color: string}};\nexport type NotionFormula = {\n id: string,\n type: 'formula',\n formula: {\n type: 'string',\n string: string\n } | {\n type: 'number',\n number: number\n } | {\n type: 'date',\n date: {\n start: string,\n end: string,\n time_zone: null,\n }\n }\n};\nexport type NotionRollup = {id: string, type: 'rollup', rollup: NotionArray | NotionNumber};\n\nexport type NotionCreatedTime = {id: string, type: 'created_time', created_time: string};\nexport type NotionLastEditedTime = {id: string, type: 'last_edited_time', last_edited_time: string};\nexport type NotionDate = {id: string, type: 'date', date: any };\nexport type NotionSelect = {id: string, type: 'select', select: {id: string, name: string, color: string}};\n\nexport type NotionPhoneNumber = {id: string, type: 'phone_number', phone_number: string};\nexport type NotionEmail = {id: string, type: 'email', email: string};\nexport type NotionID = {id: string, type: 'unique_id', unique_id: {prefix: string | null, number: number}};\n// export type NotionCheckbox = {id: string, type: 'checkbox', checkbox: boolean};\n// export type NotionCreatedBy = {id: string, type: 'created_by', created_by: {id: string, name: string, avatar_url: string, type: string}};\n// export type NotionFiles = {id: string, type: 'files', files: {name: string, type: string, file_id: string, size: number}[]};\n// export type NotionLastEditedBy = {id: string, type: 'last_edited_by', last_edited_by: {id: string, name: string, avatar_url: string, type: string}};\n// export type NotionMultiSelect = {id: string, type: 'multi_select', multi_select: {id: string, name: string, color: string}[]};\n// export type NotionPeople = {id: string, type: 'people', people: {id: string, name: string, avatar_url: string, type: string}[]};\n\n\nexport type NotionValue = NotionTitle | NotionUrl | NotionRichText | NotionNumber\n | NotionRelation | NotionStatus | NotionFormula | NotionRollup \n | NotionCreatedTime | NotionLastEditedTime | NotionDate | NotionSelect\n | NotionPhoneNumber | NotionEmail | NotionID;\n // | NotionCheckbox;\n\nexport class NotionUtils {\n static toNotionValue(value: any, annotation: NotionAnnotation) {\n switch(annotation.type) {\n case 'title': return this.toNotionTitle(value);\n case 'status': return this.toNotionStatus(value);\n case 'relation':\n if ((annotation.options as any).multi) {\n return this.toRelationMulti(value);\n } else {\n return this.toRelation(value);\n }\n case 'formula': return this.toNotionFormula(value);\n case 'rich_text': return this.toRichText(value);\n case 'rollup': return this.toRollup(value);\n case 'url': return this.toUrl(value);\n case 'date': return this.toDate(value);\n case 'select': return this.toSelect(value);\n case 'number': return this.toNumber(value);\n case 'phone_number': return this.toPhoneNumber(value);\n case 'email': return this.toEmail(value);\n }\n }\n\n static toNotionTitle(value: string) {\n return value ? {type: 'title', title: [{text: {content: value}}]} : undefined;\n }\n\n static toNotionStatus(value: string) {\n return value ? {type: 'status', status: {name: value}} : undefined; \n }\n\n static toRelationMulti(ids: string[]) {\n return Array.isArray(ids) ? {type: 'relation', relation: (ids).map(id => ({id}))} : undefined;\n }\n\n static toRelation(value: string) {\n return value ? this.toRelationMulti([value]) : undefined;\n }\n \n static toRichText(text?: string) {\n return text ? {type: 'rich_text', rich_text: [{text: {content: text}}]} : undefined;\n }\n \n static toNotionFormula(value: string): void {\n return;\n }\n\n static toRollup(value: string): void {\n return;\n }\n\n static toUrl(value: string) {\n return value ? {type: 'url', url: value} : undefined;\n }\n\n static toDate(value: dayjs.Dayjs) {\n // TODO(nontangent): endも考慮する。\n return value ? {type: 'date', date: {start: value.format() }} : undefined;\n }\n\n static toSelect(value: string) {\n return value ? {type: 'select', select: {name: value}} : undefined;\n }\n\n static toPhoneNumber(value: string) {\n return value ? {type: 'phone_number', phone_number: value} : undefined;\n }\n\n static toNumber(value: number) {\n return value ? {type: 'number', number: value} : undefined;\n }\n\n static toEmail(value: string) {\n return value ? {type: 'email', email: value} : undefined;\n }\n\n static fromNotionValue(value: NotionValue, annotation: NotionAnnotation) {\n switch(value.type) {\n case 'title': return this.fromTitle(value);\n case 'formula': return this.fromFormula(value);\n case 'relation':\n if ((annotation.options as any).multi) {\n return this.fromRelationMulti(value);\n } else {\n return this.fromRelation(value);\n }\n case 'rich_text': return this.fromRichText(value);\n case 'status': return this.fromStatus(value);\n case 'url': return this.fromUrl(value);\n case 'rollup':\n if ((annotation.options as any).multi) {\n return this.fromRollupMulti(value);\n } else {\n return this.fromRollup(value);\n }\n case 'created_time': return this.fromCreatedTime(value);\n case 'last_edited_time': return this.fromLastEditedTime(value);\n case 'date': return this.fromDate(value);\n case 'number': return this.fromNumber(value);\n case 'select': return this.fromSelect(value);\n case 'phone_number': return this.fromPhoneNumber(value);\n case 'email': return this.fromEmail(value);\n case 'unique_id': return this.fromUniqueID(value);\n }\n }\n\n static fromTitle(notionTitle: NotionTitle): string {\n return notionTitle?.title?.[0]?.text?.content ?? '';\n }\n\n static fromUrl(notionUrl: NotionUrl): string | null {\n return notionUrl.url;\n }\n\n static fromRichText(notionRichText: NotionRichText): string | null {\n return notionRichText.rich_text.map(({plain_text}) => plain_text).join('') || null;\n }\n\n static fromRelation(notionRelation: NotionRelation): string | null {\n return this.fromRelationMulti(notionRelation)?.[0] ?? null;\n }\n\n static fromRelationMulti(notionRelation: NotionRelation): string[] {\n return notionRelation.relation.map(r => r.id);\n }\n\n static fromStatus(notionStatus: NotionStatus): string | null {\n return notionStatus.status?.name ?? null;\n }\n\n static fromFormula(notionFormula: NotionFormula): string | number | dayjs.Dayjs {\n switch(notionFormula.formula?.type) {\n case 'string': return notionFormula.formula.string;\n case 'number': return notionFormula.formula.number;\n case 'date': return this.fromDate(notionFormula.formula as any);\n }\n }\n\n static fromRollup(notionRollup: NotionRollup): string | number {\n if (notionRollup.rollup.type === 'number') {\n return this.fromNumber(notionRollup.rollup);\n }\n return this.fromRollupMulti(notionRollup)?.[0] ?? null;\n }\n\n static fromRollupMulti(notionRollup: NotionRollup): string[] | number[] {\n if (notionRollup.rollup.type === 'number') {\n return [];\n }\n return (notionRollup.rollup.array ?? []).map(notionValue => {\n if (notionValue.type === 'rich_text') {\n return (notionValue.rich_text ?? []).map(text => text.plain_text).join();\n } else if (notionValue.type === 'number') {\n return notionValue.number ?? null;\n }\n return [];\n });\n }\n\n static fromCreatedTime(notionCreatedTime: NotionCreatedTime): dayjs.Dayjs {\n return dayjs(notionCreatedTime.created_time);\n }\n\n static fromLastEditedTime(notionLastEditedTime: NotionLastEditedTime): dayjs.Dayjs {\n return dayjs(notionLastEditedTime.last_edited_time);\n }\n\n static fromDate(notionDate: NotionDate): dayjs.Dayjs | null {\n return notionDate.date?.start ? dayjs(notionDate.date?.start) : null;\n }\n\n static fromNumber(notionNumber: NotionNumber) {\n return notionNumber.number ?? null;\n }\n\n static fromSelect(notionSelect: NotionSelect) {\n return notionSelect.select?.name ?? null;\n }\n\n static fromPhoneNumber(notionPhoneNumber: NotionPhoneNumber) {\n return notionPhoneNumber.phone_number ?? null;\n }\n\n static fromEmail(notionEmail: NotionEmail) {\n return notionEmail.email ?? null;\n }\n\n static fromUniqueID(value: NotionID) {\n return value.unique_id.number;\n }\n\n}\n","export const NOTION_ANNOTATIONS = 'notion_annotations';\nexport type NotionFieldType = 'title' | 'url' | 'rich_text' \n | 'relation' | 'status' | 'formula' | 'rollup' | 'timestamp'\n | 'number' | 'created_time' | 'last_edited_time' | 'date' | 'select'\n | 'phone_number' | 'email' | 'checkbox' | 'created_by' | 'files'\n | 'last_edited_by' | 'multi_select' | 'people' | 'unique_id';\nexport interface NotionAnnotation<T extends object = undefined> {\n type: NotionFieldType;\n fieldName: string;\n propName: string;\n options?: T;\n}\n\nfunction createDecorator<T extends object = undefined>(type: NotionFieldType, defaultOptions?: T) {\n return (name?: string, options?: Partial<T>) => {\n return (target: any, propName: string) => {\n const fieldName = name || propName;\n const ANNOTATION: NotionAnnotation<T> = {type, fieldName, propName, options: {...defaultOptions, ...options}};\n target.constructor[NOTION_ANNOTATIONS] ??= [];\n target.constructor[NOTION_ANNOTATIONS].push(ANNOTATION);\n };\n };\n}\n\nexport const Title = createDecorator('title');\nexport const Url = createDecorator('url');\nexport const RichText = createDecorator('rich_text');\nexport const Relation = createDecorator<{multi: boolean}>('relation', {multi: false});\nexport const Status = createDecorator('status');\nexport const Formula = createDecorator('formula');\nexport const Rollup = createDecorator<{multi: boolean}>('rollup', {multi: false});\nexport const Timestamp = createDecorator('timestamp');\nexport const Number = createDecorator('number');\nexport const CreatedTime = createDecorator('created_time');\nexport const LastEditedTime = createDecorator('last_edited_time');\nexport const Date = createDecorator('date');\nexport const Select = createDecorator('select');\nexport const PhoneNumber = createDecorator('phone_number');\nexport const Email = createDecorator('email');\nexport const UniqueID = createDecorator('unique_id');\n// Not implemented below props!\n// export const Checkbox = createDecorator('checkbox');\n// export const CreatedBy = createDecorator('created_by');\n// export const Files = createDecorator('files');\n// export const LastEditedBy = createDecorator('last_edited_by');\n// export const MultiSelect = createDecorator('multi_select');\n// export const People = createDecorator('people');\n\nexport const Notion = {\n Title,\n Url,\n RichText,\n Relation,\n Status,\n Formula,\n Rollup,\n Timestamp,\n Number,\n CreatedTime,\n LastEditedTime,\n Date,\n Select,\n PhoneNumber,\n Email,\n UniqueID,\n};\n","import { PageObjectResponse, PartialPageObjectResponse, PartialDatabaseObjectResponse, DatabaseObjectResponse } from \"@notionhq/client/build/src/api-endpoints\";\nimport { NotionUtils } from \"../utils\";\nimport { NotionAnnotation, NOTION_ANNOTATIONS } from \"../decorators\";\nimport { omitBy } from \"lodash-es\";\n\nexport abstract class NotionConverter<E> {\n protected abstract Entity;\n\n fromNotion(page: PageObjectResponse | PartialPageObjectResponse | PartialDatabaseObjectResponse | DatabaseObjectResponse): E {\n const annotations: NotionAnnotation[] = this.Entity[NOTION_ANNOTATIONS] ?? [];\n const obj = annotations.reduce((obj, annotation) => {\n const value = page['properties'][annotation.fieldName] \n ? NotionUtils.fromNotionValue(page['properties'][annotation.fieldName], annotation)\n : undefined;\n return {...obj, [annotation.propName]: value};\n }, {id: page.id});\n return (this.Entity as any).from(obj);\n }\n\n toNotion(entity: Partial<E>): object {\n const annotations: NotionAnnotation[] = this.Entity[NOTION_ANNOTATIONS] ?? [];\n const data = annotations.reduce((obj, annotation) => ({\n ...obj, [annotation.fieldName]: NotionUtils.toNotionValue(entity[annotation.propName], annotation),\n }), {});\n return omitBy(data, (value) => typeof value === 'undefined');\n }\n}\n\nexport function createConverter<E = any>(Entity: any): NotionConverter<E> {\n class Converter extends NotionConverter<E> {\n protected Entity = Entity;\n }\n\n return new Converter();\n}\n","import { inject, InjectionToken } from \"@angular/core\";\nimport type { NotionService } from \"./notion.service.impl\";\n\nexport interface NotionConfig {\n token: string;\n}\n\nexport const NOTION_SERVICE = new InjectionToken<NotionService>('NOTION_SERVICE');\nexport const NOTION_CONFIG = new InjectionToken<NotionConfig>('NOTION_CONFIG');\n\nexport function injectNotion(): NotionService {\n return inject(NOTION_SERVICE, { optional: true }) ?? null;\n}\n","import { NotionAnnotation, NOTION_ANNOTATIONS } from \"../decorators\";\nimport { Entity } from \"@nx-ddd/common/domain\";\n\ntype Evaluation = '==' | '>' | '>=' | '<' | '<=' | '!=' | 'in';\n\nexport class N {\n static RollupPropQuery(property: string, evaluation: Evaluation, value: string | number) {\n return { property, rollup: { every: { rich_text: { equals: value } } } };\n }\n\n static FormulaQuery(property: string, evaluation: Evaluation, value: string | number) {\n return { property, formula: {}};\n }\n\n static LastEditedTime(property: string, evaluation: Evaluation, value: string | number) {\n const query = evaluation === '>' ? 'after' \n : evaluation === '<' ? 'before'\n : evaluation === '==' ? 'equals'\n : evaluation === '<=' ? 'on_or_before'\n : evaluation === '>=' ? 'on_or_after'\n : evaluation === '!=' ? '' : '';\n return { timestamp: 'last_edited_time', last_edited_time: {[query]: value} };\n }\n\n static Timestamp(property: string, evaluation: Evaluation, value: string) {\n const query = evaluation === '>' ? 'after' \n : evaluation === '<' ? 'before'\n : evaluation === '==' ? 'equals'\n : evaluation === '<=' ? 'on_or_before'\n : evaluation === '>=' ? 'on_or_after'\n : evaluation === '!=' ? '' : '';\n return { property, timestamp: {[query]: value} };\n }\n\n static Status(property: string, evaluation: Evaluation, value: string) {\n const query = evaluation === '==' ? 'equals' : '';\n // TODO(nontangent): 'ステータス'を修正\n return { property: 'ステータス', status: {[query]: value} };\n }\n \n static Relation(property: string, evaluation: Evaluation, value: string) {\n const query = evaluation === 'in' ? 'contains': '';\n return { property, relation: {[query]: value} };\n }\n}\n\nexport abstract class NotionBaseQuery {\n type: 'and' | 'or' | 'filter' | 'sort';\n abstract build();\n}\n\nexport class NotionFilter extends NotionBaseQuery {\n readonly type: 'filter' = 'filter';\n\n constructor(\n public propertyType: any,\n public propertyName: string,\n public evaluation: Evaluation,\n public value: string | number,\n ) { super(); }\n\n build() {\n switch(this.propertyName) {\n case 'last_edited_time': return N.LastEditedTime(this.propertyName, this.evaluation, this.value);\n }\n\n switch(this.propertyType) {\n case 'rollup': return N.RollupPropQuery(this.propertyName, this.evaluation, this.value);\n case 'formula': return N.FormulaQuery(this.propertyName, this.evaluation, this.value);\n case 'status': return N.Status(this.propertyName, this.evaluation, this.value as string);\n case 'relation': return N.Relation(this.propertyName, this.evaluation, this.value as string);\n }\n }\n}\n\nexport class NotionSort extends NotionBaseQuery {\n readonly type: 'sort' = 'sort';\n constructor(\n public property: string,\n public direction: 'asc' | 'desc' = 'asc',\n ) { super(); }\n\n build() {\n return {\n property: this.property,\n direction: this.direction === 'asc' ? 'ascending' : 'descending',\n };\n }\n}\n\nexport class NotionAnd extends NotionBaseQuery {\n readonly type: 'and' = 'and';\n arr: NotionFilter[];\n\n constructor(...filters: NotionFilter[]) {\n super();\n this.arr = filters;\n }\n\n build() {\n return {and: this.arr.map(filter => filter.build())};\n }\n}\n\nexport class NotionOr extends NotionBaseQuery {\n readonly type: 'or' = 'or';\n arr: NotionFilter[];\n\n constructor(...filters: NotionFilter[]) {\n super();\n this.arr = filters;\n }\n\n build() {\n return {or: this.arr.map(filter => filter.build())};\n }\n}\n\nexport const Query = <E = any>(Entity: E) => {\n const Filter = (_propName: string, evaluation: Evaluation, value: string | number): NotionFilter => {\n const annotation: NotionAnnotation = Entity[NOTION_ANNOTATIONS].find(({propName}) => propName === _propName);\n\n // if(!annotation) {\n // throw new Error(`NotionFilter: ${Entity} does not have ${_propName}.`);\n // }\n\n return new NotionFilter(annotation?.type, annotation?.fieldName ?? _propName, evaluation, value);\n };\n const OrderBy = (_propName: string, direction: 'asc' | 'desc'): NotionSort => {\n const annotation: NotionAnnotation = Entity[NOTION_ANNOTATIONS].find(({propName}) => propName === _propName);\n return new NotionSort(annotation?.fieldName ?? _propName, direction);\n };\n \n const And = (...args: NotionFilter[]): NotionAnd => new NotionAnd(...args);\n const Or = (...args: NotionFilter[]): NotionOr => new NotionOr(...args);\n\n return {Filter, OrderBy, And, Or};\n}\n","import { NotionBaseQuery } from \"../query\";\n\nexport class NotionQueryBuilder {\n constructor() { }\n\n build(filterQuery?: NotionBaseQuery, sortQuery?: NotionBaseQuery) {\n return {\n ...(filterQuery ? this.buildFilterQuery(filterQuery) : {}),\n ...(sortQuery ? this.buildSortQuery(sortQuery) : {}),\n }\n }\n\n protected buildSortQuery(query: NotionBaseQuery) {\n if (query.type === 'sort') {\n return { sorts: [query.build()]};\n } else {\n return {};\n }\n }\n\n protected buildFilterQuery(query: NotionBaseQuery) {\n if (query.type === 'filter') {\n return { filter: { and: [query.build()] } };\n } else if (['and', 'or'].includes(query.type)) {\n return { filter: query.build() };\n } else {\n return {};\n }\n }\n}\n","import { Client } from '@notionhq/client';\nimport { Entity } from '@nx-ddd/common/domain';\nimport { Repository } from '@nx-ddd/common/domain';\nimport { inject, Injectable, InjectionToken } from '@angular/core';\nimport { NotionConverter } from '../converter';\nimport { NotionBaseQuery } from '../query';\nimport { NotionQueryBuilder } from '../query-builder';\nimport { Observable } from 'rxjs';\n\nexport const NOTION_ACCESS_TOKEN = new InjectionToken<string>('[@nx-ddd/notion] Notion Access Token');\nexport const NOTION_DATABASE_ID = new InjectionToken('[@nx-ddd/notion] Notion Database Id');\n\nexport function provideNotionConfig(config: {accessToken: string}) {\n return { provide: NOTION_ACCESS_TOKEN, useValue: config.accessToken };\n}\n\n@Injectable()\nexport abstract class NotionRepository<E extends Entity> extends Repository<E> {\n protected abstract databaseId: string;\n protected abstract converter: NotionConverter<E>;\n\n protected token: string = inject(NOTION_ACCESS_TOKEN);\n protected client = new Client({auth: this.token});\n protected queryBuilder = new NotionQueryBuilder();\n protected get parent(): {type: 'database_id', database_id: string} {\n return { type: 'database_id', database_id: this.databaseId };\n }\n\n async query(\n filterQuery?: NotionBaseQuery, \n sortQuery?: NotionBaseQuery,\n startCursor?: string,\n pageSize?: number,\n ) {\n try {\n const obj = this.queryBuilder.build(filterQuery, sortQuery);\n const res = await this.client.databases.query({\n database_id: this.databaseId,\n ...obj,\n start_cursor: startCursor,\n page_size: pageSize,\n });\n return {\n results: res.results.map(result => this.converter.fromNotion(result)),\n nextCursor: res.next_cursor,\n hasMore: res.has_more,\n }\n } catch (error) {\n throw error;\n }\n }\n\n async queryV2(args?: any) {\n try {\n const res = await this.client.databases.query({\n database_id: this.databaseId,\n ...(args ?? {}),\n });\n return {\n results: res.results.map(result => this.converter.fromNotion(result)),\n nextCursor: res.next_cursor,\n hasMore: res.has_more,\n }\n } catch (error) {\n throw error;\n }\n }\n\n async list({\n batchSize = 100,\n }: {\n batchSize?: number,\n } = {}): Promise<E[]> {\n const orders: E[] = [];\n let nextCursor: string;\n while(true) {\n const res = await this.query(undefined, undefined, nextCursor, batchSize);\n console.debug(res.nextCursor);\n orders.push(...res.results);\n nextCursor = res.nextCursor;\n if (!res.hasMore) break;\n }\n return orders;\n }\n\n listChanges(): Observable<E[]> {\n throw new Error('NotionRepository.listChanges() is not implemented');\n }\n\n async get({id}: {id: string}): Promise<E> {\n const data = await this.client.pages.retrieve({page_id: id});\n return this.converter.fromNotion(data);\n }\n\n async create(entity: Omit<E, 'id' | 'createdAt' | 'updatedAt'> & Partial<Pick<E, 'id'>>): Promise<E> {\n try {\n const res = await this.client.pages.create({\n parent: this.parent,\n properties: {...this.converter.toNotion(entity as E)},\n }); \n return this.converter.fromNotion(res);\n } catch (error) {\n throw error;\n }\n }\n\n async createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]> {\n throw new Error('NotionRepository.createMany() is not implemented');\n }\n\n async update(entity: Partial<E>) {\n const data = {\n page_id: (entity as any).id,\n properties: {...this.converter.toNotion(entity)},\n };\n await this.client.pages.update(data);\n }\n\n async save(data: Partial<E>): Promise<boolean | [E, boolean]> {\n throw new Error('NotionRepository.save() is not implemented');\n }\n\n async saveMany(entities: E[]): Promise<void> {\n throw new Error('NotionRepository.saveMany() is not implemented');\n }\n\n async updateMany(data: Partial<E>[]) {\n throw new Error('NotionRepository.updateMany() is not implemented');\n }\n\n async delete({id}: {id: string}) {\n throw new Error('NotionRepository.delete() is not implemented');\n }\n\n async deleteMany(params: { id: string; }[]): Promise<number> {\n throw new Error('NotionRepository.deleteMany() is not implemented');\n }\n\n async deleteAll(): Promise<void> {\n throw new Error('NotionRepository.deleteAll() is not implemented');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nx-ddd/notion",
|
|
3
|
-
"version": "19.0.0-preview.
|
|
3
|
+
"version": "19.0.0-preview.25",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@notionhq/client": "^2.2.2",
|
|
7
|
-
"@nx-ddd/common": "19.0.0-preview.
|
|
7
|
+
"@nx-ddd/common": "19.0.0-preview.25",
|
|
8
8
|
"dayjs": "1.11.13",
|
|
9
9
|
"lodash-es": "^4.17.15",
|
|
10
10
|
"@angular/core": "19.1.4",
|
|
@@ -5,6 +5,7 @@ import { InjectionToken } from '@angular/core';
|
|
|
5
5
|
import { NotionConverter } from '../converter';
|
|
6
6
|
import { NotionBaseQuery } from '../query';
|
|
7
7
|
import { NotionQueryBuilder } from '../query-builder';
|
|
8
|
+
import { Observable } from 'rxjs';
|
|
8
9
|
import * as i0 from "@angular/core";
|
|
9
10
|
export declare const NOTION_ACCESS_TOKEN: InjectionToken<string>;
|
|
10
11
|
export declare const NOTION_DATABASE_ID: InjectionToken<unknown>;
|
|
@@ -37,14 +38,23 @@ export declare abstract class NotionRepository<E extends Entity> extends Reposit
|
|
|
37
38
|
list({ batchSize, }?: {
|
|
38
39
|
batchSize?: number;
|
|
39
40
|
}): Promise<E[]>;
|
|
41
|
+
listChanges(): Observable<E[]>;
|
|
40
42
|
get({ id }: {
|
|
41
43
|
id: string;
|
|
42
44
|
}): Promise<E>;
|
|
43
|
-
create(entity: Partial<E
|
|
45
|
+
create(entity: Omit<E, 'id' | 'createdAt' | 'updatedAt'> & Partial<Pick<E, 'id'>>): Promise<E>;
|
|
46
|
+
createMany(data: Omit<E, 'id' | 'createdAt' | 'updatedAt'>[]): Promise<E[]>;
|
|
44
47
|
update(entity: Partial<E>): Promise<void>;
|
|
48
|
+
save(data: Partial<E>): Promise<boolean | [E, boolean]>;
|
|
49
|
+
saveMany(entities: E[]): Promise<void>;
|
|
50
|
+
updateMany(data: Partial<E>[]): Promise<void>;
|
|
45
51
|
delete({ id }: {
|
|
46
52
|
id: string;
|
|
47
53
|
}): Promise<void>;
|
|
54
|
+
deleteMany(params: {
|
|
55
|
+
id: string;
|
|
56
|
+
}[]): Promise<number>;
|
|
57
|
+
deleteAll(): Promise<void>;
|
|
48
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<NotionRepository<any>, never>;
|
|
49
59
|
static ɵprov: i0.ɵɵInjectableDeclaration<NotionRepository<any>>;
|
|
50
60
|
}
|