@haustle/notion-orm 0.0.1 → 0.0.21
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/build/NotionActions/BuildCall.d.ts +32 -0
- package/build/NotionActions/BuildCall.d.ts.map +1 -0
- package/build/NotionActions/BuildCall.js +81 -0
- package/build/NotionActions/BuildCall.js.map +1 -0
- package/build/NotionActions/GenerateTypes.d.ts +10 -0
- package/build/NotionActions/GenerateTypes.d.ts.map +1 -0
- package/build/NotionActions/GenerateTypes.js +245 -0
- package/build/NotionActions/GenerateTypes.js.map +1 -0
- package/build/NotionActions/NotionCollection.d.ts +17 -0
- package/build/NotionActions/NotionCollection.d.ts.map +1 -0
- package/build/NotionActions/NotionCollection.js +96 -0
- package/build/NotionActions/NotionCollection.js.map +1 -0
- package/build/NotionActions/NotionConfig.d.ts +8 -0
- package/build/NotionActions/NotionConfig.d.ts.map +1 -0
- package/build/NotionActions/NotionConfig.js +119 -0
- package/build/NotionActions/NotionConfig.js.map +1 -0
- package/build/NotionActions/queryTypes.d.ts +85 -0
- package/build/NotionActions/queryTypes.d.ts.map +1 -0
- package/build/NotionActions/queryTypes.js +13 -0
- package/build/NotionActions/queryTypes.js.map +1 -0
- package/build/index.d.ts +3 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +50 -0
- package/build/index.js.map +1 -0
- package/package.json +3 -3
- package/tsconfig.json +5 -2
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { PropertyType } from "./GenerateTypes";
|
|
2
|
+
export declare function getCall(args: {
|
|
3
|
+
type: PropertyType;
|
|
4
|
+
value: string | number | boolean;
|
|
5
|
+
}): {
|
|
6
|
+
select: {
|
|
7
|
+
name: string;
|
|
8
|
+
};
|
|
9
|
+
} | {
|
|
10
|
+
multi_select: {
|
|
11
|
+
name: string;
|
|
12
|
+
}[];
|
|
13
|
+
} | {
|
|
14
|
+
number: number;
|
|
15
|
+
} | {
|
|
16
|
+
url: string;
|
|
17
|
+
} | {
|
|
18
|
+
checkbox: boolean;
|
|
19
|
+
} | {
|
|
20
|
+
title: {
|
|
21
|
+
text: {
|
|
22
|
+
content: string;
|
|
23
|
+
};
|
|
24
|
+
}[];
|
|
25
|
+
} | {
|
|
26
|
+
rich_text: {
|
|
27
|
+
text: {
|
|
28
|
+
content: string;
|
|
29
|
+
};
|
|
30
|
+
}[];
|
|
31
|
+
} | undefined;
|
|
32
|
+
//# sourceMappingURL=BuildCall.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildCall.d.ts","sourceRoot":"","sources":["../../src/NotionActions/BuildCall.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,wBAAgB,OAAO,CAAC,IAAI,EAAE;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACpC;;;;;;;;;;;;;;;;;;;;;;;;;;cAkBA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCall = void 0;
|
|
4
|
+
function getCall(args) {
|
|
5
|
+
const { type, value } = args;
|
|
6
|
+
console.log(type, value, typeof value);
|
|
7
|
+
if (type === "select" && typeof value === "string") {
|
|
8
|
+
return selectCall({ value });
|
|
9
|
+
}
|
|
10
|
+
else if (type === "multi_select" && Array.isArray(value)) {
|
|
11
|
+
return multiSelectCall({ value });
|
|
12
|
+
}
|
|
13
|
+
else if (type === "number" && typeof value === "number") {
|
|
14
|
+
return numberCall({ value });
|
|
15
|
+
}
|
|
16
|
+
else if (type === "url" && typeof value === "string") {
|
|
17
|
+
return urlCall({ url: value });
|
|
18
|
+
}
|
|
19
|
+
else if (type === "checkbox" && typeof value === "boolean") {
|
|
20
|
+
return checkboxCall({ checked: value });
|
|
21
|
+
}
|
|
22
|
+
else if (type === "title" && typeof value === "string") {
|
|
23
|
+
return titleCall({ title: value });
|
|
24
|
+
}
|
|
25
|
+
else if (type === "text" && typeof value === "string") {
|
|
26
|
+
return textCall({ text: value });
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.getCall = getCall;
|
|
30
|
+
/*
|
|
31
|
+
======================================================
|
|
32
|
+
GENERATE OBJECT BASED ON TYPE
|
|
33
|
+
======================================================
|
|
34
|
+
*/
|
|
35
|
+
const selectCall = (args) => {
|
|
36
|
+
const { value } = args;
|
|
37
|
+
const select = {
|
|
38
|
+
name: value,
|
|
39
|
+
};
|
|
40
|
+
return { select };
|
|
41
|
+
};
|
|
42
|
+
const multiSelectCall = (args) => {
|
|
43
|
+
const { value } = args;
|
|
44
|
+
const multi_select = value.map((option) => ({ name: option }));
|
|
45
|
+
return { multi_select };
|
|
46
|
+
};
|
|
47
|
+
const textCall = (args) => {
|
|
48
|
+
const { text } = args;
|
|
49
|
+
const rich_text = [
|
|
50
|
+
{
|
|
51
|
+
text: {
|
|
52
|
+
content: text,
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
return { rich_text };
|
|
57
|
+
};
|
|
58
|
+
const titleCall = (args) => {
|
|
59
|
+
const { title } = args;
|
|
60
|
+
const titleObject = [
|
|
61
|
+
{
|
|
62
|
+
text: {
|
|
63
|
+
content: title,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
];
|
|
67
|
+
return { title: titleObject };
|
|
68
|
+
};
|
|
69
|
+
const numberCall = (args) => {
|
|
70
|
+
const { value: number } = args;
|
|
71
|
+
return { number };
|
|
72
|
+
};
|
|
73
|
+
const urlCall = (args) => {
|
|
74
|
+
const { url } = args;
|
|
75
|
+
return { url };
|
|
76
|
+
};
|
|
77
|
+
const checkboxCall = (args) => {
|
|
78
|
+
const { checked: checkbox } = args;
|
|
79
|
+
return { checkbox };
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=BuildCall.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BuildCall.js","sourceRoot":"","sources":["../../src/NotionActions/BuildCall.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { GetDatabaseResponse } from "@notionhq/client/build/src/api-endpoints";
|
|
2
|
+
declare const propertyArr: string[];
|
|
3
|
+
export type PropertyType = typeof propertyArr[number];
|
|
4
|
+
export declare function createTypescriptFileForDatabase(dbResponse: GetDatabaseResponse): Promise<{
|
|
5
|
+
databaseName: string;
|
|
6
|
+
databaseClassName: string;
|
|
7
|
+
databaseId: string;
|
|
8
|
+
}>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=GenerateTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerateTypes.d.ts","sourceRoot":"","sources":["../../src/NotionActions/GenerateTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,mBAAmB,EACnB,MAAM,0CAA0C,CAAC;AAMlD,QAAA,MAAM,WAAW,UAQhB,CAAC;AACF,MAAM,MAAM,YAAY,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAUtD,wBAAsB,+BAA+B,CACpD,UAAU,EAAE,mBAAmB;;;;GAwG/B"}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.createTypescriptFileForDatabase = void 0;
|
|
39
|
+
const ts = __importStar(require("typescript"));
|
|
40
|
+
const fs_1 = __importDefault(require("fs"));
|
|
41
|
+
const path_1 = __importDefault(require("path"));
|
|
42
|
+
// This can be grabbed from // api-endpoints.d.ts with some work
|
|
43
|
+
const propertyArr = [
|
|
44
|
+
"text",
|
|
45
|
+
"select",
|
|
46
|
+
"title",
|
|
47
|
+
"number",
|
|
48
|
+
"multi_select",
|
|
49
|
+
"checkbox",
|
|
50
|
+
"url",
|
|
51
|
+
];
|
|
52
|
+
/*
|
|
53
|
+
Responsible for generating `.ts` files
|
|
54
|
+
*/
|
|
55
|
+
function createTypescriptFileForDatabase(dbResponse) {
|
|
56
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
+
const { id: databaseId, properties, title, } = dbResponse;
|
|
58
|
+
const propNameToColumnName = {};
|
|
59
|
+
const databaseName = title[0].plain_text;
|
|
60
|
+
const databaseClassName = camelize(databaseName).replace(/[^a-zA-Z0-9]/g, "");
|
|
61
|
+
const databaseColumnTypeProps = [];
|
|
62
|
+
// Looping through each column of database
|
|
63
|
+
Object.values(properties).forEach((value) => {
|
|
64
|
+
const { type: columnType, name: columnName } = value;
|
|
65
|
+
// Taking the column name and camelizing it for typescript use
|
|
66
|
+
const camelizedColumnName = camelize(columnName);
|
|
67
|
+
// Creating map of column name to the column's name in the database's typescript type
|
|
68
|
+
propNameToColumnName[camelizedColumnName] = {
|
|
69
|
+
columnName,
|
|
70
|
+
type: columnType,
|
|
71
|
+
};
|
|
72
|
+
if (columnType === "title" || columnType === "rich_text") {
|
|
73
|
+
// add text column to collection type
|
|
74
|
+
databaseColumnTypeProps.push(createTextProperty(camelizedColumnName, columnType === "title"));
|
|
75
|
+
}
|
|
76
|
+
else if (columnType === "number") {
|
|
77
|
+
// add number column to collection type
|
|
78
|
+
databaseColumnTypeProps.push(createNumberProperty(camelizedColumnName));
|
|
79
|
+
}
|
|
80
|
+
else if (columnType === "url") {
|
|
81
|
+
// add url column to collection type
|
|
82
|
+
databaseColumnTypeProps.push(createTextProperty(camelizedColumnName, false));
|
|
83
|
+
}
|
|
84
|
+
else if (columnType === "date") {
|
|
85
|
+
// add Date column to collection type
|
|
86
|
+
databaseColumnTypeProps.push(createDateProperty(camelizedColumnName));
|
|
87
|
+
}
|
|
88
|
+
else if (columnType == "select" || columnType == "multi_select") {
|
|
89
|
+
// @ts-ignore
|
|
90
|
+
const options = value[columnType].options.map((x) => x.name);
|
|
91
|
+
databaseColumnTypeProps.push(createMultiOptionProp(camelizedColumnName, options,
|
|
92
|
+
// This determines whether the property needs to be a union or a union array
|
|
93
|
+
columnType === "multi_select"));
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
// Object type that represents the database schema
|
|
97
|
+
const CollectionType = ts.factory.createTypeAliasDeclaration([ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createIdentifier("CollectionType"), undefined, ts.factory.createTypeLiteralNode(databaseColumnTypeProps));
|
|
98
|
+
// Top level non-nested variable, functions, types
|
|
99
|
+
const nodeArr = [
|
|
100
|
+
importCollectionClass(),
|
|
101
|
+
createDatabaseIdVariable(databaseId),
|
|
102
|
+
CollectionType,
|
|
103
|
+
mapPropNameToColumnDetails(propNameToColumnName),
|
|
104
|
+
ColNameToType(),
|
|
105
|
+
exportCollectionActions(databaseClassName),
|
|
106
|
+
];
|
|
107
|
+
const nodes = ts.factory.createNodeArray(nodeArr);
|
|
108
|
+
const sourceFile = ts.createSourceFile("placeholder.ts", "", ts.ScriptTarget.ESNext, true, ts.ScriptKind.TS);
|
|
109
|
+
const printer = ts.createPrinter();
|
|
110
|
+
const outputFile = printer.printList(ts.ListFormat.MultiLine, nodes, sourceFile);
|
|
111
|
+
// Create our output folder
|
|
112
|
+
const outputDir = path_1.default.join(__dirname, "../../src", "NotionActions", "DatabaseTypes");
|
|
113
|
+
if (!fs_1.default.existsSync(outputDir)) {
|
|
114
|
+
fs_1.default.mkdirSync(outputDir);
|
|
115
|
+
}
|
|
116
|
+
fs_1.default.writeFileSync(path_1.default.resolve(outputDir, `${databaseId}.ts`), outputFile);
|
|
117
|
+
return { databaseName, databaseClassName, databaseId };
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
exports.createTypescriptFileForDatabase = createTypescriptFileForDatabase;
|
|
121
|
+
// generate text property
|
|
122
|
+
function createTextProperty(name, isTitle) {
|
|
123
|
+
const text = ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier(name), !isTitle ? ts.factory.createToken(ts.SyntaxKind.QuestionToken) : undefined, ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword));
|
|
124
|
+
return text;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Generate number property to go inside a type
|
|
128
|
+
* name: number
|
|
129
|
+
*/
|
|
130
|
+
function createNumberProperty(name) {
|
|
131
|
+
const number = ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier(name), ts.factory.createToken(ts.SyntaxKind.QuestionToken), ts.factory.createKeywordTypeNode(ts.SyntaxKind.NumberKeyword));
|
|
132
|
+
return number;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
*
|
|
136
|
+
* @param name name of property
|
|
137
|
+
* @param options
|
|
138
|
+
* @param array
|
|
139
|
+
* @returns
|
|
140
|
+
*
|
|
141
|
+
* For selects and multi-select collection properties
|
|
142
|
+
*
|
|
143
|
+
* array = true for multi-select
|
|
144
|
+
*
|
|
145
|
+
* name = ("x" | "y" | "z")[]
|
|
146
|
+
*/
|
|
147
|
+
function createMultiOptionProp(name, options, array) {
|
|
148
|
+
return ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier(name), ts.factory.createToken(ts.SyntaxKind.QuestionToken), array
|
|
149
|
+
? ts.factory.createArrayTypeNode(ts.factory.createParenthesizedType(ts.factory.createUnionTypeNode([
|
|
150
|
+
...options.map((option) => ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(option))),
|
|
151
|
+
createOtherStringProp(),
|
|
152
|
+
])))
|
|
153
|
+
: ts.factory.createUnionTypeNode([
|
|
154
|
+
...options.map((option) => ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral(option))),
|
|
155
|
+
createOtherStringProp(),
|
|
156
|
+
]));
|
|
157
|
+
}
|
|
158
|
+
// string & {}. Allows users to pass in values
|
|
159
|
+
function createOtherStringProp() {
|
|
160
|
+
return ts.factory.createIntersectionTypeNode([
|
|
161
|
+
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
|
162
|
+
ts.factory.createTypeLiteralNode([]),
|
|
163
|
+
]);
|
|
164
|
+
}
|
|
165
|
+
function createDateProperty(name) {
|
|
166
|
+
return ts.factory.createPropertySignature(undefined, ts.factory.createIdentifier("s"), undefined, ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Date"), undefined));
|
|
167
|
+
}
|
|
168
|
+
// Generate database Id variable
|
|
169
|
+
// const databaseId = <database-id>
|
|
170
|
+
function createDatabaseIdVariable(databaseId) {
|
|
171
|
+
return ts.factory.createVariableStatement(undefined, ts.factory.createVariableDeclarationList([
|
|
172
|
+
ts.factory.createVariableDeclaration(ts.factory.createIdentifier("databaseId"), undefined, undefined, ts.factory.createStringLiteral(databaseId)),
|
|
173
|
+
], ts.NodeFlags.Const));
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Instead of refering to the column names 1:1 such as "Book Rating", we transform them to
|
|
177
|
+
* camelcase (eg. bookRating). So we need to keep track of the original name and the type
|
|
178
|
+
* for when we construct request for API
|
|
179
|
+
*
|
|
180
|
+
* Example
|
|
181
|
+
*
|
|
182
|
+
* const propMap = {
|
|
183
|
+
*
|
|
184
|
+
* "bookRating": {
|
|
185
|
+
* columnName: "Book Rating",
|
|
186
|
+
* type: "select"
|
|
187
|
+
* },
|
|
188
|
+
* "genre": {
|
|
189
|
+
* columnName: "Genre",
|
|
190
|
+
* type: "multi_select"
|
|
191
|
+
* }
|
|
192
|
+
*
|
|
193
|
+
* }
|
|
194
|
+
* @param colMap
|
|
195
|
+
* @returns
|
|
196
|
+
*/
|
|
197
|
+
function mapPropNameToColumnDetails(colMap) {
|
|
198
|
+
return ts.factory.createVariableDeclarationList([
|
|
199
|
+
ts.factory.createVariableDeclaration(ts.factory.createIdentifier("propMap"), undefined, undefined, ts.factory.createAsExpression(ts.factory.createObjectLiteralExpression([
|
|
200
|
+
...Object.entries(colMap).map(([propName, value]) => ts.factory.createPropertyAssignment(ts.factory.createStringLiteral(propName), ts.factory.createObjectLiteralExpression([
|
|
201
|
+
ts.factory.createPropertyAssignment(ts.factory.createIdentifier("columnName"), ts.factory.createStringLiteral(value.columnName)),
|
|
202
|
+
ts.factory.createPropertyAssignment(ts.factory.createIdentifier("type"), ts.factory.createStringLiteral(value.type)),
|
|
203
|
+
], true))),
|
|
204
|
+
], true), ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("const"), undefined))),
|
|
205
|
+
], ts.NodeFlags.Const);
|
|
206
|
+
}
|
|
207
|
+
function ColNameToType() {
|
|
208
|
+
return ts.factory.createTypeAliasDeclaration(undefined, ts.factory.createIdentifier("ColNameToType"), undefined, ts.factory.createMappedTypeNode(undefined, ts.factory.createTypeParameterDeclaration(undefined, ts.factory.createIdentifier("Property"), ts.factory.createTypeOperatorNode(ts.SyntaxKind.KeyOfKeyword, ts.factory.createTypeQueryNode(ts.factory.createIdentifier("propMap"), undefined)), undefined), undefined, undefined, ts.factory.createIndexedAccessTypeNode(ts.factory.createIndexedAccessTypeNode(ts.factory.createTypeQueryNode(ts.factory.createIdentifier("propMap"), undefined), ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("Property"), undefined)), ts.factory.createLiteralTypeNode(ts.factory.createStringLiteral("type"))), undefined
|
|
209
|
+
/* unknown */
|
|
210
|
+
));
|
|
211
|
+
}
|
|
212
|
+
// Need to import the class responsible for adding and querying the database
|
|
213
|
+
function importCollectionClass() {
|
|
214
|
+
return ts.factory.createImportDeclaration(undefined, ts.factory.createImportClause(false, undefined, ts.factory.createNamedImports([
|
|
215
|
+
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier("CollectionActions")),
|
|
216
|
+
])), ts.factory.createStringLiteral("../NotionCollection"), undefined);
|
|
217
|
+
}
|
|
218
|
+
// We export the database with the class above.
|
|
219
|
+
// export
|
|
220
|
+
/**
|
|
221
|
+
* We export the database with
|
|
222
|
+
* @param databaseName
|
|
223
|
+
*
|
|
224
|
+
* const <datbase-name> = new CollectionActions<CollectionType>(datbaseId, propMap)
|
|
225
|
+
*/
|
|
226
|
+
function exportCollectionActions(databaseName) {
|
|
227
|
+
return ts.factory.createVariableStatement([ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createVariableDeclarationList([
|
|
228
|
+
ts.factory.createVariableDeclaration(ts.factory.createIdentifier(databaseName), undefined, undefined, ts.factory.createNewExpression(ts.factory.createIdentifier("CollectionActions"), [
|
|
229
|
+
ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("CollectionType"), undefined),
|
|
230
|
+
ts.factory.createTypeReferenceNode(ts.factory.createIdentifier("ColNameToType"), undefined),
|
|
231
|
+
], [
|
|
232
|
+
ts.factory.createIdentifier("databaseId"),
|
|
233
|
+
ts.factory.createIdentifier("propMap"),
|
|
234
|
+
])),
|
|
235
|
+
], ts.NodeFlags.Const));
|
|
236
|
+
}
|
|
237
|
+
// for a type's property name
|
|
238
|
+
function camelize(str) {
|
|
239
|
+
return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function (match, index) {
|
|
240
|
+
if (+match === 0)
|
|
241
|
+
return ""; // or if (/\s+/.test(match)) for white spaces
|
|
242
|
+
return index === 0 ? match.toLowerCase() : match.toUpperCase();
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
//# sourceMappingURL=GenerateTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenerateTypes.js","sourceRoot":"","sources":["../../src/NotionActions/GenerateTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { PropertyType } from "./GenerateTypes";
|
|
2
|
+
import { FilterOptionNames, Query } from "./queryTypes";
|
|
3
|
+
export type propNameToColumnNameType = Record<string, {
|
|
4
|
+
columnName: string;
|
|
5
|
+
type: PropertyType;
|
|
6
|
+
}>;
|
|
7
|
+
export declare class CollectionActions<CollectionType extends Record<string, any>, ColNameToType extends Record<keyof CollectionType, FilterOptionNames>> {
|
|
8
|
+
private NotionClient;
|
|
9
|
+
private databaseId;
|
|
10
|
+
private propNameToColumnName;
|
|
11
|
+
private columnNames;
|
|
12
|
+
constructor(datbaseId: string, propNameToColumnName: propNameToColumnNameType);
|
|
13
|
+
add(pageObject: CollectionType): Promise<void>;
|
|
14
|
+
query(query: Query<CollectionType, ColNameToType>): Promise<void>;
|
|
15
|
+
private recursivelyBuildFilter;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=NotionCollection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotionCollection.d.ts","sourceRoot":"","sources":["../../src/NotionActions/NotionCollection.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAIN,iBAAiB,EACjB,KAAK,EAGL,MAAM,cAAc,CAAC;AAGtB,MAAM,MAAM,wBAAwB,GAAG,MAAM,CAC5C,MAAM,EACN;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,YAAY,CAAA;CAAE,CAC1C,CAAC;AAEF,qBAAa,iBAAiB,CAC7B,cAAc,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1C,aAAa,SAAS,MAAM,CAAC,MAAM,cAAc,EAAE,iBAAiB,CAAC;IAErE,OAAO,CAAC,YAAY,CAEjB;IACH,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAA2B;IACvD,OAAO,CAAC,WAAW,CAAW;gBAG7B,SAAS,EAAE,MAAM,EACjB,oBAAoB,EAAE,wBAAwB;IAQzC,GAAG,CAAC,UAAU,EAAE,cAAc;IAwB9B,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,EAAE,aAAa,CAAC;IAqBvD,OAAO,CAAC,sBAAsB;CAoC9B"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.CollectionActions = void 0;
|
|
13
|
+
const client_1 = require("@notionhq/client");
|
|
14
|
+
const BuildCall_1 = require("./BuildCall");
|
|
15
|
+
require("dotenv").config();
|
|
16
|
+
class CollectionActions {
|
|
17
|
+
constructor(datbaseId, propNameToColumnName) {
|
|
18
|
+
this.NotionClient = new client_1.Client({
|
|
19
|
+
auth: process.env.NOTION_KEY,
|
|
20
|
+
});
|
|
21
|
+
this.databaseId = datbaseId;
|
|
22
|
+
this.propNameToColumnName = propNameToColumnName;
|
|
23
|
+
this.columnNames = Object.keys(propNameToColumnName);
|
|
24
|
+
}
|
|
25
|
+
// Add page to a database
|
|
26
|
+
add(pageObject) {
|
|
27
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
+
const callBody = {
|
|
29
|
+
parent: {
|
|
30
|
+
database_id: this.databaseId,
|
|
31
|
+
},
|
|
32
|
+
properties: {},
|
|
33
|
+
};
|
|
34
|
+
const columnTypePropNames = Object.keys(pageObject);
|
|
35
|
+
columnTypePropNames.forEach((propName) => {
|
|
36
|
+
const { type, columnName } = this.propNameToColumnName[propName];
|
|
37
|
+
const columnObject = (0, BuildCall_1.getCall)({
|
|
38
|
+
type,
|
|
39
|
+
value: pageObject[propName],
|
|
40
|
+
});
|
|
41
|
+
callBody.properties[columnName] = columnObject;
|
|
42
|
+
});
|
|
43
|
+
// console.log(JSON.stringify(callBody, null, 4));
|
|
44
|
+
yield this.NotionClient.pages.create(callBody);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
// Look for page inside the database
|
|
48
|
+
query(query) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const queryCall = {
|
|
51
|
+
database_id: this.databaseId,
|
|
52
|
+
};
|
|
53
|
+
const filters = query.filter
|
|
54
|
+
? this.recursivelyBuildFilter(query.filter)
|
|
55
|
+
: undefined;
|
|
56
|
+
if (filters) {
|
|
57
|
+
// @ts-ignore errors vs notion api types
|
|
58
|
+
queryCall["filter"] = filters;
|
|
59
|
+
}
|
|
60
|
+
console.log(JSON.stringify(queryCall, null, 4));
|
|
61
|
+
const sort = query.sort;
|
|
62
|
+
const apiQuery = yield this.NotionClient.databases.query(queryCall);
|
|
63
|
+
console.log(apiQuery);
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
recursivelyBuildFilter(queryFilter) {
|
|
67
|
+
// Need to loop because we don't kno
|
|
68
|
+
for (const prop in queryFilter) {
|
|
69
|
+
// if the filter is "and" || "or" we need to recursively
|
|
70
|
+
if (prop === "and" || prop === "or") {
|
|
71
|
+
const compoundFilters =
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
queryFilter[prop];
|
|
74
|
+
const compoundApiFilters = compoundFilters.map((i) => {
|
|
75
|
+
return this.recursivelyBuildFilter(i);
|
|
76
|
+
});
|
|
77
|
+
// Either have an `and` or an `or` compound filter
|
|
78
|
+
let temp = Object.assign({}, (prop === "and"
|
|
79
|
+
? { and: compoundApiFilters }
|
|
80
|
+
: { or: compoundApiFilters }));
|
|
81
|
+
return temp;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
const propType = this.propNameToColumnName[prop].type;
|
|
85
|
+
const temp = {
|
|
86
|
+
property: this.propNameToColumnName[prop].columnName,
|
|
87
|
+
};
|
|
88
|
+
//@ts-ignore
|
|
89
|
+
temp[propType] = queryFilter[prop];
|
|
90
|
+
return temp;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
exports.CollectionActions = CollectionActions;
|
|
96
|
+
//# sourceMappingURL=NotionCollection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotionCollection.js","sourceRoot":"","sources":["../../src/NotionActions/NotionCollection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotionConfig.d.ts","sourceRoot":"","sources":["../../src/NotionActions/NotionConfig.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;CACtB,CAAC;AAOF,eAAO,MAAM,mBAAmB,eAAsB,gBAAgB;;EAuDrE,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.createDatabaseTypes = void 0;
|
|
39
|
+
const client_1 = require("@notionhq/client");
|
|
40
|
+
const GenerateTypes_1 = require("./GenerateTypes");
|
|
41
|
+
const ts = __importStar(require("typescript"));
|
|
42
|
+
const fs_1 = __importDefault(require("fs"));
|
|
43
|
+
const path_1 = __importDefault(require("path"));
|
|
44
|
+
require("dotenv").config();
|
|
45
|
+
const createDatabaseTypes = (notionInfo) => __awaiter(void 0, void 0, void 0, function* () {
|
|
46
|
+
const { auth, databaseIds } = notionInfo;
|
|
47
|
+
// Making sure the user is passing valid arguments
|
|
48
|
+
if (!auth) {
|
|
49
|
+
console.error("Please pass a valid Notion Integration Key");
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
if (databaseIds.length < 0) {
|
|
53
|
+
console.error("Please pass some database Ids");
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
// Initialize client
|
|
57
|
+
const NotionClient = new client_1.Client({
|
|
58
|
+
auth: auth,
|
|
59
|
+
});
|
|
60
|
+
const databaseNames = [];
|
|
61
|
+
// retrieve the database object
|
|
62
|
+
const databaseClassImports = [];
|
|
63
|
+
const databaseCamelizedNames = [];
|
|
64
|
+
for (const database_id of databaseIds) {
|
|
65
|
+
let dbOjbect;
|
|
66
|
+
// Try to get the database schema
|
|
67
|
+
try {
|
|
68
|
+
dbOjbect = yield NotionClient.databases.retrieve({
|
|
69
|
+
database_id,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
catch (e) {
|
|
73
|
+
console.error(e);
|
|
74
|
+
return { databaseNames: [] };
|
|
75
|
+
}
|
|
76
|
+
const { databaseClassName, databaseId, databaseName } = yield (0, GenerateTypes_1.createTypescriptFileForDatabase)(dbOjbect);
|
|
77
|
+
databaseNames.push(databaseName);
|
|
78
|
+
databaseCamelizedNames.push(databaseClassName);
|
|
79
|
+
databaseClassImports.push(databaseImportStatement({
|
|
80
|
+
databaseClassName,
|
|
81
|
+
databaseId,
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
const nodeArr = [
|
|
85
|
+
...databaseClassImports,
|
|
86
|
+
mainNotionVariable(databaseCamelizedNames),
|
|
87
|
+
];
|
|
88
|
+
createNotionFile(nodeArr);
|
|
89
|
+
return { databaseNames };
|
|
90
|
+
});
|
|
91
|
+
exports.createDatabaseTypes = createDatabaseTypes;
|
|
92
|
+
// Create the import statement for notion.ts file
|
|
93
|
+
function databaseImportStatement(dbClass) {
|
|
94
|
+
return ts.factory.createImportDeclaration(undefined, ts.factory.createImportClause(false, undefined, ts.factory.createNamedImports([
|
|
95
|
+
ts.factory.createImportSpecifier(false, undefined, ts.factory.createIdentifier(dbClass.databaseClassName)),
|
|
96
|
+
])),
|
|
97
|
+
// We've setup paths to allow @notion-database access
|
|
98
|
+
ts.factory.createStringLiteral(`@notion-database/${dbClass.databaseId}`), undefined);
|
|
99
|
+
}
|
|
100
|
+
function mainNotionVariable(databaseNames) {
|
|
101
|
+
return ts.factory.createVariableStatement([ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)], ts.factory.createVariableDeclarationList([
|
|
102
|
+
ts.factory.createVariableDeclaration(ts.factory.createIdentifier("notion"), undefined, undefined, ts.factory.createObjectLiteralExpression([
|
|
103
|
+
...databaseNames.map((name) => ts.factory.createShorthandPropertyAssignment(ts.factory.createIdentifier(name), undefined)),
|
|
104
|
+
], true)),
|
|
105
|
+
], ts.NodeFlags.Const));
|
|
106
|
+
}
|
|
107
|
+
// Creates file that import all generated notion database Ids
|
|
108
|
+
function createNotionFile(nodeArr) {
|
|
109
|
+
const nodes = ts.factory.createNodeArray(nodeArr);
|
|
110
|
+
const sourceFile = ts.createSourceFile("placeholder.ts", "", ts.ScriptTarget.ESNext, true, ts.ScriptKind.TS);
|
|
111
|
+
const printer = ts.createPrinter();
|
|
112
|
+
const outputFile = printer.printList(ts.ListFormat.MultiLine, nodes, sourceFile);
|
|
113
|
+
const outputDir = path_1.default.join(__dirname, "../../src", "NotionActions");
|
|
114
|
+
if (!fs_1.default.existsSync(outputDir)) {
|
|
115
|
+
fs_1.default.mkdirSync(outputDir);
|
|
116
|
+
}
|
|
117
|
+
fs_1.default.writeFileSync(path_1.default.resolve(outputDir, "notion.ts"), outputFile);
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=NotionConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotionConfig.js","sourceRoot":"","sources":["../../src/NotionActions/NotionConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Column types' for all query options
|
|
3
|
+
*/
|
|
4
|
+
export type FilterOptionNames = "text" | "title" | "number" | "checkbox" | "select" | "multi_select" | "url";
|
|
5
|
+
type TextPropertyFilters = {
|
|
6
|
+
equals: string;
|
|
7
|
+
does_not_equal: string;
|
|
8
|
+
contains: string;
|
|
9
|
+
does_not_contain: string;
|
|
10
|
+
starts_with: string;
|
|
11
|
+
ends_with: string;
|
|
12
|
+
is_empty: true;
|
|
13
|
+
is_not_empty: true;
|
|
14
|
+
};
|
|
15
|
+
type NumberPropertyFilters = {
|
|
16
|
+
equals: number;
|
|
17
|
+
does_not_equals: number;
|
|
18
|
+
greater_than: number;
|
|
19
|
+
less_than: number;
|
|
20
|
+
greater_than_or_equal_to: number;
|
|
21
|
+
less_than_or_equal_to: number;
|
|
22
|
+
is_empty: true;
|
|
23
|
+
is_not_empty: true;
|
|
24
|
+
};
|
|
25
|
+
type CheckBoxPropertyFilters = {
|
|
26
|
+
equals: boolean;
|
|
27
|
+
does_not_equal: boolean;
|
|
28
|
+
};
|
|
29
|
+
type SelectPropertyFilters<T> = {
|
|
30
|
+
equals: (T extends Array<any> ? T[number] : T) | (string & {});
|
|
31
|
+
does_not_equal: (T extends Array<any> ? T[number] : T) | (string & {});
|
|
32
|
+
is_empty: true;
|
|
33
|
+
is_not_empty: true;
|
|
34
|
+
};
|
|
35
|
+
type MultiSelectPropertyFilters<T> = {
|
|
36
|
+
contains: (T extends Array<any> ? T[number] : T) | (string & {});
|
|
37
|
+
does_not_contain: (T extends Array<any> ? T[number] : T) | (string & {});
|
|
38
|
+
is_empty: true;
|
|
39
|
+
is_not_empty: true;
|
|
40
|
+
};
|
|
41
|
+
export type FilterOptions<T = []> = {
|
|
42
|
+
text: TextPropertyFilters;
|
|
43
|
+
title: TextPropertyFilters;
|
|
44
|
+
number: NumberPropertyFilters;
|
|
45
|
+
checkbox: CheckBoxPropertyFilters;
|
|
46
|
+
select: SelectPropertyFilters<T>;
|
|
47
|
+
multi_select: MultiSelectPropertyFilters<T>;
|
|
48
|
+
url: string;
|
|
49
|
+
};
|
|
50
|
+
type ColumnNameToNotionColumnType<T> = Record<keyof T, FilterOptionNames>;
|
|
51
|
+
export type SingleFilter<Y extends Record<string, any>, T extends ColumnNameToNotionColumnType<Y>> = {
|
|
52
|
+
[Property in keyof Y]?: Partial<FilterOptions<Y[Property]>[T[Property]]>;
|
|
53
|
+
};
|
|
54
|
+
export type CompoundFilters<Y extends Record<string, any>, T extends Record<keyof Y, FilterOptionNames>> = {
|
|
55
|
+
and: Array<SingleFilter<Y, T> | CompoundFilters<Y, T>>;
|
|
56
|
+
} | {
|
|
57
|
+
or: Array<SingleFilter<Y, T> | CompoundFilters<Y, T>>;
|
|
58
|
+
};
|
|
59
|
+
export type QueryFilter<Y extends Record<string, any>, T extends Record<keyof Y, FilterOptionNames>> = SingleFilter<Y, T> | CompoundFilters<Y, T>;
|
|
60
|
+
export type Query<Y extends Record<string, any>, T extends Record<keyof Y, FilterOptionNames>> = {
|
|
61
|
+
filter?: QueryFilter<Y, T>;
|
|
62
|
+
sort?: [];
|
|
63
|
+
};
|
|
64
|
+
export type apiFilterQuery = {
|
|
65
|
+
filter?: apiSingleFilter | apiAndFilter | apiOrFilter;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Transform the types above to build types to
|
|
69
|
+
* actually build schema for query request
|
|
70
|
+
*/
|
|
71
|
+
type apiColumnTypeToOptions = {
|
|
72
|
+
[prop in keyof FilterOptions]?: Partial<FilterOptions[prop]>;
|
|
73
|
+
};
|
|
74
|
+
export interface apiSingleFilter extends apiColumnTypeToOptions {
|
|
75
|
+
property: string;
|
|
76
|
+
}
|
|
77
|
+
export type apiFilterType = apiSingleFilter | apiAndFilter | apiOrFilter | undefined;
|
|
78
|
+
type apiAndFilter = {
|
|
79
|
+
and: Array<apiFilterType>;
|
|
80
|
+
};
|
|
81
|
+
type apiOrFilter = {
|
|
82
|
+
or: Array<apiFilterType>;
|
|
83
|
+
};
|
|
84
|
+
export {};
|
|
85
|
+
//# sourceMappingURL=queryTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryTypes.d.ts","sourceRoot":"","sources":["../../src/NotionActions/queryTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Column types' for all query options
|
|
4
|
+
*/
|
|
5
|
+
// import { PageObjectResponse }
|
|
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
|
+
//# sourceMappingURL=queryTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queryTypes.js","sourceRoot":"","sources":["../../src/NotionActions/queryTypes.ts"],"names":[],"mappings":";AAAA;;GAEG;AACH,gCAAgC;;AAsEhC;;GAEG;AAEH,MAAM,CAAC,GAAG;IACT,SAAS,EAAE,cAAc;CACzB,CAAC"}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/build/index.js
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#! /usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
13
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
14
|
+
};
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
const fs_1 = __importDefault(require("fs"));
|
|
17
|
+
const NotionConfig_1 = require("./NotionActions/NotionConfig");
|
|
18
|
+
const path_1 = __importDefault(require("path"));
|
|
19
|
+
require("dotenv").config();
|
|
20
|
+
function main() {
|
|
21
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
+
const args = process.argv.slice(2);
|
|
23
|
+
if (args.length === 1 && args[0] === "generate") {
|
|
24
|
+
const projDir = process.cwd();
|
|
25
|
+
const notionConfigDirJS = fs_1.default.existsSync(path_1.default.join(projDir, "notion.config.js"));
|
|
26
|
+
const notionConfigDirTS = fs_1.default.existsSync(path_1.default.join(projDir, "notion.config.ts"));
|
|
27
|
+
console.log(path_1.default.join(projDir, "notion.config"));
|
|
28
|
+
if (notionConfigDirJS || notionConfigDirTS) {
|
|
29
|
+
// this is a relative import, so we can escape out
|
|
30
|
+
const config = require(path_1.default.join(projDir, "notion.config"));
|
|
31
|
+
const { databaseNames } = yield (0, NotionConfig_1.createDatabaseTypes)(config);
|
|
32
|
+
if (databaseNames.length < 0) {
|
|
33
|
+
console.log("generated no types");
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
console.log("Generated types for the following Database's: ");
|
|
37
|
+
for (let x = 0; x < databaseNames.length; x++) {
|
|
38
|
+
console.log(`${x}. ${databaseNames[x]}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
console.error("Could not find file `notion.config.ts` in root");
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
main();
|
|
50
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,4CAAoB;AACpB,+DAAmE;AACnE,gDAAwB;AACxB,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AAE3B,SAAe,IAAI;;QAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE;YAChD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAE9B,MAAM,iBAAiB,GAAG,YAAE,CAAC,UAAU,CACtC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CACtC,CAAC;YACF,MAAM,iBAAiB,GAAG,YAAE,CAAC,UAAU,CACtC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,kBAAkB,CAAC,CACtC,CAAC;YAEF,OAAO,CAAC,GAAG,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;YACjD,IAAI,iBAAiB,IAAI,iBAAiB,EAAE;gBAC3C,kDAAkD;gBAElD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;gBAE5D,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,IAAA,kCAAmB,EAAC,MAAM,CAAC,CAAC;gBAC5D,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;oBAC7B,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;iBAClC;qBAAM;oBACN,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;oBAC9D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;wBAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;qBACzC;iBACD;aACD;iBAAM;gBACN,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAChB;SACD;IACF,CAAC;CAAA;AAED,IAAI,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haustle/notion-orm",
|
|
3
|
-
"version": "0.0.
|
|
4
|
-
"description": "tool to bring
|
|
3
|
+
"version": "0.0.21",
|
|
4
|
+
"description": "tool to bring database types to typescript",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"notion": "build/index.js"
|
|
@@ -25,6 +25,6 @@
|
|
|
25
25
|
"path": "^0.12.7"
|
|
26
26
|
},
|
|
27
27
|
"_moduleAliases": {
|
|
28
|
-
|
|
28
|
+
"@notion-database": "build/NotionActions/DatabaseTypes"
|
|
29
29
|
}
|
|
30
30
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
/* Visit https://aka.ms/tsconfig to read more about this file */
|
|
4
|
-
"target": "
|
|
4
|
+
"target": "ES6",
|
|
5
5
|
"lib": ["es6"],
|
|
6
6
|
"module": "commonjs",
|
|
7
7
|
"rootDir": "src",
|
|
@@ -12,11 +12,14 @@
|
|
|
12
12
|
"strict": true,
|
|
13
13
|
"baseUrl": "src",
|
|
14
14
|
"noImplicitAny": true,
|
|
15
|
+
"declaration": true,
|
|
16
|
+
"declarationMap": true,
|
|
17
|
+
"sourceMap": true,
|
|
15
18
|
"paths": {
|
|
16
19
|
"@notion-database/*":["NotionActions/DatabaseTypes/*"]
|
|
17
20
|
}
|
|
18
21
|
},
|
|
19
|
-
"include": ["src
|
|
22
|
+
"include": ["src"]
|
|
20
23
|
}
|
|
21
24
|
|
|
22
25
|
|