33const assert = require ( 'assert' ) ;
44const moment = require ( 'moment' ) ;
55const parse5 = require ( 'parse5' ) ;
6- const Promise = require ( 'bluebird' ) ;
6+ const bluebirdPromise = require ( 'bluebird' ) ;
77const { join, extname, basename } = require ( 'path' ) ;
88const { magenta } = require ( 'picocolors' ) ;
99const { load } = require ( 'js-yaml' ) ;
@@ -191,7 +191,7 @@ class PostRenderEscape {
191191const prepareFrontMatter = ( data , jsonMode ) => {
192192 for ( const [ key , item ] of Object . entries ( data ) ) {
193193 if ( moment . isMoment ( item ) ) {
194- data [ key ] = item . utc ( ) . format ( 'YYYY-MM-DD HH:mm:ss' ) ;
194+ data [ key ] = ( item as typeof moment ) . utc ( ) . format ( 'YYYY-MM-DD HH:mm:ss' ) ;
195195 } else if ( moment . isDate ( item ) ) {
196196 data [ key ] = moment . utc ( item ) . format ( 'YYYY-MM-DD HH:mm:ss' ) ;
197197 } else if ( typeof item === 'string' ) {
@@ -210,11 +210,11 @@ const removeExtname = str => {
210210} ;
211211
212212const createAssetFolder = ( path , assetFolder ) => {
213- if ( ! assetFolder ) return Promise . resolve ( ) ;
213+ if ( ! assetFolder ) return bluebirdPromise . resolve ( ) ;
214214
215215 const target = removeExtname ( path ) ;
216216
217- if ( basename ( target ) === 'index' ) return Promise . resolve ( ) ;
217+ if ( basename ( target ) === 'index' ) return bluebirdPromise . resolve ( ) ;
218218
219219 return exists ( target ) . then ( exist => {
220220 if ( ! exist ) return mkdirs ( target ) ;
@@ -232,6 +232,7 @@ interface Data {
232232 disableNunjucks ?: boolean ;
233233 markdown ?: object ;
234234 source ?: string ;
235+ async_tags ?: boolean
235236}
236237
237238class Post {
@@ -257,7 +258,7 @@ class Post {
257258 data . layout = ( data . layout || config . default_layout ) . toLowerCase ( ) ;
258259 data . date = data . date ? moment ( data . date ) : moment ( ) ;
259260
260- return Promise . all ( [
261+ return bluebirdPromise . all ( [
261262 // Get the post path
262263 ctx . execFilter ( 'new_post_path' , data , {
263264 args : [ replace ] ,
@@ -267,7 +268,7 @@ class Post {
267268 ] ) . spread ( ( path , content ) => {
268269 const result = { path, content } ;
269270
270- return Promise . all < void , void | string > ( [
271+ return bluebirdPromise . all ( [
271272 // Write content to file
272273 writeFile ( path , content ) ,
273274 // Create asset folder
@@ -392,12 +393,12 @@ class Post {
392393 let promise ;
393394
394395 if ( data . content != null ) {
395- promise = Promise . resolve ( data . content ) ;
396+ promise = bluebirdPromise . resolve ( data . content ) ;
396397 } else if ( source ) {
397398 // Read content from files
398399 promise = readFile ( source ) ;
399400 } else {
400- return Promise . reject ( new Error ( 'No input file or string!' ) ) . asCallback ( callback ) ;
401+ return bluebirdPromise . reject ( new Error ( 'No input file or string!' ) ) . asCallback ( callback ) ;
401402 }
402403
403404 // Files like js and css are also processed by this function, but they do not require preprocessing like markdown
@@ -492,7 +493,7 @@ class Post {
492493 const results = split_content . map ( async content => {
493494 return await tag . render ( content , data ) ;
494495 } ) ;
495- return Promise . all ( results ) . then ( x => x . join ( '' ) ) ;
496+ return bluebirdPromise . all ( results ) . then ( x => x . join ( '' ) ) ;
496497 } ) . then ( content => {
497498 data . content = cacheObj . restoreCodeBlocks ( content ) ;
498499
0 commit comments