@haustle/notion-orm 0.0.37 → 0.0.41

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.
Files changed (39) hide show
  1. package/README.md +126 -0
  2. package/build/src/BuildCall.d.ts +15 -2
  3. package/build/src/BuildCall.d.ts.map +1 -1
  4. package/build/src/BuildCall.js +35 -2
  5. package/build/src/BuildCall.js.map +1 -1
  6. package/build/src/DatabaseActions.d.ts +3 -4
  7. package/build/src/DatabaseActions.d.ts.map +1 -1
  8. package/build/src/DatabaseActions.js +7 -2
  9. package/build/src/DatabaseActions.js.map +1 -1
  10. package/build/src/GenerateTypes.d.ts +0 -3
  11. package/build/src/GenerateTypes.d.ts.map +1 -1
  12. package/build/src/GenerateTypes.js +49 -58
  13. package/build/src/GenerateTypes.js.map +1 -1
  14. package/build/src/cli.js +2 -4
  15. package/build/src/cli.js.map +1 -1
  16. package/build/src/index.d.ts +12 -0
  17. package/build/src/index.d.ts.map +1 -0
  18. package/build/src/{NotionConfig.js → index.js} +21 -15
  19. package/build/src/index.js.map +1 -0
  20. package/build/src/queryTypes.d.ts +22 -11
  21. package/build/src/queryTypes.d.ts.map +1 -1
  22. package/build/src/queryTypes.js +0 -6
  23. package/build/src/queryTypes.js.map +1 -1
  24. package/package.json +3 -5
  25. package/build/databases/5f4bf76a-1e3f-48d6-84d2-506ea2690d64.js +0 -28
  26. package/build/databases/5f4bf76a-1e3f-48d6-84d2-506ea2690d64.ts +0 -34
  27. package/build/databases/a52239e4-839d-4a3a-8f48-75376cfbfb02.js +0 -24
  28. package/build/databases/a52239e4-839d-4a3a-8f48-75376cfbfb02.ts +0 -30
  29. package/build/databases/notion.js +0 -2
  30. package/build/databases/notion.ts +0 -2
  31. package/build/src/NotionConfig.d.ts +0 -9
  32. package/build/src/NotionConfig.d.ts.map +0 -1
  33. package/build/src/NotionConfig.js.map +0 -1
  34. package/src/BuildCall.ts +0 -85
  35. package/src/DatabaseActions.ts +0 -134
  36. package/src/GenerateTypes.ts +0 -424
  37. package/src/NotionConfig.ts +0 -132
  38. package/src/cli.ts +0 -43
  39. package/src/queryTypes.ts +0 -160
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ /**
3
+ * Responsible for consuming notion.config.js
4
+ */
2
5
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
6
  if (k2 === undefined) k2 = k;
4
7
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -41,10 +44,9 @@ const GenerateTypes_1 = require("./GenerateTypes");
41
44
  const ts = __importStar(require("typescript"));
42
45
  const fs_1 = __importDefault(require("fs"));
43
46
  const path_1 = __importDefault(require("path"));
44
- require("dotenv").config();
45
47
  exports.DATABASES_DIR = path_1.default.join(__dirname, "../../build", "databases");
46
- const createDatabaseTypes = (notionInfo) => __awaiter(void 0, void 0, void 0, function* () {
47
- const { auth, databaseIds } = notionInfo;
48
+ const createDatabaseTypes = (args) => __awaiter(void 0, void 0, void 0, function* () {
49
+ const { auth, databaseIds } = args;
48
50
  // Making sure the user is passing valid arguments
49
51
  if (!auth) {
50
52
  console.error("Please pass a valid Notion Integration Key");
@@ -74,7 +76,6 @@ const createDatabaseTypes = (notionInfo) => __awaiter(void 0, void 0, void 0, fu
74
76
  databaseNames.push(databaseName);
75
77
  databaseClassExportStatements.push(databaseExportStatement({
76
78
  databaseClassName,
77
- databaseId,
78
79
  }));
79
80
  }
80
81
  catch (e) {
@@ -83,31 +84,36 @@ const createDatabaseTypes = (notionInfo) => __awaiter(void 0, void 0, void 0, fu
83
84
  }
84
85
  }
85
86
  // Create a file that exports all databases
86
- createNotionFile([...databaseClassExportStatements]);
87
+ createDatabaseBarrelFile({
88
+ databaseClassExportStatements,
89
+ });
87
90
  return { databaseNames };
88
91
  });
89
92
  exports.createDatabaseTypes = createDatabaseTypes;
90
- // Create the import statement for notion.ts file
91
- function databaseExportStatement(dbClass) {
93
+ // Create the export statement for database file file
94
+ // export { databaseName } from "./databaseName"
95
+ function databaseExportStatement(args) {
96
+ const { databaseClassName } = args;
92
97
  return ts.factory.createExportDeclaration(undefined, false, ts.factory.createNamedExports([
93
- ts.factory.createExportSpecifier(false, undefined, ts.factory.createIdentifier(dbClass.databaseClassName)),
94
- ]), ts.factory.createStringLiteral(`./${dbClass.databaseId}`), undefined);
98
+ ts.factory.createExportSpecifier(false, undefined, ts.factory.createIdentifier(databaseClassName)),
99
+ ]), ts.factory.createStringLiteral(`./${databaseClassName}`), undefined);
95
100
  }
96
101
  // Creates file that import all generated notion database Ids
97
- function createNotionFile(nodeArr) {
98
- const nodes = ts.factory.createNodeArray(nodeArr);
102
+ function createDatabaseBarrelFile(args) {
103
+ const { databaseClassExportStatements } = args;
104
+ const nodes = ts.factory.createNodeArray(databaseClassExportStatements);
99
105
  const sourceFile = ts.createSourceFile("placeholder.ts", "", ts.ScriptTarget.ESNext, true, ts.ScriptKind.TS);
100
106
  const printer = ts.createPrinter();
101
107
  const typescriptCodeToString = printer.printList(ts.ListFormat.MultiLine, nodes, sourceFile);
102
108
  const transpileToJavaScript = ts.transpile(typescriptCodeToString, {
103
109
  module: ts.ModuleKind.None,
104
- target: ts.ScriptTarget.ES2016,
110
+ target: ts.ScriptTarget.ES2015,
105
111
  });
106
112
  if (!fs_1.default.existsSync(exports.DATABASES_DIR)) {
107
113
  fs_1.default.mkdirSync(exports.DATABASES_DIR);
108
114
  }
109
115
  // Create TypeScript and JavaScript file
110
- fs_1.default.writeFileSync(path_1.default.resolve(exports.DATABASES_DIR, "notion.ts"), typescriptCodeToString);
111
- fs_1.default.writeFileSync(path_1.default.resolve(exports.DATABASES_DIR, "notion.js"), typescriptCodeToString);
116
+ fs_1.default.writeFileSync(path_1.default.resolve(exports.DATABASES_DIR, "index.ts"), typescriptCodeToString);
117
+ fs_1.default.writeFileSync(path_1.default.resolve(exports.DATABASES_DIR, "index.js"), transpileToJavaScript);
112
118
  }
113
- //# sourceMappingURL=NotionConfig.js.map
119
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * Column types' for all query options
3
3
  */
4
- export type FilterOptionNames = "text" | "title" | "number" | "checkbox" | "select" | "multi_select" | "url" | "date";
4
+ import { PageObjectResponse } from "@notionhq/client/build/src/api-endpoints";
5
+ type columnDiscriminatedUnionTypes = PageObjectResponse["properties"];
6
+ export type NotionColumnTypes = columnDiscriminatedUnionTypes[keyof columnDiscriminatedUnionTypes]["type"];
7
+ export type SupportedNotionColumnTypes = Exclude<NotionColumnTypes, "formula" | "files" | "people" | "relation" | "rollup" | "created_by" | "last_edited_by" | "created_time" | "last_edited_time">;
5
8
  type TextPropertyFilters = {
6
9
  equals: string;
7
10
  does_not_equal: string;
@@ -38,11 +41,13 @@ type MultiSelectPropertyFilters<T> = {
38
41
  is_empty: true;
39
42
  is_not_empty: true;
40
43
  };
44
+ type StatusPropertyFilters<T> = SelectPropertyFilters<T>;
45
+ type ISO8601Date = string;
41
46
  type DatePropertyFilters = {
42
- equals: string;
43
- before: string;
44
- after: string;
45
- on_or_before: string;
47
+ equals: ISO8601Date;
48
+ before: ISO8601Date;
49
+ after: ISO8601Date;
50
+ on_or_before: ISO8601Date;
46
51
  is_empty: true;
47
52
  is_not_empty: true;
48
53
  on_or_after: string;
@@ -55,26 +60,32 @@ type DatePropertyFilters = {
55
60
  next_year: {};
56
61
  };
57
62
  export type FilterOptions<T = []> = {
58
- text: TextPropertyFilters;
63
+ rich_text: TextPropertyFilters;
59
64
  title: TextPropertyFilters;
60
65
  number: NumberPropertyFilters;
61
66
  checkbox: CheckBoxPropertyFilters;
62
67
  select: SelectPropertyFilters<T>;
63
68
  multi_select: MultiSelectPropertyFilters<T>;
64
- url: string;
69
+ url: TextPropertyFilters;
65
70
  date: DatePropertyFilters;
71
+ status: StatusPropertyFilters<T>;
72
+ email: TextPropertyFilters;
73
+ phone_number: TextPropertyFilters;
66
74
  };
67
- type ColumnNameToNotionColumnType<T> = Record<keyof T, FilterOptionNames>;
75
+ /**
76
+ * Types to build query object user types out
77
+ */
78
+ type ColumnNameToNotionColumnType<T> = Record<keyof T, SupportedNotionColumnTypes>;
68
79
  export type SingleFilter<Y extends Record<string, any>, T extends ColumnNameToNotionColumnType<Y>> = {
69
80
  [Property in keyof Y]?: Partial<FilterOptions<Y[Property]>[T[Property]]>;
70
81
  };
71
- export type CompoundFilters<Y extends Record<string, any>, T extends Record<keyof Y, FilterOptionNames>> = {
82
+ export type CompoundFilters<Y extends Record<string, any>, T extends Record<keyof Y, SupportedNotionColumnTypes>> = {
72
83
  and: Array<SingleFilter<Y, T> | CompoundFilters<Y, T>>;
73
84
  } | {
74
85
  or: Array<SingleFilter<Y, T> | CompoundFilters<Y, T>>;
75
86
  };
76
- export type QueryFilter<Y extends Record<string, any>, T extends Record<keyof Y, FilterOptionNames>> = SingleFilter<Y, T> | CompoundFilters<Y, T>;
77
- export type Query<Y extends Record<string, any>, T extends Record<keyof Y, FilterOptionNames>> = {
87
+ export type QueryFilter<Y extends Record<string, any>, T extends Record<keyof Y, SupportedNotionColumnTypes>> = SingleFilter<Y, T> | CompoundFilters<Y, T>;
88
+ export type Query<Y extends Record<string, any>, T extends Record<keyof Y, SupportedNotionColumnTypes>> = {
78
89
  filter?: QueryFilter<Y, T>;
79
90
  sort?: [];
80
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"queryTypes.d.ts","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,MAAM,iBAAiB,GAC1B,MAAM,GACN,OAAO,GACP,QAAQ,GACR,UAAU,GACV,QAAQ,GACR,cAAc,GACd,KAAK,GACL,MAAM,CAAC;AAEV,KAAK,mBAAmB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,wBAAwB,EAAE,MAAM,CAAC;IACjC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF,KAAK,uBAAuB,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;CACxB,CAAC;AAGF,KAAK,qBAAqB,CAAC,CAAC,IAAI;IAC/B,MAAM,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAC/D,cAAc,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACvE,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,IAAI,CAAC;CACnB,CAAC;AAGF,KAAK,0BAA0B,CAAC,CAAC,IAAI;IACpC,QAAQ,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACjE,gBAAgB,EAAE,CAAC,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACzE,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,IAAI,CAAC;CACnB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,IAAI,CAAC;IACf,YAAY,EAAE,IAAI,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,EAAE,CAAC;IACd,UAAU,EAAE,EAAE,CAAC;IACf,SAAS,EAAE,EAAE,CAAC;IACd,SAAS,EAAE,EAAE,CAAC;IACd,SAAS,EAAE,EAAE,CAAC;IACd,UAAU,EAAE,EAAE,CAAC;IACf,SAAS,EAAE,EAAE,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,GAAG,EAAE,IAAI;IACnC,IAAI,EAAE,mBAAmB,CAAC;IAC1B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,EAAE,qBAAqB,CAAC;IAC9B,QAAQ,EAAE,uBAAuB,CAAC;IAClC,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACjC,YAAY,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,mBAAmB,CAAC;CAC1B,CAAC;AAUF,KAAK,4BAA4B,CAAC,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAI1E,MAAM,MAAM,YAAY,CACvB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,4BAA4B,CAAC,CAAC,CAAC,IACtC;KAEF,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;CACxE,CAAC;AAEF,MAAM,MAAM,eAAe,CAC1B,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,IAE1C;IAAE,GAAG,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAAE,GAC1D;IAAE,EAAE,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;CAAE,CAAC;AAE7D,MAAM,MAAM,WAAW,CACtB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,IACzC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/C,MAAM,MAAM,KAAK,CAChB,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC7B,CAAC,SAAS,MAAM,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC,IACzC;IACH,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,EAAE,CAAC;CACV,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC5B,MAAM,CAAC,EAAE,eAAe,GAAG,YAAY,GAAG,WAAW,CAAC;CACtD,CAAC;AAEF;;;GAGG;AAEH,KAAK,sBAAsB,GAAG;KAC5B,IAAI,IAAI,MAAM,aAAa,CAAC,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;CAC5D,CAAC;AACF,MAAM,WAAW,eAAgB,SAAQ,sBAAsB;IAC9D,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GACtB,eAAe,GACf,YAAY,GACZ,WAAW,GACX,SAAS,CAAC;AACb,KAAK,YAAY,GAAG;IACnB,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CAC1B,CAAC;AAEF,KAAK,WAAW,GAAG;IAClB,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;CACzB,CAAC"}
1
+ {"version":3,"file":"queryTypes.d.ts","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,4 @@
4
4
  */
5
5
  // import { PageObjectResponse }
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- /**
8
- * Types to build query object user types out
9
- */
10
- const x = {
11
- character: "multi_select",
12
- };
13
7
  //# sourceMappingURL=queryTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queryTypes.js","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,gCAAgC;;AAyFhC;;GAEG;AAEH,MAAM,CAAC,GAAG;IACT,SAAS,EAAE,cAAc;CACzB,CAAC"}
1
+ {"version":3,"file":"queryTypes.js","sourceRoot":"","sources":["../../src/queryTypes.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,gCAAgC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@haustle/notion-orm",
3
- "version": "0.0.37",
3
+ "version": "0.0.41",
4
4
  "description": "tool to bring notion databases schemas/types to typescript",
5
- "main": "build/src/cli.js",
5
+ "main": "build/databases/index.js",
6
6
  "bin": {
7
7
  "notion": "build/src/cli.js"
8
8
  },
@@ -19,8 +19,6 @@
19
19
  "typescript": "^4.8.4"
20
20
  },
21
21
  "dependencies": {
22
- "@notionhq/client": "^2.2.2",
23
- "dotenv": "^16.0.3",
24
- "path": "^0.12.7"
22
+ "@notionhq/client": "^2.2.2"
25
23
  }
26
24
  }
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.newGradApps = void 0;
4
- const DatabaseActions_1 = require("../src/DatabaseActions");
5
- const databaseId = "5f4bf76a-1e3f-48d6-84d2-506ea2690d64";
6
- const propMap = {
7
- "role": {
8
- columnName: "Role",
9
- type: "select"
10
- },
11
- "deadline": {
12
- columnName: "Deadline",
13
- type: "date"
14
- },
15
- "process": {
16
- columnName: "Process",
17
- type: "select"
18
- },
19
- "complete": {
20
- columnName: "Complete",
21
- type: "checkbox"
22
- },
23
- "company": {
24
- columnName: "Company",
25
- type: "title"
26
- }
27
- };
28
- exports.newGradApps = new DatabaseActions_1.DatabaseActions(databaseId, propMap);
@@ -1,34 +0,0 @@
1
- import { DatabaseActions } from "../src/DatabaseActions";
2
- const databaseId = "5f4bf76a-1e3f-48d6-84d2-506ea2690d64";
3
- type DatabaseSchemaType = {
4
- role?: "SWE Intern" | "New Grad" | "SWE Co-op" | "Software Engineer" | (string & {});
5
- deadline?: Date;
6
- process?: "Applied" | "OA" | "Phone Interview" | "TH Project" | "Offer" | "Accepted" | (string & {});
7
- company: string;
8
- };
9
- const propMap = {
10
- "role": {
11
- columnName: "Role",
12
- type: "select"
13
- },
14
- "deadline": {
15
- columnName: "Deadline",
16
- type: "date"
17
- },
18
- "process": {
19
- columnName: "Process",
20
- type: "select"
21
- },
22
- "complete": {
23
- columnName: "Complete",
24
- type: "checkbox"
25
- },
26
- "company": {
27
- columnName: "Company",
28
- type: "title"
29
- }
30
- } as const
31
- type ColumnNameToColumnType = {
32
- [Property in keyof typeof propMap]: (typeof propMap)[Property]["type"];
33
- };
34
- export const newGradApps = new DatabaseActions<DatabaseSchemaType, ColumnNameToColumnType>(databaseId, propMap);
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dimitriSFightingVideo = void 0;
4
- const DatabaseActions_1 = require("../src/DatabaseActions");
5
- const databaseId = "a52239e4-839d-4a3a-8f48-75376cfbfb02";
6
- const propMap = {
7
- "character": {
8
- columnName: "Character",
9
- type: "multi_select"
10
- },
11
- "game": {
12
- columnName: "Game",
13
- type: "select"
14
- },
15
- "link": {
16
- columnName: "Link",
17
- type: "url"
18
- },
19
- "combo": {
20
- columnName: "Combo",
21
- type: "title"
22
- }
23
- };
24
- exports.dimitriSFightingVideo = new DatabaseActions_1.DatabaseActions(databaseId, propMap);
@@ -1,30 +0,0 @@
1
- import { DatabaseActions } from "../src/DatabaseActions";
2
- const databaseId = "a52239e4-839d-4a3a-8f48-75376cfbfb02";
3
- type DatabaseSchemaType = {
4
- character?: ("fox" | "kirby" | "falcon" | "android 21" | "Joker" | "Kid buu" | (string & {}))[];
5
- game?: "smash" | "dragon ball" | (string & {});
6
- link?: string;
7
- combo: string;
8
- };
9
- const propMap = {
10
- "character": {
11
- columnName: "Character",
12
- type: "multi_select"
13
- },
14
- "game": {
15
- columnName: "Game",
16
- type: "select"
17
- },
18
- "link": {
19
- columnName: "Link",
20
- type: "url"
21
- },
22
- "combo": {
23
- columnName: "Combo",
24
- type: "title"
25
- }
26
- } as const
27
- type ColumnNameToColumnType = {
28
- [Property in keyof typeof propMap]: (typeof propMap)[Property]["type"];
29
- };
30
- export const dimitriSFightingVideo = new DatabaseActions<DatabaseSchemaType, ColumnNameToColumnType>(databaseId, propMap);
@@ -1,2 +0,0 @@
1
- export { dimitriSFightingVideo } from "./a52239e4-839d-4a3a-8f48-75376cfbfb02";
2
- export { newGradApps } from "./5f4bf76a-1e3f-48d6-84d2-506ea2690d64";
@@ -1,2 +0,0 @@
1
- export { dimitriSFightingVideo } from "./a52239e4-839d-4a3a-8f48-75376cfbfb02";
2
- export { newGradApps } from "./5f4bf76a-1e3f-48d6-84d2-506ea2690d64";
@@ -1,9 +0,0 @@
1
- export declare const DATABASES_DIR: string;
2
- export type NotionConfigType = {
3
- auth: string;
4
- databaseIds: string[];
5
- };
6
- export declare const createDatabaseTypes: (notionInfo: NotionConfigType) => Promise<{
7
- databaseNames: string[];
8
- }>;
9
- //# sourceMappingURL=NotionConfig.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotionConfig.d.ts","sourceRoot":"","sources":["../../src/NotionConfig.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,aAAa,QAAmD,CAAC;AAE9E,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAOF,eAAO,MAAM,mBAAmB,eAAsB,gBAAgB;;EAwDrE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotionConfig.js","sourceRoot":"","sources":["../../src/NotionConfig.ts"],"names":[],"mappings":"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"}
package/src/BuildCall.ts DELETED
@@ -1,85 +0,0 @@
1
- import { PropertyType } from "./GenerateTypes";
2
-
3
- export function getCall(args: {
4
- type: PropertyType;
5
- value: string | number | boolean;
6
- }) {
7
- const { type, value } = args;
8
- console.log(type, value, typeof value);
9
- if (type === "select" && typeof value === "string") {
10
- return selectCall({ value });
11
- } else if (type === "multi_select" && Array.isArray(value)) {
12
- return multiSelectCall({ value });
13
- } else if (type === "number" && typeof value === "number") {
14
- return numberCall({ value });
15
- } else if (type === "url" && typeof value === "string") {
16
- return urlCall({ url: value });
17
- } else if (type === "checkbox" && typeof value === "boolean") {
18
- return checkboxCall({ checked: value });
19
- } else if (type === "title" && typeof value === "string") {
20
- return titleCall({ title: value });
21
- } else if (type === "text" && typeof value === "string") {
22
- return textCall({ text: value });
23
- }
24
- }
25
-
26
- /*
27
- ======================================================
28
- GENERATE OBJECT BASED ON TYPE
29
- ======================================================
30
- */
31
-
32
- const selectCall = (args: { value: string }) => {
33
- const { value } = args;
34
- const select = {
35
- name: value,
36
- };
37
- return { select };
38
- };
39
-
40
- const multiSelectCall = (args: { value: Array<string> }) => {
41
- const { value } = args;
42
- const multi_select = value.map((option) => ({ name: option }));
43
- return { multi_select };
44
- };
45
-
46
- const textCall = (args: { text: string }) => {
47
- const { text } = args;
48
- const rich_text = [
49
- {
50
- text: {
51
- content: text,
52
- },
53
- },
54
- ];
55
-
56
- return { rich_text };
57
- };
58
-
59
- const titleCall = (args: { title: string }) => {
60
- const { title } = args;
61
- const titleObject = [
62
- {
63
- text: {
64
- content: title,
65
- },
66
- },
67
- ];
68
-
69
- return { title: titleObject };
70
- };
71
-
72
- const numberCall = (args: { value: number }) => {
73
- const { value: number } = args;
74
- return { number };
75
- };
76
-
77
- const urlCall = (args: { url: string }) => {
78
- const { url } = args;
79
- return { url };
80
- };
81
-
82
- const checkboxCall = (args: { checked: boolean }) => {
83
- const { checked: checkbox } = args;
84
- return { checkbox };
85
- };
@@ -1,134 +0,0 @@
1
- import {
2
- CreatePageParameters,
3
- QueryDatabaseParameters,
4
- } from "@notionhq/client/build/src/api-endpoints";
5
- import { Client } from "@notionhq/client";
6
- import { getCall } from "./BuildCall";
7
- import { PropertyType } from "./GenerateTypes";
8
- import {
9
- apiFilterType,
10
- apiSingleFilter,
11
- CompoundFilters,
12
- FilterOptionNames,
13
- Query,
14
- QueryFilter,
15
- SingleFilter,
16
- } from "./queryTypes";
17
- require("dotenv").config();
18
-
19
- export type propNameToColumnNameType = Record<
20
- string,
21
- { columnName: string; type: PropertyType }
22
- >;
23
-
24
- export class DatabaseActions<
25
- DatabaseSchemaType extends Record<string, any>,
26
- ColumnNameToColumnType extends Record<
27
- keyof DatabaseSchemaType,
28
- FilterOptionNames
29
- >
30
- > {
31
- private NotionClient: Client = new Client({
32
- auth: process.env.NOTION_KEY,
33
- });
34
- private databaseId: string;
35
- private propNameToColumnName: propNameToColumnNameType;
36
- private columnNames: string[];
37
-
38
- constructor(
39
- datbaseId: string,
40
- propNameToColumnName: propNameToColumnNameType
41
- ) {
42
- this.databaseId = datbaseId;
43
- this.propNameToColumnName = propNameToColumnName;
44
- this.columnNames = Object.keys(propNameToColumnName);
45
- }
46
-
47
- // Add page to a database
48
- async add(pageObject: DatabaseSchemaType) {
49
- const callBody: CreatePageParameters = {
50
- parent: {
51
- database_id: this.databaseId,
52
- },
53
- properties: {},
54
- };
55
-
56
- const columnTypePropNames = Object.keys(pageObject);
57
- columnTypePropNames.forEach((propName) => {
58
- const { type, columnName } = this.propNameToColumnName[propName];
59
- const columnObject = getCall({
60
- type,
61
- value: pageObject[propName],
62
- });
63
-
64
- callBody.properties[columnName] = columnObject!;
65
- });
66
-
67
- // console.log(JSON.stringify(callBody, null, 4));
68
- await this.NotionClient.pages.create(callBody);
69
- }
70
-
71
- // Look for page inside the database
72
- async query(query: Query<DatabaseSchemaType, ColumnNameToColumnType>) {
73
- const queryCall: QueryDatabaseParameters = {
74
- database_id: this.databaseId,
75
- };
76
-
77
- const filters = query.filter
78
- ? this.recursivelyBuildFilter(query.filter)
79
- : undefined;
80
- if (filters) {
81
- // @ts-ignore errors vs notion api types
82
- queryCall["filter"] = filters;
83
- }
84
-
85
- console.log(JSON.stringify(queryCall, null, 4));
86
-
87
- const sort = query.sort;
88
-
89
- const apiQuery = await this.NotionClient.databases.query(queryCall);
90
- console.log(apiQuery);
91
- }
92
-
93
- private recursivelyBuildFilter(
94
- queryFilter: QueryFilter<DatabaseSchemaType, ColumnNameToColumnType>
95
- ): apiFilterType {
96
- // Need to loop because we don't kno
97
- for (const prop in queryFilter) {
98
- // if the filter is "and" || "or" we need to recursively
99
- if (prop === "and" || prop === "or") {
100
- const compoundFilters: QueryFilter<
101
- DatabaseSchemaType,
102
- ColumnNameToColumnType
103
- >[] =
104
- // @ts-ignore
105
- queryFilter[prop];
106
-
107
- const compoundApiFilters = compoundFilters.map(
108
- (i: QueryFilter<DatabaseSchemaType, ColumnNameToColumnType>) => {
109
- return this.recursivelyBuildFilter(i);
110
- }
111
- );
112
-
113
- // Either have an `and` or an `or` compound filter
114
- let temp: apiFilterType = {
115
- ...(prop === "and"
116
- ? { and: compoundApiFilters }
117
- : { or: compoundApiFilters }),
118
- };
119
- return temp;
120
- } else {
121
- const propType = this.propNameToColumnName[prop].type;
122
- const temp: apiSingleFilter = {
123
- property: this.propNameToColumnName[prop].columnName,
124
- };
125
-
126
- //@ts-ignore
127
- temp[propType] = (queryFilter as SingleFilter<ColumnNameToColumnType>)[
128
- prop
129
- ];
130
- return temp;
131
- }
132
- }
133
- }
134
- }