narou 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/dist/index.browser.d.ts +35 -35
  2. package/dist/index.browser.js +82 -82
  3. package/dist/index.common.d.ts +14 -14
  4. package/dist/index.common.js +34 -34
  5. package/dist/index.d.ts +42 -42
  6. package/dist/index.js +90 -90
  7. package/dist/narou-fetch.d.ts +12 -12
  8. package/dist/narou-fetch.js +45 -45
  9. package/dist/narou-jsonp.d.ts +9 -9
  10. package/dist/narou-jsonp.js +23 -23
  11. package/dist/narou-ranking-results.d.ts +9 -9
  12. package/dist/narou-ranking-results.js +2 -2
  13. package/dist/narou-search-results.d.ts +130 -130
  14. package/dist/narou-search-results.js +62 -62
  15. package/dist/narou.d.ts +25 -25
  16. package/dist/narou.js +29 -29
  17. package/dist/params.d.ts +323 -323
  18. package/dist/params.js +246 -246
  19. package/dist/ranking-history.d.ts +13 -13
  20. package/dist/ranking-history.js +13 -13
  21. package/dist/ranking.d.ts +45 -45
  22. package/dist/ranking.js +86 -86
  23. package/dist/search-builder-r18.d.ts +28 -28
  24. package/dist/search-builder-r18.js +44 -44
  25. package/dist/search-builder.d.ts +219 -219
  26. package/dist/search-builder.js +380 -380
  27. package/dist/user-search.d.ts +62 -62
  28. package/dist/user-search.js +93 -93
  29. package/dist/util/jsonp.d.ts +16 -16
  30. package/dist/util/jsonp.js +45 -45
  31. package/dist/util/type.d.ts +3 -3
  32. package/dist/util/type.js +2 -2
  33. package/dist/util/unzipp.d.ts +3 -3
  34. package/dist/util/unzipp.js +11 -11
  35. package/dist.esm/index.browser.js +86 -0
  36. package/dist.esm/index.browser.js.map +1 -0
  37. package/dist.esm/index.common.js +38 -0
  38. package/dist.esm/index.common.js.map +1 -0
  39. package/dist.esm/index.js +94 -0
  40. package/dist.esm/index.js.map +1 -0
  41. package/dist.esm/narou-fetch.js +49 -0
  42. package/dist.esm/narou-fetch.js.map +1 -0
  43. package/dist.esm/narou-jsonp.js +27 -0
  44. package/dist.esm/narou-jsonp.js.map +1 -0
  45. package/dist.esm/narou-ranking-results.js +3 -0
  46. package/dist.esm/narou-ranking-results.js.map +1 -0
  47. package/dist.esm/narou-search-results.js +63 -0
  48. package/dist.esm/narou-search-results.js.map +1 -0
  49. package/dist.esm/narou.js +33 -0
  50. package/dist.esm/narou.js.map +1 -0
  51. package/dist.esm/params.js +247 -0
  52. package/dist.esm/params.js.map +1 -0
  53. package/dist.esm/ranking-history.js +14 -0
  54. package/dist.esm/ranking-history.js.map +1 -0
  55. package/dist.esm/ranking.js +90 -0
  56. package/dist.esm/ranking.js.map +1 -0
  57. package/dist.esm/search-builder-r18.js +45 -0
  58. package/dist.esm/search-builder-r18.js.map +1 -0
  59. package/dist.esm/search-builder.js +381 -0
  60. package/dist.esm/search-builder.js.map +1 -0
  61. package/dist.esm/user-search.js +94 -0
  62. package/dist.esm/user-search.js.map +1 -0
  63. package/dist.esm/util/jsonp.js +46 -0
  64. package/dist.esm/util/jsonp.js.map +1 -0
  65. package/dist.esm/util/type.js +3 -0
  66. package/dist.esm/util/type.js.map +1 -0
  67. package/dist.esm/util/unzipp.js +12 -0
  68. package/dist.esm/util/unzipp.js.map +1 -0
  69. package/package.json +1 -1
  70. package/src/user-search.ts +109 -109
package/dist/ranking.js CHANGED
@@ -1,87 +1,87 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const search_builder_1 = require("./search-builder");
4
- const date_fns_1 = require("date-fns");
5
- const params_1 = require("./params");
6
- const dateFormat = "yyyyMMdd";
7
- /**
8
- * ランキングヘルパー
9
- * @class Ranking
10
- */
11
- class RankingBuilder {
12
- /**
13
- * constructor
14
- * @private
15
- */
16
- constructor(params = {}, api) {
17
- this.params = params;
18
- this.api = api;
19
- /**
20
- * クエリパラメータ
21
- * @protected
22
- */
23
- this.date$ = (0, date_fns_1.addDays)(Date.now(), -1);
24
- this.type$ = params_1.RankingType.Daily;
25
- }
26
- date(date) {
27
- this.date$ = date;
28
- return this;
29
- }
30
- type(type) {
31
- this.type$ = type;
32
- return this;
33
- }
34
- /**
35
- * gzip圧縮する。
36
- *
37
- * 転送量上限を減らすためにも推奨
38
- * @param {GzipLevel} level gzip圧縮レベル(1~5)
39
- * @return {RankingBuilder} this
40
- */
41
- gzip(level) {
42
- this.set({ gzip: level });
43
- return this;
44
- }
45
- /**
46
- * クエリパラメータをセットする
47
- * @private
48
- * @return {RankingBuilder} this
49
- */
50
- set(obj) {
51
- Object.assign(this.params, obj);
52
- return this;
53
- }
54
- /**
55
- * なろう小説APIへのリクエストを実行する
56
- * @returns ランキング
57
- */
58
- execute() {
59
- const date = (0, date_fns_1.format)(this.date$, dateFormat);
60
- this.set({ rtype: `${date}-${this.type$}` });
61
- return this.api.executeRanking(this.params);
62
- }
63
- async executeWithFields(fields = [], opt) {
64
- const ranking = await this.execute();
65
- const fields$ = Array.isArray(fields)
66
- ? fields.length == 0
67
- ? []
68
- : [...fields, params_1.Fields.ncode]
69
- : [fields, params_1.Fields.ncode];
70
- const rankingNcodes = ranking.map(({ ncode }) => ncode);
71
- const builder = new search_builder_1.default({}, this.api);
72
- builder.fields(fields$);
73
- if (opt) {
74
- builder.opt(opt);
75
- }
76
- builder.ncode(rankingNcodes);
77
- builder.limit(ranking.length);
78
- const result = await builder.execute();
79
- return ranking.map((r) => ({
80
- ...r,
81
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
- ...result.values.find((novel) => novel.ncode == r.ncode),
83
- }));
84
- }
85
- }
86
- exports.default = RankingBuilder;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const search_builder_1 = require("./search-builder");
4
+ const date_fns_1 = require("date-fns");
5
+ const params_1 = require("./params");
6
+ const dateFormat = "yyyyMMdd";
7
+ /**
8
+ * ランキングヘルパー
9
+ * @class Ranking
10
+ */
11
+ class RankingBuilder {
12
+ /**
13
+ * constructor
14
+ * @private
15
+ */
16
+ constructor(params = {}, api) {
17
+ this.params = params;
18
+ this.api = api;
19
+ /**
20
+ * クエリパラメータ
21
+ * @protected
22
+ */
23
+ this.date$ = (0, date_fns_1.addDays)(Date.now(), -1);
24
+ this.type$ = params_1.RankingType.Daily;
25
+ }
26
+ date(date) {
27
+ this.date$ = date;
28
+ return this;
29
+ }
30
+ type(type) {
31
+ this.type$ = type;
32
+ return this;
33
+ }
34
+ /**
35
+ * gzip圧縮する。
36
+ *
37
+ * 転送量上限を減らすためにも推奨
38
+ * @param {GzipLevel} level gzip圧縮レベル(1~5)
39
+ * @return {RankingBuilder} this
40
+ */
41
+ gzip(level) {
42
+ this.set({ gzip: level });
43
+ return this;
44
+ }
45
+ /**
46
+ * クエリパラメータをセットする
47
+ * @private
48
+ * @return {RankingBuilder} this
49
+ */
50
+ set(obj) {
51
+ Object.assign(this.params, obj);
52
+ return this;
53
+ }
54
+ /**
55
+ * なろう小説APIへのリクエストを実行する
56
+ * @returns ランキング
57
+ */
58
+ execute() {
59
+ const date = (0, date_fns_1.format)(this.date$, dateFormat);
60
+ this.set({ rtype: `${date}-${this.type$}` });
61
+ return this.api.executeRanking(this.params);
62
+ }
63
+ async executeWithFields(fields = [], opt) {
64
+ const ranking = await this.execute();
65
+ const fields$ = Array.isArray(fields)
66
+ ? fields.length == 0
67
+ ? []
68
+ : [...fields, params_1.Fields.ncode]
69
+ : [fields, params_1.Fields.ncode];
70
+ const rankingNcodes = ranking.map(({ ncode }) => ncode);
71
+ const builder = new search_builder_1.default({}, this.api);
72
+ builder.fields(fields$);
73
+ if (opt) {
74
+ builder.opt(opt);
75
+ }
76
+ builder.ncode(rankingNcodes);
77
+ builder.limit(ranking.length);
78
+ const result = await builder.execute();
79
+ return ranking.map((r) => ({
80
+ ...r,
81
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
+ ...result.values.find((novel) => novel.ncode == r.ncode),
83
+ }));
84
+ }
85
+ }
86
+ exports.default = RankingBuilder;
87
87
  //# sourceMappingURL=ranking.js.map
@@ -1,29 +1,29 @@
1
- import { NovelSearchBuilderBase } from "./search-builder";
2
- import NarouSearchResults, { NarouSearchResult, SearchResultR18Fields, SearchResultOptionalFields } from "./narou-search-results";
3
- import { R18Site, SearchResultFieldNames, R18Fields, OptionalFields } from "./params";
4
- export declare type DefaultR18SearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "biggenre" | "genre" | "isr15" | "id">;
5
- /**
6
- * 18禁API検索ヘルパー
7
- * @class SearchBuilderR18
8
- */
9
- export default class SearchBuilderR18<T extends SearchResultFieldNames = DefaultR18SearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
10
- /**
11
- * なろう小説APIへの検索リクエストを実行する
12
- * @override
13
- * @returns {Promise<NarouSearchResults>} 検索結果
14
- */
15
- execute(): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>>;
16
- r18Site(sites: R18Site | readonly R18Site[]): this;
17
- /**
18
- *
19
- * @return {SearchBuilder} this
20
- */
21
- xid(ids: number | readonly number[]): this;
22
- /**
23
- *
24
- * @return {SearchBuilder} this
25
- */
26
- fields<TFields extends R18Fields>(fields: TFields | readonly TFields[]): SearchBuilderR18<SearchResultR18Fields<R18Fields>>;
27
- opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilderR18<T, SearchResultOptionalFields<TFields>>;
28
- }
1
+ import { NovelSearchBuilderBase } from "./search-builder";
2
+ import NarouSearchResults, { NarouSearchResult, SearchResultR18Fields, SearchResultOptionalFields } from "./narou-search-results";
3
+ import { R18Site, SearchResultFieldNames, R18Fields, OptionalFields } from "./params";
4
+ export declare type DefaultR18SearchResultFields = keyof Omit<NarouSearchResult, "weekly_unique" | "noveltype" | "biggenre" | "genre" | "isr15" | "id">;
5
+ /**
6
+ * 18禁API検索ヘルパー
7
+ * @class SearchBuilderR18
8
+ */
9
+ export default class SearchBuilderR18<T extends SearchResultFieldNames = DefaultR18SearchResultFields, TOpt extends keyof NarouSearchResult = never> extends NovelSearchBuilderBase<T | TOpt> {
10
+ /**
11
+ * なろう小説APIへの検索リクエストを実行する
12
+ * @override
13
+ * @returns {Promise<NarouSearchResults>} 検索結果
14
+ */
15
+ execute(): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>>;
16
+ r18Site(sites: R18Site | readonly R18Site[]): this;
17
+ /**
18
+ *
19
+ * @return {SearchBuilder} this
20
+ */
21
+ xid(ids: number | readonly number[]): this;
22
+ /**
23
+ *
24
+ * @return {SearchBuilder} this
25
+ */
26
+ fields<TFields extends R18Fields>(fields: TFields | readonly TFields[]): SearchBuilderR18<SearchResultR18Fields<R18Fields>>;
27
+ opt<TFields extends OptionalFields>(option: TFields | readonly TFields[]): SearchBuilderR18<T, SearchResultOptionalFields<TFields>>;
28
+ }
29
29
  //# sourceMappingURL=search-builder-r18.d.ts.map
@@ -1,45 +1,45 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const search_builder_1 = require("./search-builder");
4
- /**
5
- * 18禁API検索ヘルパー
6
- * @class SearchBuilderR18
7
- */
8
- class SearchBuilderR18 extends search_builder_1.NovelSearchBuilderBase {
9
- /**
10
- * なろう小説APIへの検索リクエストを実行する
11
- * @override
12
- * @returns {Promise<NarouSearchResults>} 検索結果
13
- */
14
- execute() {
15
- return this.api.executeNovel18(this.params);
16
- }
17
- r18Site(sites) {
18
- this.set({ nocgenre: search_builder_1.NovelSearchBuilderBase.array2string(sites) });
19
- return this;
20
- }
21
- /**
22
- *
23
- * @return {SearchBuilder} this
24
- */
25
- xid(ids) {
26
- this.set({ xid: search_builder_1.NovelSearchBuilderBase.array2string(ids) });
27
- return this;
28
- }
29
- /**
30
- *
31
- * @return {SearchBuilder} this
32
- */
33
- fields(fields) {
34
- this.set({ of: search_builder_1.NovelSearchBuilderBase.array2string(fields) });
35
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
- return this;
37
- }
38
- opt(option) {
39
- this.set({ opt: search_builder_1.NovelSearchBuilderBase.array2string(option) });
40
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
- return this;
42
- }
43
- }
44
- exports.default = SearchBuilderR18;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const search_builder_1 = require("./search-builder");
4
+ /**
5
+ * 18禁API検索ヘルパー
6
+ * @class SearchBuilderR18
7
+ */
8
+ class SearchBuilderR18 extends search_builder_1.NovelSearchBuilderBase {
9
+ /**
10
+ * なろう小説APIへの検索リクエストを実行する
11
+ * @override
12
+ * @returns {Promise<NarouSearchResults>} 検索結果
13
+ */
14
+ execute() {
15
+ return this.api.executeNovel18(this.params);
16
+ }
17
+ r18Site(sites) {
18
+ this.set({ nocgenre: search_builder_1.NovelSearchBuilderBase.array2string(sites) });
19
+ return this;
20
+ }
21
+ /**
22
+ *
23
+ * @return {SearchBuilder} this
24
+ */
25
+ xid(ids) {
26
+ this.set({ xid: search_builder_1.NovelSearchBuilderBase.array2string(ids) });
27
+ return this;
28
+ }
29
+ /**
30
+ *
31
+ * @return {SearchBuilder} this
32
+ */
33
+ fields(fields) {
34
+ this.set({ of: search_builder_1.NovelSearchBuilderBase.array2string(fields) });
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ return this;
37
+ }
38
+ opt(option) {
39
+ this.set({ opt: search_builder_1.NovelSearchBuilderBase.array2string(option) });
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ return this;
42
+ }
43
+ }
44
+ exports.default = SearchBuilderR18;
45
45
  //# sourceMappingURL=search-builder-r18.js.map